我有一个结构,其中包含一片类型为string的切片,如下所示。
"hEllo"
在我的html模板文件中,我希望覆盖字符串切片。但是,各个字段只是没有任何结构名称的字符串。如何遍历包含简单类型(例如字符串,整数等)的切片?
答案 0 :(得分:3)
使用.
来引用一个简单的值,例如字符串,整数等。
{{range .DataFields}}{{.}}{{end}}
您也可以像在{{range $v := .DataFields}}{{$v}}{{end}}
中一样分配给模板变量,但这是额外的工作。拥抱.
。
答案 1 :(得分:1)
或将其分配给变量,类似于普通的Go range子句:
{{range $element := .DataFields}} {{$element}} {{end}}
从docs for text/template(用作html / template的接口文档):
{{range pipeline}} T1 {{end}} The value of the pipeline must be an array, slice, map, or channel. If the value of the pipeline has length zero, nothing is output; otherwise, dot is set to the successive elements of the array, slice, or map and T1 is executed. If the value is a map and the keys are of basic type with a defined order ("comparable"), the elements will be visited in sorted key order....
动作内部的管道可以初始化变量以捕获结果。初始化具有语法
$variable := pipeline
...
如果“范围”操作初始化变量,则该变量将设置为迭代的连续元素。另外,“范围”可以声明两个变量,以逗号分隔:
range $index, $element := pipeline
在这种情况下,将$ index和$ element分别设置为数组/切片索引或映射键和元素的连续值。 请注意,如果只有一个变量,则会为其分配元素;这与Go range子句中的约定相反。
(我强调的粗体部分)