我知道這是一個基本問題,但我很好奇爲什麼下面的代碼不起作用。沒有用例說明這個變量不會被聲明。if/else條件定義變量。 undefined:dat(變量)
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我還在學習。
感謝您的支持
'如果-else'塊都有自己的範圍。 'dat'在他們之外是不可見的。你可以在if(bundled ==「true」)之前聲明'var dat [] byte'來解決它。閱讀:[在Go中的聲明範圍](https://dave.cheney.net/2016/12/15/declaration-scopes-in-go) –
如何以可以完成此請求的方式聲明dat。有沒有辦法創建一個佔位符。我沒有意識到,如果他們在自己的空間。有趣的 – user3888307
聲明你想要的範圍內的變量。作爲參考:https://golang.org/ref/spec#Declarations_and_scope – JimB