而且我似乎无法理解这种变量声明:
_, prs := m["example"]
“ _,
”到底是做什么的,为什么他们声明这样的变量而不是
prs := m["example"]
(我发现它是 Go by Example: Maps 的一部分)
原文由 Kansuler 发布,翻译遵循 CC BY-SA 4.0 许可协议
而且我似乎无法理解这种变量声明:
_, prs := m["example"]
“ _,
”到底是做什么的,为什么他们声明这样的变量而不是
prs := m["example"]
(我发现它是 Go by Example: Maps 的一部分)
原文由 Kansuler 发布,翻译遵循 CC BY-SA 4.0 许可协议
Go 编译器不允许您创建您从不使用的变量。
for i, value := range x {
total += value
}
上面的代码将返回错误消息“我已声明但未使用”。
由于我们不在循环中使用 i 我们需要将其更改为:
for _, value := range x {
total += value
}
原文由 Juni Brosas 发布,翻译遵循 CC BY-SA 3.0 许可协议
7 回答5.3k 阅读
6 回答6.9k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答2k 阅读✓ 已解决
1 回答3.4k 阅读
2 回答878 阅读✓ 已解决
2 回答2.2k 阅读
它避免了必须为返回值声明所有变量。
它被称为 空白标识符。
如:
这样,你就不必声明一个你不会使用的变量:Go 不允许它。相反,使用“_”忽略所述变量。
( 另一个’
_
‘用例用于导入)由于它丢弃了返回值,因此当您只想检查一个返回值时它很有用,如“ Effective Go, map ”中所示的“ How to test key existence in a map? ”:
正如 Jsor 在评论中 添加的那样:
这允许您将它与测试结合起来:
你会发现它也在循环中: