为了账号安全,请及时绑定邮箱和手机立即绑定

指针运算符 -> 用于 golang

指针运算符 -> 用于 golang

Go
慕沐林林 2021-07-15 17:54:40
似乎 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)

}


查看完整回答
反对 回复 2021-07-19
?
UYOU

TA贡献1878条经验 获得超4个赞

你可以这样做myparam.MyMemberValue,指针会自动取消引用

去规格:

选择器会自动取消引用指向结构的指针。如果 x 是指向结构的指针,则 xy 是 ( x).y 的简写如果字段 y 也是指向结构的指针,则 xyz 是 ( (*x).y).z 的简写,依此类推。如果 x 包含类型为 *A 的匿名字段,其中 A 也是结构类型,则 xf 是 (*xA).f 的简写。


查看完整回答
反对 回复 2021-07-19
  • 3 回答
  • 0 关注
  • 222 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信