Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
84 lines (66 sloc) 1.74 KB

第06章 数组和切片

.序:

开源协议:GPL-3.0

地址:[golang-examples] https://github.com/java-aodeng/golang-examples

作者:[低调小熊猫] https://github.com/java-aodeng

意义:分享知识,提升自己

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))
}

golang星球学习基地

学习更多,快来星球吧,这个星球存在的意义只有一个:就是学习……

You can’t perform that action at this time.