ホームページ >バックエンド開発 >Golang >Go テンプレート範囲の最後の要素の後のカンマを避ける方法は?

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 07:17:30298ブラウズ

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

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