Junior — Middle
Programlamada bir dizgenin karakterleri üzerinde gezinirken hangi özellikler vardır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da dizgeler bayt dizisi olarak temsil edilir, ancak sıklıkla UTF-8 kodlamasında karakterler içerir, burada bir karakter (bir rune) birkaç bayt sürebilir. Bir dizgiyi indekslerle dolaşırken (örneğin, for i := 0; i < len(s); i++) baytlar üzerinden geçersiniz, karakterler değil, bu da çok baytlı karakterlerin yanlış işlenmesine yol açabilir.
Karakterleri doğru şekilde dolaşmak için, Unicode kod noktaları (rune) üzerinde yineleyen for range döngüsü kullanılır:
s := "Привет"
for i, r := range s {
fmt.Printf("indeks: %d, karakter: %c\n", i, r)
}
Burada, i dizgedeki rune'un ilk baytının indeksidir ve r rune'un kendisidir. Bu, çok dilli metinler ve ASCII dışı karakterlerle doğru çalışmak için önemlidir.