ホームページ  >  記事  >  バックエンド開発  >  Go テンプレートでインデックスをインクリメントする方法: 「不正な数値構文」エラーを克服する

Go テンプレートでインデックスをインクリメントする方法: 「不正な数値構文」エラーを克服する

DDD
DDDオリジナル
2024-11-21 10:18:14402ブラウズ

How to Increment Indices in Go Templates: Overcoming the

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

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