Pengubahan Rentetan dalam Go: Menyelesaikan Ralat "Tidak Boleh Ditugaskan pada Rentetan"
Rentetan Go tidak boleh diubah, bermakna ia tidak boleh diubah suai secara langsung sekali dicipta. Had ini sering menimbulkan ralat "tidak boleh berikan kepada new_str[i]" apabila cuba mengubah kandungan rentetan. Untuk mengatasi cabaran ini dan mengubah suai rentetan, pendekatan alternatif diperlukan.
Satu penyelesaian ialah menukar rentetan kepada kepingan bait, yang boleh diubah seperti tatasusunan. Teknik ini membolehkan penggantian aksara dalam rentetan. Kod berikut menunjukkan pendekatan ini:
<code class="go">func ToUpper(str string) string { new_str := []byte(str) for i := 0; i < len(str); i++ { if str[i] >= 'a' && str[i] <= 'z' { chr := uint8(rune(str[i]) - 'a' + 'A') new_str[i] = chr } } return string(new_str) }</code>
Dalam kod ini, rentetan str ditukar kepada hirisan bait new_str. Potongan bait kemudiannya diulang, membandingkan setiap bait dengan julat aksara ASCII huruf kecil. Jika bait huruf kecil ditemui, ia digantikan dengan huruf besar bersamaan ASCII. Akhir sekali, kepingan bait yang diubah suai ditukar kembali kepada rentetan dan dikembalikan.
Pendekatan ini membolehkan pengubahan rentetan dalam Go sambil mengekalkan kebolehubahannya. Ia menyediakan cara yang fleksibel dan cekap untuk memanipulasi rentetan dalam pelbagai konteks.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai String dalam Go Jika Ia Tidak Boleh Berubah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!