これは基本的な質問ですが、私は以下のコードがうまくいかない理由が不思議です。この変数が宣言されないユースケースはありません。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)
私はそれが私はまだ学んでいるだけで、基本的なGOLANGのものだと確信していますエラー
.\run.go:262: undefined: dat
を取得します。ご支援
'IF-else'ブロックは、独自のスコープを持っています。 'dat'はそれらの外側には見えません。 if(bundled == "true") 'の前に' var dat [] byte'を宣言して修正することができます。 Read:[Goの宣言スコープ](https://dave.cheney.net/2016/12/15/declaration-scopes-in-go) –
このリクエストを完了できるように、どうやって宣言できますか?プレースホルダーを作成する方法はありますか?私はif/elseが自分の空間にあることに気付かなかった。興味深い – user3888307
はあなたが望むスコープ内の変数を宣言します。参考:https://golang.org/ref/spec#Declarations_and_scope – JimB