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

2019-09-20 10:17:48 +08:00
 buhuiqizi

struct.data, err := function()

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

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

1661 次点击
所在节点    问与答
7 条回复
ngnetboy
2019-09-20 10:44:11 +08:00
Golang 不允许这么做。
buhuiqizi
2019-09-20 10:50:37 +08:00
@ngnetboy 谢谢,我想知道不允许这样做的理由。
B3C933r4qRb1HyrL
2019-09-20 11:03:28 +08:00
:= 左边要是新变量吧?
Hellert
2019-09-20 11:07:57 +08:00
:= 是定义变量并赋值
mengzhuo
2019-09-20 11:13:21 +08:00
去掉冒号就行了
:= 是语法糖
a.b, c := xxx()

相当于

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

自然会保存啊
buhuiqizi
2019-09-20 11:27:21 +08:00
@cuvii :=左边只需要一个新变量就行。
var b int //没有定义 err
b, err := OneFunc() //func OneFunc() (int, error)
是合法的
buhuiqizi
2019-09-20 11:27:40 +08:00
@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