我什至不会google(我只在if中找到这个,我仍然无法进入)。请解释err在这些地方的含义以及分配给 err 的值如何在变量中出现在 err 之前:
1. src, err := os.Open(srcName, os.O_RDONLY, 0)
2.if r, err := f1(i); err != nil
用 ok 而不是 err 观察到类似的结构。
在文档中找到这个:
if v := math.Pow(x, n); v < lim {
return v
}
但是,与上面的示例不同,这里的一切都很清楚。
如果您查看文档,则会在那里给出以下描述
此描述表示该函数返回一个类型为 2 的值。第一个是实际文件,第二个是错误。赋值运算符将此类型解构为 2 个变量。
可以在此处查看并运行一个使用赋值运算符的更简单示例。这是它的完整代码。
赋值后,可以查看错误所在的变量(
err != nil)并进行处理。你在文档中找到的东西差不多,只是多了一个返回和多个赋值被额外叠加了。“值”(实际上,不是一个)没有分配给
err,而是分解(分段)在整个变量列表中。下面是一个使用 Go By Example 的语言特性的例子,带有松散翻译的注释:
你有同样的东西,只是不同的类型。