初学Go语言-02 | 青训营

73 阅读1分钟

Go语言数组

  • 首先数组的初始化有两种方法
  1. var a[5] int 定义长度为5的数组,数组的初始化的值都为0
  2. b:=[5] int {1,2,3,4,5}定义一个长度为5的数组,并将他们都进行赋值
  • 定义多维数组 var twoD [2][3] int
for i := 0; i < 2; i++ {
	for j := 0; j < 3; j++ {
		twoD[i][j] = i + j
	}
}

Go 语言slice

  • 首先明确Go语言sliceArray是两种不同的数据类型,Go语言Array是不可变长的而slice是可变长的。
  1. slice的创建方法s:=make([]string,3)初始化过后默认是空串,还可以像数组一样,但是不指定长度的good:=[]string{"g","o","o","d"}创建一个切片.
  2. slice添加元素的方法append()函数,例如向尾部添加元素slice=append(slice,"g","o","o","d"),向头部添加元素slice=append([]string{"good"},good...)
  3. copy函数的使用,首先创建一个空的切片c:=make([]string,len(s))copy(c,s)将s的元素拷贝到c这个slice切片中。
  4. slice 的切片方法:
fmt.Println(c[2:5]) //从第二个元素开始不包含第五个元素
fmt.Println(c[:5])  //从最开始 不到第五个元素
fmt.Println(c[2:])  //从2号元素开始 一直到最后

GO语言的map

  • 首先是map字典的创建方法m:=make(map(string),int),创建一个k为string,v为int的字典。 还有一种初始化的方法m:=map[string]int{"one":1,"two":2}创建有两个映射值的字典。
  • m["one"]=1,m["two"]=2,len()函数获取字典的长度,fmt.Println(m["one"]) 输出键对应的值。 如果是不存在的键,对应键的值为0,其实会有两个传递的参数r, ok := m["unknow"],如果是不存在的键值r为0,ok为false.
  • delete 方法delete(map,"one")将map中键为"one"的键值删掉,如果map为nil 或者没有这样的键的话,那么delete将会没有操作。

GO语言的函数的使用

  • 例如举一个最简单的例子func add(a int,b int)int 函数的参数是a,b都指定为int类型,同样如果两个参数的类型相同的话,还可以写成func add(a,b int)int返回值还是int类型。
  • Go语言函数的返回值可以为多个func exists(m map[string]string,k string) (v string,ok bool)返回值就有两个v string,ok bool.

Go语言的指针的使用

  • Go语言的指针较为简单,通常就只有一种用法就是对传入的值进行修改。
func add2(n int) {
	n += 2
}
func add2ptr(n *int) {
	*n += 2
}
func main() {
	n := 5
	add2(n)
	fmt.Println(n)
	add2ptr(&n)
	fmt.Println(n)
}

第一个add()函数,传入的是元素的一个拷贝。第二个add2ptr()传入一个n的指针,对指针进行操作,改变了原来的值。

这个篇就先讲到这里吧。