Go HTML テンプレート内から構造体フィールドが存在するかどうかを確認することは可能ですか?
たとえば、次のテンプレートがあるとします。
{{if .FieldA}}
<a>{{.FieldA}}</a>
{{end}
および次のように定義された構造体:
type MyStruct struct{
var FieldA string
var FieldB string
}
// In this struct FieldA is unavailable
type MyStruct2 struct{
var FieldB string
}
テンプレートに渡すMyStruct
とうまくいきます。MyStruct2
ただし、テンプレートに渡すとエラーになります。ステートメントはif
nil 値をチェックできますが、現在の構造体に存在しないフィールドに遭遇するとエラー (テンプレート エグゼキューターを強制終了) をスローします。
特定のフィールドが特定の構造体でしか利用できない場合があるため、アクセスを試みる前にそのフィールドが存在するかどうかを確認する方法はありますか?
私は公式のドキュメントに不運があり、おそらくエレガントな解決策はないという結論に達しました。