go语言切片操作

本文详细介绍了Go语言中切片(slice)和数组的创建、操作及使用,包括切片的长度、容量、初始化、追加、迭代以及多维切片等概念,并通过示例代码展示了如何在Go中进行切片操作。同时,文章还探讨了切片与数组的区别,以及在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package main

import (

	"fmt"
)

func main()  {
	//创建切片,使用切片
slice:=make([]string,5)//长度5,默认容量也是5
//slice1:=make([]string,5,3)//长度5大于容量3,错误
slice2:=make([]int,3,5)//创建整型切片,长度3容量5
slice3:=[]string{"red","blue","yellow"}//初始化
slice4:=[]int{3,4,5,6}//初始化整型切片
slice5:=[]string{19:"test"}//用字符串test初始化第20个元素
//如果在[]运算符里指定了一个值,那么创建的就是数组而不是切片。只有不指定值
//的时候,才会创建切片,
array:=[3]int{1,2,3}//数组
slice6:=[]int{4,5,6}//切片
//创建nil切片
var slice7 []int
//创建空切片
slice8:=make([]int,0)
slice9:=[]int{}
	// 创建一个整型切片
	// 其长度和容量都是 5 个元素
	slice_a := []int{10, 20, 30, 40, 50}
	slice_b:=slice_a[1:3]
	fmt.Print(slice_a)
	fmt.Println(slice_b)
	slice_b[1]=35
	newslice:=append(slice_a,60)
fmt.Print(slice)
//fmt.Print(slice1)
fmt.Print(slice2)
fmt.Print(slice3)
fmt.Println(slice4)
fmt.Println(slice5)
fmt.Println(array)
fmt.Println(slice6)
fmt.Print(slice7)
fmt.Print(slice8)
fmt.Println(slice9)
fmt.Print(slice_a)
fmt.Print(slice_b)
fmt.Print(newslice)
	// 创建两个切片,并分别用两个整数进行初始化
	s1 := []int{1, 2}
	s2 := []int{3, 4}
	fmt.Printf("%v\n",append(s1,s2...))//使用...运算符,可以将一个切片的所有元素追加到另一个切片里
	 创建一个整型切片 其长度和容量都是 4 个元素
	slice_c := []int{10, 20, 30, 40}
	// 迭代每一个元素,并显示其值
	for index,value:=range slice_c {
		fmt.Printf("index: %d,value: %d\n",index,value)
	}
	 创建一个整型切片的切片,多维切片
	mul_slice := [][]int{{10}, {100, 200}}
	fmt.Println(mul_slice)
	mul_slice[0]=append(mul_slice[0],30)
	fmt.Println(mul_slice)
	 分配包含 100 万个整型值的切片
	slice10:=make([]int,10)
	 将 slice10 传递到函数 foo
	slice10=foo(slice10)
	fmt.Println(slice10)
}

func foo(slice []int) []int {

	return slice
}

/*
打印输出结果
[10 20 30 40 50][20 30]
[    ][0 0 0][red blue yellow][3 4 5 6]
[                   test]
[1 2 3]
[4 5 6]
[][][]
[10 20 35 40 50][20 35][10 20 35 40 50 60][1 2 3 4]
index: 0,value: 10
index: 1,value: 20
index: 2,value: 30
index: 3,value: 40
[[10] [100 200]]
[[10 30] [100 200]]
[0 0 0 0 0 0 0 0 0 0]
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值