猿问

Go 中允许省略可选的第二个返回值的案例列表

当调用具有多个返回值的函数或方法时,调用者如果解包任何返回值,则必须将它们全部解包。

f, err := os.Open("filename")

变量err必须用空白标识符声明或忽略_,但不能省略。

但是,语言中内置了一些操作,允许省略可选的第二个返回值。

是否有或多或少正式的情况列表,其中具有数据结构的操作或函数调用返回第二个值,该值是可选的并且可以通过仅接收第一个返回值来忽略?例如:

m := make(map[string]int)
v, ok := m["hello"]

ok变量完全是可选的,可以省略。

v := m["hello"]

同样,对于频道:

v, ok := <-ch

或者

v := <-ch

除了上述两种情况之外,还有其他这种行为的情况吗?


POPMUISE
浏览 113回答 1
1回答

杨魅力

在赋值或初始化中使用时具有可选值的表达式是: type assertion、map index和channel receive。规范没有这些表达式的正式列表,但规范中都描述了这些表达式。
随时随地看视频慕课网APP

相关分类

Go
我要回答