我似乎无法理解这种变量声明:
_, prs := m["example"]
” _,“到底在做什么以及为什么他们声明了这样的变量而不是
_,
prs := m["example"]
它避免了必须为返回值声明所有变量。 它被称为空白标识符。
如:
_, y, _ := coord(p) // coord() returns three values; only interested in y coordinate
这样,你就不必声明一个你不会使用的变量:Go 不会允许它。相反,使用“_”来忽略所述变量。
(
由于它会丢弃返回值,因此当您只想检查一个返回值时很有帮助
_, present := timeZone[tz]
要测试地图中是否存在而不用担心实际值,您可以使用空白标识符,一个简单的下划线 ( _)。 可以使用任何类型的任何值分配或声明空白标识符,并无害地丢弃该值。 要测试地图中的存在,请使用空白标识符代替值的常用变量。
_
正如在评论中)添加的那样:
“普遍接受的标准”是将成员资格测试变量称为“ok”(与检查通道读取是否有效相同)
这允许您将它与测试结合起来:
if _, err := os.Stat(path); os.IsNotExist(err) { fmt.Printf("%s does not exist\n", path) }
你会发现它也在循环中:
如果您只需要范围中的第二项(值),请使用空白标识符(下划线)来丢弃第一项:
sum := 0 for _, value := range array { sum += value }