Go テンプレートで配列の最初のインデックスの値にアクセスする
Go で HTML テンプレートを使用する場合、次のような状況が発生することがあります。配列の最初のインデックスの値にアクセスする必要があります。この課題に対処するために、目的のデータを抽出するための正しい構文を調べてみましょう。
提供されたコード スニペットは、テンプレート内の配列の最初の要素の Name フィールドにアクセスする試みを示しています。
<div>Foobar {{ index .Doc.Users 0}}'</div>
ただし、{{index .Doc.Users 0}} は、Name フィールドと Email フィールドの両方を含む配列の最初の要素全体を返すため、このアプローチでは望ましい結果は得られません。 Name フィールドのみを取得するには、次のように式をグループ化し、.Name セレクターを適用する必要があります。
<div>Foobar {{ (index .Doc.Users 0).Name }}</div>
この改善された構文では、インデックス関数は Doc.Users 配列の最初の要素を返します。これは括弧内に強制的に入れられて式をグループ化し、その後、名前フィールドへのアクセスを提供します。
例:
type User struct { Name string Email string } t := template.Must(template.New("").Parse( `<div>Foobar {{ (index .Doc.Users 0).Name }}</div>`)) m := map[string]interface{}{ "Doc": map[string]interface{}{ "Users": []User{ {Name: "Bob", Email: "user1@example.com"}, {Name: "Alice", Email: "user2@example.com"}, }, }, } fmt.Println(t.Execute(os.Stdout, m))
出力:
<div>Foobar Bob</div><nil>
これは更新されましたコードは目的の出力を生成します。ここで、Doc.Users 配列の最初の要素の Name フィールドがテンプレート内で正常に取得されます。
以上がGo テンプレートで配列の最初の要素の名前フィールドにアクセスする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。