gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 02:31:01 24 4
gpt4 key购买 nike

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

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

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

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

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

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

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

v := m["hello"]

同样,对于 channel :

v, ok := <-ch

v := <-ch

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

最佳答案

用于赋值或初始化时具有可选值的表达式是:type assertion , map indexchannel receive .

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

关于go - Go 中允许省略可选的第二个返回值的案例列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54483028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com