Go语言中的指针、结构体与接口详解
1. 指针的使用
在Go语言里,当我们改变一个变量时,往往只是改变了函数内部的副本。例如下面的代码:
func changeValue(word string) {
word += "world"
}
func main() {
say := "hello"
changeValue(say)
fmt.Println(say)
}
上述代码会输出 hello 。这是因为在函数中传递的字符串,实际上是传递了一个副本,对副本的修改不会影响原始变量。
指针是解决这个问题的关键。指针存储的是值的内存地址,而非值本身。例如:
var intPtr *int
x := 23
intPtr = &x
这里的 intPtr 存储了 x 的内存地址。通过解引用操作符 * ,我们可以查看或修改 x 的值:
fmt.Println(x) // 输出: 23
fmt.Println(*intPtr) // 输出: 23
*intPtr = 80 // 修改 x 的值为 80
fmt.Println(x) // 输出: 80
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



