MOXUY

Jul 15, 2022

go笔记2

指针

指针保存了值的内存地址。

类型 *T 是指向 T 类型值的指针。其零值为 nil

& 操作符会生成一个指向其操作数的指针。

* 操作符表示指针指向的底层值。

1
2
3
4
5
6
7
8
9
10
11
12
func main() {
i, j := 42, 2701

p := &i // 指向 i
fmt.Println(*p) // 通过指针读取 i 的值
*p = 21 // 通过指针设置 i 的值
fmt.Println(i) // 查看 i 的值

p = &j // 指向 j
*p = *p / 37 // 通过指针对 j 进行除法运算
fmt.Println(j) // 查看 j 的值
}

结构体

1
2
3
4
5
6
7
8
type Vertex struct {
X int
Y int
}
func main() {
v := Vertex{1, 2}
v.X = 4
}

数组

数组切片并不存储任何数据,它只是描述了底层数组中的一段。修改了切片的值就相当于修改了原数组。

切片拥有 长度容量

lencap 函数的区别是
- len 输出当前数组所包含的元素个数
- cap 输出从当前数组的第一个元素开始数,到其底层数组元素末尾的个数

1
2
3
4
5
6
7
func main() {
var slice1 []int = make([]int, 10)
var slice2 = slice1[:5]
fmt.Println(slice1)
fmt.Println(len(slice2)) // output: 5
fmt.Println(cap(slice2)) // output: 10
}
tags: 笔记 Go
OLDER > < NEWER