假设你有一个变量。
age := 20
使用&age ,你可以得到该变量的指针,即它的内存地址。
当你有了变量的指针后,你可以通过使用* 操作符获得它所指向的值。
age := 20
ageptr = &age
agevalue = *ageptr
当你想调用一个函数并将变量作为一个参数传递时,这很有用。Go默认是在函数内复制变量的值,所以这不会改变age 的值。
func increment(a int) {
a = a + 1
}
func main() {
age := 20
increment(age)
//age is still 20
}
你可以使用指针来实现这一点。
func increment(a *int) {
*a = *a + 1
}
func main() {
age := 20
increment(&age)
//age is now 21
}
下载我的免费Go手册!
下载我的免费编程电子书!