Rumah  >  Artikel  >  pembangunan bahagian belakang  >  ## Mengapa Saya Tidak Boleh Mengubah Suai Rentetan di Tempat di Go?

## Mengapa Saya Tidak Boleh Mengubah Suai Rentetan di Tempat di Go?

Linda Hamilton
Linda Hamiltonasal
2024-10-27 10:25:30815semak imbas

## Why Can't I Modify a String in Place in Go?

Mengapa saya tidak boleh mengubah suai rentetan di tempat dalam Go?

Rentetan dalam Go tidak boleh diubah, bermakna setelah dibuat, anda tidak boleh mengubah suai kandungannya. Ini jelas daripada ralat berikut: "cannot assign to new_str[i]".

Untuk menukar kandungan rentetan, anda mesti menghantarnya ke hirisan []bait dahulu. Tidak seperti rentetan, kepingan bait sememangnya boleh berubah. Anda kemudiannya boleh melakukan pengubahsuaian yang anda inginkan pada kepingan bait dan menghantarnya kembali ke rentetan menggunakan fungsi rentetan(...).

Berikut ialah versi diubah suai kod anda yang menggunakan kepingan bait untuk menukar aksara huruf kecil kepada huruf besar:

<code class="go">func ToUpper(str string) string {
    bytes := []byte(str)
    for i := 0; i < len(str); i++ {
        if bytes[i] >= 'a' && bytes[i] <= 'z' {
            chr := uint8(rune(bytes[i]) - 'a' + 'A')
            bytes[i] = chr
        }
    }
    return string(bytes)
}</code>

Kini, apabila anda memanggil ToUpper("cdsrgGDH7865fxgh"), ia akan menukar semua aksara kecil kepada huruf besar dengan betul.

Atas ialah kandungan terperinci ## Mengapa Saya Tidak Boleh Mengubah Suai Rentetan di Tempat di Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn