我正在尝试使用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}})`
Run Code Online (Sandbox Code Playgroud)
到目前为止,我最好的线索可以在http://golang.org/pkg/text/template/中找到以下声明:
如果"范围"操作初始化变量,则将变量设置为迭代的连续元素.另外,"范围"可以声明两个变量,用逗号分隔:
$index, $element := pipeline
Run Code Online (Sandbox Code Playgroud)
在这种情况下,$ index和$ element分别设置为数组/切片索引或映射键和元素的连续值.请注意,如果只有一个变量,则为其分配元素; 这与Go range子句中的约定相反.在哪里建议索引
这表明可以在迭代中获取索引,但我无法弄清楚声明两个变量的范围是什么意思,以及模板中应该声明这些变量的位置.
归档时间: |
|
查看次数: |
5282 次 |
最近记录: |