例如,有一个类似的功能:

 func TestFunc(str string) string {
 return strings.Trim(str," ")
 }

它在以下示例中运行:
 {{ $var := printf "%s%s" "x" "y" }}
 {{ TestFunc $var }}

无论如何,在模板中使用运算符将​​字符串连接起来?
 {{ $var := "y" }}
 {{ TestFunc "x" + $var }}

或者
 {{ $var := "y" }}
 {{ TestFunc "x" + {$var} }}

它在操作数错误中给出了意外的“+”。

我在文档(https://golang.org/pkg/text/template/)中找不到它

最佳答案

由于Go模板没有运算符,因此无法使用运算符来连接字符串。

使用问题中所示的printf函数,或在单个模板表达式中组合调用:

{{ TestFunc (printf "%s%s" "x" "y") }}

如果您始终需要为TestFunc参数连接字符串,请编写TestFunc来处理连接:
func TestFunc(strs ...string) string {
   return strings.Trim(strings.Join(strs, ""), " ")
}

{{ TestFunc "x"  $var }}

10-06 01:47