goのテンプレートシステム(p1、p2、p3)を使用して、次のような文字列を作成しようとしています。ここで、p1、p2、...はプログラム内の配列から取得されます。私の問題は、最後の(または最初の)要素にコンマを正しく配置する方法です。
(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/にあります。
「範囲」アクションが変数を初期化する場合、変数は反復の連続する要素に設定されます。また、「範囲」は、コンマで区切られた2つの変数を宣言する場合があります。
$index, $element := pipeline
この場合、$indexと$elementは、それぞれ配列/スライスインデックスまたはマップキーと要素の連続する値に設定されます。変数が1つしかない場合は、要素が割り当てられることに注意してください。これは、Go範囲句の規則とは逆です。インデックスが提案されている場所
これは、反復でインデックスを取得できることを示唆していますが、2つの変数を宣言する範囲の意味と、テンプレートのどこでそれらの変数が宣言されるのかを理解できません。