我一直在尝试理解 Go website 上的示例。在这样的示例中,我不断遇到一个特殊的星号字符:
s := "hello"
if s[1] != 'e' {
os.Exit(1)
}
s = "good bye"
var p *string = &s
*p = "ciao"
另外,我刚刚注意到,&s
是什么?是引用赋值吗(我可能在这里使用 PHP 谈话)?
最佳答案
*
附加到类型 (*string
) 表示指向该类型的指针。
*
附加到赋值中的变量 (*v = ...
) 表示间接赋值。即改变变量指向的值。
*
附加到变量或表达式 (*v
) 表示指针取消引用。也就是说,取变量指向的值。
&
附加到变量或表达式 (&v
) 表示引用。也就是说,创建一个指向变量值或字段的指针。
关于go - 星号在 "Go"中有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3552626/