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

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

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

Go
POPMUISE 2023-06-05 17:00:47
当调用具有多个返回值的函数或方法时,调用者如果解包任何返回值,则必须将它们全部解包。f, err := os.Open("filename")变量err必须用空白标识符声明或忽略_,但不能省略。但是,语言中内置了一些操作,允许省略可选的第二个返回值。是否有或多或少正式的情况列表,其中具有数据结构的操作或函数调用返回第二个值,该值是可选的并且可以通过仅接收第一个返回值来忽略?例如:m := make(map[string]int) v, ok := m["hello"]该ok变量完全是可选的,可以省略。v := m["hello"]同样,对于频道:v, ok := <-ch或者v := <-ch除了上述两种情况之外,还有其他这种行为的情况吗?
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

在赋值或初始化中使用时具有可选值的表达式是: type assertion、map index和channel receive。

规范没有这些表达式的正式列表,但规范中都描述了这些表达式。


查看完整回答
反对 回复 2023-06-05
  • 1 回答
  • 0 关注
  • 112 浏览
慕课专栏
更多

添加回答

举报

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