ホームページ  >  記事  >  バックエンド開発  >  Go テンプレートで配列の最初のインデックスの値にアクセスする方法は?

Go テンプレートで配列の最初のインデックスの値にアクセスする方法は?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-07 06:15:03176ブラウズ

How to Access the Value of the First Index of an Array in Go Templates?

Go テンプレートで配列の最初のインデックスの値にアクセスする

Go で HTML テンプレートを使用する場合、次のような課題に遭遇する可能性があります。テンプレート内に埋め込まれた配列の最初のインデックスの値にアクセスする方法。次のテンプレート コードについて考えてみましょう。

<div>Foobar {{ index .Doc.Users 0 }}</div>

ここでは、「Doc.Users」スライスの最初の要素の「Name」フィールドの値を取得することを目的としています。ただし、異なる構文を使用したいくつかの試みは失敗しました。

「Doc.Users」配列の最初の要素の「Name」フィールドを取得するための正しい構文は次のとおりです。

<div>Foobar {{ (index .Doc.Users 0).Name }}</div>

この構文を理解するために、次のように分解してみましょう。

  • index .Doc.Users 0: この部分は、「Doc.Users」スライスから最初の要素を取得します。
  • (index . Doc.Users 0): これは、前の式の結果を括弧で囲み、単一の値として扱います。
  • .Name: このセレクターは、前の式から取得した値の「名前」フィールドにアクセスします。

式をグループ化してセレクターを適用すると、目的の「名前」フィールドに効果的にアクセスできます。

このソリューションをテストするために実行できるサンプル コードを次に示します:

package main

import (
    "fmt"
    "html/template"
    "os"
)

type User struct {
    Name  string
    Email string
}

func main() {
    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: "[email protected]"},
                {Name: "Alice", Email: "[email protected]"},
            },
        },
    }

    fmt.Println(t.Execute(os.Stdout, m))
}

このコードは次の出力を生成し、「Doc.Users」スライスの最初のユーザーの「Name」フィールドへのアクセスが成功したことを示します。

<div>Foobar Bob</div>

以上がGo テンプレートで配列の最初のインデックスの値にアクセスする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。