问题:
在 Go 模板中,有没有一种高效的方法可以使用
提供的示例:
<code class="go">{{ $var := printf "%s%s" "x" "y" }} {{ TestFunc $var }} // Returns "xy" {{ $var := "y" }} {{ TestFunc "x" + $var }} // Error: unexpected "+" in operand {{ $var := "y" }} {{ TestFunc "x" + {$var} }} // Error: unexpected "+" in operand</code>
答案:
Go 模板不支持以下运算符字符串连接。因此,上述示例将导致错误。
解决方案:
使用 printf 函数:
如第一个示例所示,您可以使用 printf 函数来连接字符串。这种方法高效灵活。
<code class="go">{{ $var := printf "%s%s" "x" "y" }} {{ TestFunc $var }} // Returns "xy"</code>
组合模板表达式:
您还可以组合多个模板表达式来实现串联。
<code class="go">{{ TestFunc (printf "%s%s" "x" "y") }} // Returns "xy"</code>
修改 TestFunc 参数处理:
如果您的用例始终涉及连接 TestFunc 参数的字符串,您可以修改该函数以在内部处理连接。
<code class="go">func TestFunc(strs ...string) string { return strings.Trim(strings.Join(strs, ""), " ") } {{ TestFunc "x" $var }} // Returns "xy"</code>
以上是如何在Go模板中高效连接字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!