I know this is a basic question, but I'm curious why the code below does not work. There is no use case where this variable would not be declared.
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)
I get the error
.un.go:262: undefined: dat
I'm sure it's just basic GOLANG stuff I'm still learning.
Thanks for your support
if-else
blocks have their own scope. In your case dat
is not visible outside of them.
You can declare var dat []byte
before if (bundled == "true")
to fix it.
Docs: https://golang.org/ref/spec#Declarations_and_scope
You may also want to read: Declaration scopes in Go