Go 变量声明中神秘的“_”
在 Go 中,经常会遇到这样的变量声明:
_, prs := m["example"]
这个 _ 构造的目的是什么,为什么使用它而不是更直观的prs := m["example"]?
空白标识符:忽略返回值
_ 代表“空白标识符”。它允许开发人员丢弃函数的返回值。在本例中,m["example"] 表达式返回一个包含两个值的元组:“example”键处的元素和一个指示该键是否存在的布尔值。通过使用 _,,我们只对键的存在感兴趣,而不是值。
防止无效声明
Go 严格执行变量声明。如果我们声明 prs 时没有值,编译器将引发错误。相反,我们使用空白标识符告诉 Go 我们承认返回值,但不打算使用它。
效率和代码可读性
使用空白标识符避免声明不需要的变量,提高代码效率。它还通过明确哪些返回值被忽略来增强可读性。
常见用例
自定义命名约定
一些开发者采用命名用作空白标识符的变量的约定,例如“ok”或“err”。这进一步提高了可读性和一致性。
示例
考虑以下代码片段:
if _, err := os.Stat(path); os.IsNotExist(err) { fmt.Printf("%s does not exist\n", path) }
在此示例中,我们使用空白标识符测试指定路径中是否存在文件,而不关心文件的属性。
以上是Go 变量声明中空白标识符'_”的用途是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!