“_, mean?” means “_, 是什么意思?” in Chinese.

huangapple go评论90阅读模式
英文:

What does _, mean?

问题

这行代码是用于在Go语言中检查文件是否存在的常见写法。下面是对代码的翻译:

if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err)

在这里,_ 表示一个匿名变量,它用于忽略某个值。在这个例子中,os.Stat 函数返回两个值:文件的信息和一个错误。通过使用 _,我们忽略了文件的信息,只关注错误。

err := os.Stat("/path/to/whatever") 这部分代码是将 os.Stat 函数的返回值赋给 err 变量。如果文件存在,err 将为 nil,否则将包含一个错误。

os.IsNotExist(err) 是一个函数调用,用于检查 err 是否表示文件不存在的错误。如果文件不存在,条件表达式将返回 true,否则返回 false

这种写法可以简洁地检查文件是否存在,并处理可能的错误。希望对你有帮助!

英文:

I'm new to Go and came across this line of code while browsing through some other threads:

if _, err := os.Stat("/path/to/whatever"); os.IsNotExist(err)

What does the _, after the if mean? Is it specifying that something will be assigned in the if condition (as it appears is happening with err)? I couldn't find an example of this syntax on the wiki and I'm very curious to see what it's used for.

Here's a link to the thread I was looking at if it helps:
https://stackoverflow.com/questions/12518876/how-to-check-if-a-file-exists-in-go

答案1

得分: 8

因为os.Stat返回两个值,所以如果你想要其中任何一个值,你必须有一个地方来接收它们。下划线_是一个占位符,它实际上表示“我不关心这个特定的返回值”。在这里,我们只关心检查错误,但不需要对Stat给我们的实际FileInfo做任何操作。

编译器会直接丢弃那个值。

英文:

Because os.Stat returns two values, you have to have somewhere to receive those if you want any of them. The _ is a placeholder that essentially means "I don't care about this particular return value." Here, we only care to check the error, but don't need to do anything with the actual FileInfo Stat gives us.

The compiler will just throw that value away.

huangapple
  • 本文由 发表于 2015年12月4日 03:57:22
  • 转载请务必保留本文链接:https://go.coder-hub.com/34075029.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定