Bootstrap

GO语法基础(3):数组、切片

数组

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] 说明切片是引用类型,所有引用都指向同一块内存
;