为什么重新定义 err
变量?
err := ipdf.Open(source)
if err != nil {
panic("Couldn't open pdf.")
}
payload, err := ioutil.ReadFile(other)
if err != nil {
panic("Couldn't read other file.")
}
答案 0 :(得分:6)
与常规变量声明不同,短变量声明可以重新声明变量,前提是它们最初在相同的块中声明(或者如果块是函数体,则参数列表)具有相同的类型,并且至少有一个非变量声明-blank变量是新的。因此,重新声明只能出现在多变量简短声明中。重新声明不会引入新变量;它只是为原始版本赋予了一个新值。
答案 1 :(得分:0)
短变量声明主要用于必须声明变量以供临时使用,并且这些变量名称也可用于其他程序。例如,“err”可以在进一步的程序中随时使用。 让我们假设语言是java,你必须为进一步的程序声明更多不同的变量名。 但是在golang中,短变量声明在javascript中用作“let”。 希望这会有所帮助。
答案 2 :(得分:0)
我建议尽可能使用内联检查:
// local scope
if err := ipdf.Open(source); err != nil {
panic("Couldn't open pdf.")
}
payload, err := ioutil.ReadFile(other)
if err != nil {
panic("Couldn't read other file.")
}