問題:
在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>如第一個範例所示,您可以使用printf 函數來連接字串。這種方法高效靈活。
組合模板表達式:
<code class="go">{{ TestFunc (printf "%s%s" "x" "y") }} // Returns "xy"</code>您也可以組合多個模板表達式來實現串聯。
修改TestFunc 參數處理:
<code class="go">func TestFunc(strs ...string) string { return strings.Trim(strings.Join(strs, ""), " ") } {{ TestFunc "x" $var }} // Returns "xy"</code>如果您的用例始終涉及連接TestFunc 參數的字串,您可以修改該函數以在內部處理連接。
以上是如何在Go模板中高效連接字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!