指针运算符 -> 用于 golang

似乎 golang 没有 C 和 C++ 那样的指针运算符 -> 。现在假设我有一个类似这样的函数:myfun(myparam *MyType),在函数内部,如果我想访问 MyType 的成员变量,我必须执行 (*myparam).MyMemberVariable。在 C 和 C++ 中执行 myparam->MyMemberVariable 似乎要容易得多。

我很新。不确定我是否遗漏了什么,或者这不是正确的方法?


慕沐林林
浏览 223回答 3
3回答

猛跑小猪

在 Go 中,->和.都由.编译器知道类型,并且可以在必要时取消引用。package mainimport "fmt"type A struct {    X int}func main() {    a0, a1 := A{42}, &A{27}    fmt.Println(a0.X, a1.X)}

UYOU

你可以这样做myparam.MyMemberValue,指针会自动取消引用去规格:选择器会自动取消引用指向结构的指针。如果 x 是指向结构的指针,则 xy 是 ( x).y 的简写;如果字段 y 也是指向结构的指针,则 xyz 是 ( (*x).y).z 的简写,依此类推。如果 x 包含类型为 *A 的匿名字段,其中 A 也是结构类型,则 xf 是 (*xA).f 的简写。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go