我知道这是一个基本问题,但是我很好奇下面的代码为什么不起作用。没有用例不会声明此变量。
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内容。
谢谢你的支持
if-else块有自己的范围。在您的情况下dat,它们在外部不可见。
if-else
dat
您可以var dat []byte在if (bundled == "true")修复前声明。
var dat []byte
if (bundled == "true")
文件:https://golang.org/ref/spec#Declarations_and_scope
您可能还需要阅读:Go中的声明范围