Rune 與Byte Ranging over String
使用range 迭代字串時,我們得到rune 類型的字符,同時使用str[index🎜>使用range 迭代字串] 返回位元組。這是由 Go 語言的基本設計決定的。
字串類型:
字串被定義為位元組序列,整數索引範圍從 0 到 len( s)-1。每個位元組代表字串中的單一代碼單元。
範圍子句:
for 循環中的範圍子句迭代字串中的 Unicode 程式碼點,其中由一個或多個位元組組成。在每次迭代中:
特定字元存取:
使用 str[index] 存取特定字元會傳回該索引處的位元組值。這與範圍迭代不同,後者迭代代碼點而不是位元組。
為什麼語言這樣定義它:
選擇使用符文作為範圍進行迭代是為了簡化字串處理運算。它允許開發人員迭代 Unicode 字符,無論其位元組組成如何。這提供了一種更一致和直觀的方式來處理字串。
反轉為位元組迭代:
如果您需要位元組迭代而不是符文迭代,您可以使用以下方法:
使用有整數索引的for循環來迭代位元組直接:
for i := 0; i < len(s); i++ { // Process byte at index i }
將字串轉換為位元組數組並迭代它:
for _, b := range []byte(s) { // Process byte b }
透過選擇合適的迭代方法,開發者可以根據自己的特定需求,有效地處理字串。
以上是Go 字串中的符文與位元組:何時應該使用範圍存取與索引存取?的詳細內容。更多資訊請關注PHP中文網其他相關文章!