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

时间:2017-07-29 13:25:29

标签: go concatenation concat go-templates

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

 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/

中找不到它

1 个答案:

答案 0 :(得分:7)

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

使用问题中显示的printf函数或将调用合并到一个模板表达式中:

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

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

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

{{ TestFunc "x"  $var }}