-
指针(pointer)在Go语言中可以被拆分为两个核心概念:
-
类型指针,允许对这个指针类型的数据进行修改,传递数据可以直接使用指针,而无须拷贝数据,类型指针不能进行偏移和运算。
-
切片,由指向起始元素的原始指针、元素数量和容量组成。
-
-
取地址操作符&和取值操作符是一对互补操作符,&取出地址,根据地址取出地址指向的值。变量、指针地址、指针变量、取地址、取值的相互关系和特性如下:
-
对变量进行取地址操作使用&操作符,可以获得这个变量的指针变量。
-
指针变量的值是指针地址。
-
对指针变量进行取值操作使用*操作符,可以获得指针变量指向的原变量的值。
-
通过指针不仅可以取值,也可以修改值。
-
Go语言内置的 flag 包实现了对命令行参数的解析,flag 包使得开发命令行工具更为简单。
-
new() 函数可以创建一个对应类型的指针,创建过程会分配内存,被创建的指针指向默认值。
str := new(string) *str = "Go语言教程" fmt.Println(*str)