Go テンプレート範囲の最後の要素の後のカンマを避ける方法は?

Patricia Arquette
リリース: 2024-11-01 07:17:30
オリジナル
272 人が閲覧しました

How to Avoid a Comma After the Last Element in a Go Template Range?

Go テンプレートの範囲を使用した配列内の最後の項目の検出

Go テンプレートでは、range キーワードを使用して配列を反復処理するときに、カンマ区切り文字が自動的に挿入されます各要素の間。この動作はほとんどの場合に便利ですが、目的の出力で最後の要素の後にカンマではなくピリオドが必要な場合には問題になる可能性があります。

次のプログラムを考えてみましょう:

<code class="go">package main

import (
    "os"
    "text/template"
)

func main() {
    params := map[string]interface{}{
        "items": [3]int{1, 4, 2},
    }
    tpl := "{{range $i, $el := .items}}{{$el}},{{end}}"
    lister, _ := template.New("foo").Parse(tpl)
    lister.Execute(os.Stdout, params)
}</code>
ログイン後にコピー

このプログラムは次を出力します:

1,4,2,
ログイン後にコピー

最後の要素 (2) の後にカンマがあることに注意してください。ただし、出力は次のようにしたいと考えています。

1,4,2.
ログイン後にコピー
ログイン後にコピー

これを実現するには、テンプレートを次のように変更できます。

<code class="go">tpl := "{{range $i, $el := .items}}{{if $i}},{{end}}{{$el}}{{end}}."</code>
ログイン後にコピー

ここでの主な違いは、{ の導入です。 {if $i}}、{{end}} コンストラクト。この条件ステートメントは、現在のループ反復が最初の反復ではないかどうかをチェックし、最初の反復である場合はコンマを出力します。これにより、コンマが配列内の要素の間にのみ挿入され、最後の要素の後には挿入されなくなります。

この変更を組み込むことにより、プログラムは次のように出力するようになります。

1,4,2.
ログイン後にコピー
ログイン後にコピー

以上がGo テンプレート範囲の最後の要素の後のカンマを避ける方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート