Skip to content

Files

Latest commit

 

History

History
70 lines (58 loc) · 1.26 KB

1.md

File metadata and controls

70 lines (58 loc) · 1.26 KB

第06章 数组和切片

1.1 数组的声明

func TestArray(t *testing.T)  {
	var arr [3]int //声明并初始化长度
	t.Log(arr[1])

	arr1:=[...]int{1,2,3}//声明同时初始化
	t.Log(arr1[1])
}

1.2 遍历数组

func TestArrayTravel(t *testing.T)  {
	arr:=[...]int{1,2,3,4}

	for idx,e:=range arr{
		t.Log(idx,e)
	}

	t.Log(arr[1:len(arr)])
}

1.3 数组截取

a[开始索引(包含),结束索引(不包含)]

a:=[...]int{1,2,3}
a[1,2] //2

1.4 切片

  • len 元素的个数
  • cap 内部数组的容量
  • 切片共享存储修改会影响使用的数据,容易出错 (重点注意)
//切片
func TestSliceInit(t *testing.T)  {
	var s[] int //定义切片
	t.Log(len(s),cap(s))
	s=append(s,1) //追加元素
	t.Log(len(s),cap(s))

	s1:=[] int{1,2,3}
	t.Log(len(s1),cap(s1))

	s2:=make ([]int,2,3)
	t.Log(len(s2),cap(s2))
}

func TestSliceGrowing(t *testing.T)  {
	s:=[]int{}
	for i:=0;i<10 ;i++  {
		s=append(s,i)
		t.Log(len(s),cap(s))
	}
}

//切片共享存储修改会影响使用的数据,容易出错
func TestSliceShare(t *testing.T)  {
	s:=[]string{"1","2","3","4","5"}
	Q:=s[3:5]
	t.Log(Q,len(Q),cap(Q))
	su:=s[1:3]
	t.Log(su,len(su),cap(su))
}