有没有一种有效的方法来连接golang模板中的字符串

Özg*_*çın 5 concat concatenation go go-templates

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

 func TestFunc(str string) string {
 return strings.Trim(str," ")
 }
Run Code Online (Sandbox Code Playgroud)

它运行在下面的示例中:

 {{ $var := printf "%s%s" "x" "y" }}
 {{ TestFunc $var }}
Run Code Online (Sandbox Code Playgroud)

反正是否有模板中的运算符连接字符串?

 {{ $var := "y" }}
 {{ TestFunc "x" + $var }}
Run Code Online (Sandbox Code Playgroud)

要么

 {{ $var := "y" }}
 {{ TestFunc "x" + {$var} }}
Run Code Online (Sandbox Code Playgroud)

它在操作数错误中给出了意外的"+".

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

Cer*_*món 8

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

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

{{ TestFunc (printf "%s%s" "x" "y") }}
Run Code Online (Sandbox Code Playgroud)

如果您总是需要连接TestFunc参数的字符串,那么编写TestFunc来处理连接:

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

{{ TestFunc "x"  $var }}
Run Code Online (Sandbox Code Playgroud)