你知道Go語言的Rune嗎?
rune它是int32的別名(-2147483648~2147483647),相比于byte(-128~127),可表示的字符更多。
由于rune可表示的范圍更大,所以能處理一切字符,當(dāng)然也包括中文字符。在平時計算中文字符,可用rune。
當(dāng)我們數(shù)據(jù)中有中文時,一定要注意rune的處理。
len()詳解
len()獲得的是 byte 字節(jié)的數(shù)量,一個中文占用3個字節(jié)
輸出結(jié)果是:8 5 3
循環(huán)輸出字符串
輸出結(jié)果:
我們發(fā)現(xiàn)英文可以正常輸出,但是中文通過這種方式輸出會亂碼
循環(huán)輸出中文字符串
我們可以通過for range循環(huán),從字符串中拿出具體的字符
輸出結(jié)果:
字符串的修改
字符串修改是不能直接修改的,需要轉(zhuǎn)成rune切片后再修改
輸出結(jié)果:大白兔
字符和字符串的區(qū)別
輸出結(jié)果:
總結(jié):我們發(fā)現(xiàn)只要是雙引號包裹的類型就是string,只要是單引號包裹的類型就是int32,也就是rune。和中英文無關(guān)。
知識點:rune的別名是int32
類型轉(zhuǎn)換
輸出結(jié)果:
總結(jié)
字符串的修改要轉(zhuǎn)成rune切片,而不能像PHP一樣直接修改。
本文轉(zhuǎn)載自微信公眾號「 程序員升級打怪之旅」,作者「王中陽Go」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系程序員升級打怪之旅公眾號。