私はgoのテンプレートシステムを使ってこのような文字列を書こうとしています: (p1、p2、p3)、p1、p2、.. 。プログラムの配列から来ます。私の問題は、最後の(または最初の)要素に対してカンマを適切に配置する方法です。Google Goのテキストテンプレートの範囲の最後の要素の特別な扱い
出力は(P1、P2、P3、)このようになります私の非作業バージョン:
package main
import "text/template"
import "os"
func main() {
ip := []string{"p1", "p2", "p3"}
temp := template.New("myTemplate")
temp,_ = temp.Parse(paramList)
temp.Execute(os.Stdout, ip)
}
const paramList =
`{{ $i := . }}({{ range $i }}{{ . }}, {{end}})`
私の最高の手がかりは、これまで、ここでhttp://golang.org/pkg/text/template/次の文で発見された:
場合は、 "range"アクションは変数を初期化し、変数は反復の連続する要素に設定されます。また、「範囲」は、コンマで区切られた2つの変数を宣言してもよい:ケース$インデックスと$要素がアレイ/スライスインデックスの連続する値に設定するか、キーと要素のマップされた
$index, $element := pipeline
それぞれ、変数が1つしかない場合、要素に割り当てられます。これは、Goの範囲節の規約とは逆です。インデックス
これは、それが繰り返しで、インデックスのホールドを取得することが可能ですが、私はちょうど2つの変数とテンプレートでその変数を宣言する範囲を意味しているかを把握することができないことを示唆していることを示唆しています 宣言されるはずです。
ありがとうございました。それはそれを解決しました! – Laserallan