Go 有没有一种连接字符串的有效方法

Go 有没有一种连接字符串的有效方法,go,concatenation,go-templates,Go,Concatenation,Go Templates,例如,有这样一个函数: func TestFunc(str string) string { return strings.Trim(str," ") } 它在以下示例中运行: {{ $var := printf "%s%s" "x" "y" }} {{ TestFunc $var }} 在模板中是否有连接字符串和运算符的方法 {{ $var := "y" }} {{ TestFunc "x" + $var }} 或 它在操作数错误中给出意外的“+” 我在文档()中找不到它。

例如,有这样一个函数:

 func TestFunc(str string) string {
 return strings.Trim(str," ")
 }
它在以下示例中运行:

 {{ $var := printf "%s%s" "x" "y" }}
 {{ TestFunc $var }}
在模板中是否有连接字符串和运算符的方法

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

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


我在文档()中找不到它。

因为Go模板没有运算符,所以无法将字符串与运算符连接起来

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

{{ TestFunc (printf "%s%s" "x" "y") }}
如果始终需要为TestFunc参数连接字符串,请编写TestFunc以处理连接:

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

{{ TestFunc "x"  $var }}
另见@gyoza
func TestFunc(strs ...string) string {
   return strings.Trim(strings.Join(strs, ""), " ")
}

{{ TestFunc "x"  $var }}