Sobes.tech
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.