Apabila berhadapan dengan literal rentetan yang panjang, pengaturcara Go sering menghadapi dilema untuk mengimbangi kebolehbacaan dan kecekapan. Coretan kod yang disediakan mempamerkan dua pendekatan: petikan mentah dan petikan bercantum.
1. Rentetan Mentah
db.Exec(`UPDATE mytable SET (I, Have, Lots, Of, Fields) = ('suchalongvalue', 'thisislongaswell', 'ohmansolong', 'wowsolong', 'loooooooooooooooooooooooooong')`)
Walaupun petikan mentah menyediakan cara yang mudah untuk mentakrif rentetan berbilang baris, ia datang dengan potensi kelemahan. Ruang terdahulu dan baris baharu disertakan dalam rentetan yang terhasil, yang boleh memperkenalkan jurang yang tidak sedap dipandang dalam medan pangkalan data.
2. Petikan Berbilang Berbilang
db.Exec("UPDATE mytable SET (I, Have, Lots, Of, Fields) = " + "('suchalongvalue', 'thisislongaswell', 'ohmansolong', " + "'wowsolong', 'loooooooooooooooooooooooooong')")
Menggabungkan berbilang rentetan petikan menawarkan pendekatan yang lebih fleksibel. Walau bagaimanapun, ia memperkenalkan pemisah baris dan kemungkinan ralat sintaks apabila tidak diurus dengan teliti.
Pendekatan Alternatif: Rentetan Templat
Untuk mencapai penyelesaian yang bersih dan cekap, ramai pengaturcara Go memilih untuk rentetan templat:
q := `UPDATE mytable SET (I, Have, Lots, Of, Fields) = ` + `('suchalongvalue', ` + `'thisislongaswell', ` + `'wowsolong', ` + `loooooooooooooooooooooooooong')` db.Exec(q)
Rentetan templat menggabungkan kebolehbacaan rentetan mentah dengan fleksibiliti penyambungan. Dengan menggunakan backticks (``) sebagai pembatas rentetan dan interpolasi rentetan untuk menggabungkan nilai, kami mencipta rentetan yang menarik secara visual dan betul dari segi sintaksis. Pendekatan ini dianggap Go idiomatik dan sangat disyorkan untuk mengendalikan literal rentetan panjang.
Atas ialah kandungan terperinci Cara Mengendalikan Huruf Rentetan Panjang dalam Go: Rentetan Mentah, Rangkaian atau Rentetan Templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!