数组
Go中的数组声明以及初始化
//声明数组
var a1 [10]int
fmt.Println(a1)
//声明并初始化数组
var a2 = [3]int{1,2,3}
a3 := [3]string{"hello","java","Go"}
a4 := [...]string{"h","e","h","e"}//自动推测数组长度
//将索引为 1 和 3 的元素初始化
balance := [5]float32{1:2.0,3:7.0}
区别于Java中的数组声明
//Java中数组的声明
int data[] = new int[3];
char[] arr = new char[]{'a','b','c'};
int data[] = {1, 2, 4};
int data[][] = new int[][] {
{1, 2, 3}, {4, 5}, {6, 7, 8, 9}};
遍历数组
注意:再函数形参中传递数组,只是值传递,且必须声明数组大小。
func travelArray(arr [3]string){
for index,value := range arr{
fmt.Printf("[%d] : %s\n",index,value)
}
}
切片
引用类型,可变的一块数据集合,可以自动扩容。
引用类型默认初始值为nil
a3 := []string{"hello","java","Go"}//切片,声明时不指定大小
a5 := []int{1,2,3,4,5}//切片
//切片再切片
s := a5[:3]
a5[0] = 111
fmt.Println(a5) //[111 2 3 4 5]
fmt.Println(s) //[111 2 3] 说明切片是引用类型,所有引用都指向同一块内存