Go语言基础(1)

Go语言基础(1)

1.Go语言中的函数传递的都是原来值的是一个副本,和原来的值没关系
2.切片(Slice)是一个引用,修改切片的值,原来的值也发生改变。

1
2
3
4
5
a := []int{1, 2, 3}
b := a
b[1] =100
fmt.Println(a)

3.Array定义 例子:a = [3]int 或者 a = […]int
4.切片定义 :
a := []int 切片要用初始化:a := []int{1, 2, 3}
也可以用make的初始化 例: a := make([]int, 3, 3) 初始化的容量是对应类型的0值
切片:指针,长度,容量
切片不能直接比较,只能和nil进行比较,Slice没有分配内存 == nil
切片用append可以自动初始化,不需要初始化
copy是拷贝到值,而不是引用,且拷贝的目标必须有位置,具体例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
package main

import "fmt"

func main() {
a := []int{1, 2, 3}
b := make([]int, 3)
copy(b, a)
b[0] = 100
fmt.Println(b)
fmt.Println(a)
}

  1. Slice扩容策略(需要了解)
  2. bool类型的初始值是false