似乎 golang 没有 C 和 C++ 那样的指针运算符 -> 。现在假设我有一个类似这样的函数:myfun(myparam *MyType),在函数内部,如果我想访问 MyType 的成员变量,我必须执行 (*myparam).MyMemberVariable。在 C 和 C++ 中执行 myparam->MyMemberVariable 似乎要容易得多。我很新。不确定我是否遗漏了什么,或者这不是正确的方法?
3 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
在 Go 中,->和.都由.
编译器知道类型,并且可以在必要时取消引用。
package main
import "fmt"
type A struct {
X int
}
func main() {
a0, a1 := A{42}, &A{27}
fmt.Println(a0.X, a1.X)
}
UYOU
TA贡献1878条经验 获得超4个赞
你可以这样做myparam.MyMemberValue
,指针会自动取消引用
去规格:
选择器会自动取消引用指向结构的指针。如果 x 是指向结构的指针,则 xy 是 ( x).y 的简写;如果字段 y 也是指向结构的指针,则 xyz 是 ( (*x).y).z 的简写,依此类推。如果 x 包含类型为 *A 的匿名字段,其中 A 也是结构类型,则 xf 是 (*xA).f 的简写。
- 3 回答
- 0 关注
- 222 浏览
添加回答
举报
0/150
提交
取消