Go テンプレートの算術演算: インデックス増加の課題を克服する
Go テンプレートを使用する場合、算術演算の実行方法を理解することが重要です。一般的な使用例の 1 つは、インデックスを 0 ではなく 1 から開始するように調整することです。ただし、すぐに使用できるテンプレート構文では、これを直接サポートしていません。
問題: 不正な数値構文エラー
質問で述べたように、式 {{$index 1}} を使用してゼロから始まるインデックスを増分しようとしています「不正な数値構文:」エラーが発生します。これは、Go テンプレート言語では、テンプレート式内で算術演算を直接実行できないためです。
解決策: カスタム関数を使用して解決します
この制限を克服するには、次のことが必要です。必要な算術演算を実行するカスタム関数を作成します。この場合、単純なインクリメント関数で十分です。
「inc」という名前のカスタム関数を定義して使用してインデックスをインクリメントする方法の例を次に示します。
funcMap := template.FuncMap{ "inc": func(i int) int { return i + 1 }, }
次に、登録します。テンプレート テキストを解析する前に、このカスタム関数をテンプレートにマップします。
tmpl, err := template.New("test").Funcs(funcMap).Parse(`{{range $index, $element := .}}`)
これで、「inc」関数を使用してインデックスをインクリメントできます。テンプレート式内:
{{range $index, $element := .}} Number: {{inc $index}}, Text:{{$element}} {{end}}
カスタム関数を定義してテンプレートに登録すると、Go テンプレートの機能を拡張し、必要に応じてインデックスのインクリメントなどの算術演算を実行できます。
以上がGo テンプレートでインデックスをインクリメントする方法: 「不正な数値構文」エラーを克服するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。