ホームページ  >  記事  >  バックエンド開発  >  テンプレート内の Go スライスの最後の要素にアクセスするにはどうすればよいですか?

テンプレート内の Go スライスの最後の要素にアクセスするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-19 16:22:03687ブラウズ

How to Access the Last Element of a Go Slice in Templates?

Go テンプレート内のスライスの最後の要素へのアクセス

Go テンプレート内のスライスの最後の要素を取得することは、次の理由により困難になる場合があります。テンプレートで使用されるゼロベースのインデックス付け。スライス サイズを取得して個々の要素にインデックスを付けるのは簡単ですが、サイズだけを使用して最後の要素を参照すると「範囲外」エラーが発生します。

算術演算に FuncMap を使用する

カスタム関数定義に頼らずにこの制限を克服するには、FuncMaps を利用してテンプレート レンダリング プロセスにカスタム関数を導入できます。たとえば、「add」関数は次のように定義できます。

t := template.Must(template.New("").Funcs(template.FuncMap{
    "add": func(a, b int) int { return a + b },
}).Parse(theTemplate)

カスタム関数の使用

FuncMap で使用できる「add」関数を使用すると、次のようにスライスの最後の要素にアクセスできます:

{{index .Things (add $size -1)}}

この式は事実上スライス サイズから 1 を減算し、範囲外エラーを引き起こすことなく最後の要素にインデックスを付けることができます。

以上がテンプレート内の Go スライスの最後の要素にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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