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