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