Я знаю, что это основной вопрос, но мне любопытно, почему приведенный ниже код не работает. Не существует случая, когда эта переменная не будет объявлена.if/else условие определяет переменную. undefined: dat (variable)
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' не видно за пределами них. Вы можете объявить 'var dat [] byte' перед' if (bundled == "true") ', чтобы исправить это. Читайте: [Области декларации в Go] (https://dave.cheney.net/2016/12/15/declaration-scopes-in-go) –
Как можно объявить, что я мог бы выполнить этот запрос. Есть ли способ создать владельца места. Я не понимал, что если они были в своем собственном пространстве. Интересно, что – user3888307
объявляет переменные в требуемой области. Для справки: https://golang.org/ref/spec#Declarations_and_scope – JimB