首頁 > 後端開發 > Golang > ## 為什麼我無法在 Go 中就地修改字串?

## 為什麼我無法在 Go 中就地修改字串?

Linda Hamilton
發布: 2024-10-27 10:25:30
原創
905 人瀏覽過

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

為什麼我無法在 Go 中修改字串?

Go 中的字串是不可變的,這意味著一旦創建,就無法修改其內容。從以下錯誤中可以明顯看出這一點:「無法指派給 new_str[i]」。

要更改字串的內容,必須先將其轉換為 []byte 切片。與字串不同,位元組切片確實是可變的。然後,您可以對位元組切片執行所需的修改,並使用 string(...) 函數將其轉換回字串。

這是程式碼的修改版本,它使用位元組切片將小寫字元更改為大寫:

<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>
登入後複製

現在,當您呼叫ToUpper("cdsrgGDH7865fxgh") 時,它會正確地將所有小寫字元轉換為大寫。

以上是## 為什麼我無法在 Go 中就地修改字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板