Mengabaikan Medan Lebihan dalam fmt.Sprintf
Pertimbangkan senario di mana program Go memproses input rentetan daripada baris arahan dan menggunakan fmt. Sprintf untuk menjana rentetan berformat. Jika input, diwakili sebagai tmp_str, mengandungi ruang letak (cth., "%s") dan nilai gantian yang disertakan tidak diberikan, fmt.Sprintf akan menimbulkan ralat dengan mesej "EXTRA string=world", dengan "world" ialah tiada penggantian.
Untuk menangani isu ini dan mengendalikan situasi di mana input mungkin kekurangan ruang letak, satu pendekatan adalah dengan menghendaki pengguna baris perintah memasukkan pemegang tempat "%s" secara konsisten. Ini memastikan bahawa walaupun tiada nilai diberikan kepada pemegang tempat, program mengelakkan panik. Memotong rentetan kepada panjang sifar, seperti yang ditunjukkan dalam contoh berikut, akan menyekat sebarang output yang dikaitkan dengan pemegang tempat:
<code class="go">package main import "fmt" func main() { tmp_str := "Hello Friends%.0s" str := fmt.Sprintf(tmp_str, "") fmt.Println(str) }</code>
Output:
Hello Friends
Dengan menggunakan strategi ini, program boleh mengabaikan sebarang medan gantian lebihan yang dihantar kepada fmt.Sprintf dan mengekalkan tingkah laku yang stabil.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Nilai Penggantian yang Hilang dalam fmt.Sprintf?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!