if / else条件定义变量。 undefined:dat(变量)

时间:2017-02-06 18:20:34

标签: variables go static

我知道这是一个基本问题,但我很好奇为什么下面的代码不起作用。没有用于不声明此变量的用例。

if (bundled == "true") {
            dat, err := Asset("index.html")
        } else {
            dat, err := ioutil.ReadFile("./index.html")

        }
        if ( err != nil) {
            os.Exit(0)
        }

        t, _ = t.Parse(string(dat))
        p := Person{Scope: ""}
        t.Execute(w, p)

我收到错误

.\run.go:262: undefined: dat

我确信这只是GOLANG的基本功能,我还在学习。

感谢您的支持

1 个答案:

答案 0 :(得分:1)

if-else块有自己的范围。在您的情况下,dat在其外部不可见。

您可以在var dat []byte之前声明if (bundled == "true")来修复它。

文档:https://golang.org/ref/spec#Declarations_and_scope

您可能还想阅读:Declaration scopes in Go