GO语言基础语法(2) | 青训营

79 阅读3分钟

昨天完成了第一篇的笔记,由于本人的能力有限只能写了一部分,到了switch语句就草草结束了。其实写笔记也是对已学内容的一个回顾与复习,笔记的写作对于自身的发展与提高也是非常有用的。今天的这篇笔记继续上篇的内容,继续go语言的基础语法。

在Go语言中,数组的声明需要指定元素类型及元素个数。例如 var a[10] int64 在Go语言中,对默认的数组初始化,初始值为0,也可以用初始化对数组进行赋值,如: var a =[3]int{1,2,3} 当然也可以用 a :=[3]{1,2,3}得到相同的结果。在Go语言中,也有二维数组、三维数组等。在青训营的课程中,展示的代码中有出现二维数组的案例,但是主讲人没有提及,在这里进行一个补充。在声明时与普通的数组一样,可以用var进行声明,只需加一个"[]"即可,如 var a=[][]int 对数组的赋值也十分简单,简单做一个示例: a:=[2][2] string{} a[0][0]="123" a[0][1]="321" a[1][0]="231" a[1][1]="213"

接下来是较为重要的部分————切片。由于Go语言中数组的长度不可以改变,在特定场景中就不太适用,于是Go语言中有了切片的出现。与数组相比,切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大,也可以把切片理解为一个“动态的数组”。在go语言中,使用make()就可以创建切片。如创建一个有三个元素的切片的代码为: a:=make([]string,3) 给这切片赋值也跟数组相同,可以批量赋值也可以一个个依次赋值,代码如下: a[0]="a" a[1]="b" a[2]="c" 当我们进行输出时,与先前有些许的不同。例如输出a[1]的内容: fmt.println("get:",a[1]) 而要输出当前数组的长度时,也有不同的地方: fmt,println("len:",len(a)) 当然前面说到切片比数组更强大的地方是可以追加元素,我们可以使用append语句对元素进行追加,代码如下: a=append(a,"d") 要是想要追加两个及以上的元素也是可以的,只需在元素后加“,”即可。

在青训营的课程中也提到了可以“复制”一个切片出来,代码如下: b:= make([]string,len(a)) copy(b,a) 此时的b数组里的内容就是a数组里的内容了。

与其他语言类似,Go语言中也可以对切片进行截取。其操作方法也和其他编程语言大致相同。我们以一个a数组{a,b,c,d,e,f}为例,当我们要截取切片的“b,c,d”这段内容,只需 fmt.println(a[1:4]) 需要注意的是,这里截取的位置是左边取到右边不取,也就是“左闭右开”。假如要从头开始取或是从一个位置取到尾部,遵循的也是这个原则。例如: fmt.println(a[3:]) fmt.println(a[:5]) 第一个代码取到的是“d,e,f”,而第二个代码取到的则是“a,b,c,d,e”。还是有些许区别的。