go - 星号在 "Go"中有什么作用?

标签 go

我一直在尝试理解 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/

相关文章:

python - 如何在Go上运行python脚本

go - 迭代多个不同类型数组的最佳方法

go - go-logr 和 uber 的 zap 详细级别之间的对应关系是什么?

mongodb - 如何处理更新时对损坏数据的验证?

unit-testing - 如何在一个go包中运行多个测试文件

json - 我可以在 mgo 中使用 json 标签作为 bson 标签吗?

reflection - 如何使用反射按名称获取包常量值?

pointers - 为什么指向int的指针是使用 “*int”而不是 “&int”初始化的?

go - Go中的Os Exec Sudo命令

go - 在go中读取xz文件