200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > go语言基础知识笔记(二)之数组和切片

go语言基础知识笔记(二)之数组和切片

时间:2019-11-15 08:05:39

相关推荐

go语言基础知识笔记(二)之数组和切片

数组和切片知识用的也是比较多,的给我们工作带来很大的便利

(一) 数组

定义:在golang中数组的长度是不可变,数组存放要求是同一种数据类型

//golang中数组定义的四种方法

1.先声明,后赋值

var arr1 [2]int

arr1[0]=1

arr1[1]=2

2.声明同时赋值

var arr2 = [2]int{1,2}

//或者

arr2 := [2]int{1,2}

3.不指定长度程序自动计算长度

var arr = [...]int{1,2}

//或者

arr := [...]int{1,2}

4.key和value的形式

var arr = [...]int{1:1,0:2}

//或者

arr := [...]int{1:1,0:2}

//golang中数组遍历的两种方法

1.常规方法

for i:=0;i<len(arr);i++ {

fmt.Printf("arr[%d] = %v",i,arr[i])

}

2.高级方法(推荐使用)

for key(_),value:= range arr{

fmt.Printf("arr[%d] = %v",i,arr[i])

}

//动态修改数组的值,默认情况下数组是值传递//形参定义成一个指针数据类型func T2(a *[]string) {*a[0] = 99 //修改原来的值}func main() {s1 := [...]string{11,22}T2(&s1) //传递一个数组的地址作为实际参数s1 = append(s1 , "33") fmt.Println(s1)}

//数组指针和指针数组

1.数组指针即是一个指针并且这个指针保存了一个指向数组的地址

var arr = [...]int{5:2} //数组指针 var pf *[6]int = &arr

2.指针数组即是一个数组,数组里面保存很多指针

x,y := 1, 2

pfArr := [...]*int{&x,&y}

//多维数组(二维)

1.多维数组即数组里面又是一个数组

2.定义方法

2.1先定义再赋值

var arr1 [2][2]int

arr1[0][0] = 5.....

2.2定义的同时赋值

var arr2 [2][2]int = [2][2]int{{1,2,3},{3,4,5}}

3.多维数组的遍历

3.1

for i:=0;i<len(arr);i++{

for j:=0;i<len(arr[i]);j++{

}

}

3.2

for i;value1 :=range arr2{

for j;value2 :=range value1 {

}

}

(二) 切片

切片是数组的引用,并且是动态的数组,长度可以变化.

//切片的定义的几种方法1.数组的引用

var intArr [4]int = [...]{12,34,44,33,11}

slice := intArr[1:3]

2.make定义

var slice []type = make([]type,len,[cap])

3.常规用法

var slice []type = []type{value1,value2,value3}

遍历的方法和数组也是一样的就不继续啰嗦了

//切片的内置函数1.动态添加切片append(切片,value1,value2,value3)2.切片的copycopy(切片1,切片2)

//字符的切片

1.字符的切片在某种情况下是不可变的

2.想要修改字符串中的值[]byte(str)[这种是处理英文方式],[]rune(str)[这种是处理中文方式]

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。