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 サイトの他の関連記事を参照してください。