各位大佬,为什么 GO 结构体成员不能用:=

2019 年 9 月 20 日
 buhuiqizi

struct.data, err := function()

会报错:non-name StaffData.Company on left side of :=

但是网上又查不到一个确切的说明。

2497 次点击
所在节点    问与答
7 条回复
ngnetboy
2019 年 9 月 20 日
Golang 不允许这么做。
buhuiqizi
2019 年 9 月 20 日
@ngnetboy 谢谢,我想知道不允许这样做的理由。
B3C933r4qRb1HyrL
2019 年 9 月 20 日
:= 左边要是新变量吧?
Hellert
2019 年 9 月 20 日
:= 是定义变量并赋值
mengzhuo
2019 年 9 月 20 日
去掉冒号就行了
:= 是语法糖
a.b, c := xxx()

相当于

var a.b typeB
var c typeC
a.b, c = xxx()

自然会保存啊
buhuiqizi
2019 年 9 月 20 日
@cuvii :=左边只需要一个新变量就行。
var b int //没有定义 err
b, err := OneFunc() //func OneFunc() (int, error)
是合法的
buhuiqizi
2019 年 9 月 20 日
@mengzhuo :=左边只需要一个新变量就行。
var b int //没有定义 err
b, err := OneFunc() //func OneFunc() (int, error)
是合法的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/602424

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX