Soalan:
Templat In Go, adakah terdapat cara yang cekap untuk menggabungkan rentetan menggunakan pengendali seperti " "?
Contoh Disediakan:
<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>
Jawapan:
Templat Go tidak menyokong pengendali untuk penyatuan rentetan. Oleh itu, contoh di atas akan mengakibatkan ralat.
Penyelesaian:
Gunakan Fungsi printf:
Seperti yang ditunjukkan dalam contoh pertama, anda boleh menggunakan fungsi printf untuk menggabungkan rentetan. Kaedah ini cekap dan fleksibel.
<code class="go">{{ $var := printf "%s%s" "x" "y" }} {{ TestFunc $var }} // Returns "xy"</code>
Gabungkan Ungkapan Templat:
Anda juga boleh menggabungkan berbilang ungkapan templat untuk mencapai penggabungan.
<code class="go">{{ TestFunc (printf "%s%s" "x" "y") }} // Returns "xy"</code>
Ubah suai Pengendalian Argumen TestFunc:
Jika kes penggunaan anda sentiasa melibatkan rentetan penggabungan untuk argumen TestFunc, anda boleh mengubah suai fungsi untuk mengendalikan penggabungan secara dalaman.
<code class="go">func TestFunc(strs ...string) string { return strings.Trim(strings.Join(strs, ""), " ") } {{ TestFunc "x" $var }} // Returns "xy"</code>
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Rentetan dengan Cekap dalam Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!