Junior
Golang dilinde string veri tipi nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Golang'da string, değiştirilemez bir bayt dizisidir.
Ana özellikler:
- Değiştirilemezlik: Bir dize oluşturulduktan sonra değiştirilemez. Dizeyi değiştiren herhangi bir işlem aslında yeni bir dize oluşturur.
- Temsil: Dize, bayt dizisi içerir. Varsayılan olarak, Golang bu baytların UTF-8 kodlu metni temsil ettiğini varsayar.
- Uzunluk: Dizenin uzunluğu (
len(s)) dizideki bayt sayısını döner, karakter (rune) sayısını değil. - İndeksleme: Dizedeki öğelere indeksle erişim (
s[i]), bu indeksdeki baytı döner. - Runlar: Karakterlerle (runlar) çalışmak için,
for rangedöngüsü kullanılarak dize üzerinde yineleme yapılır; bu, UTF-8'i çözümler ve runlar ile indeksleri sağlar.
Örnek:
// Dizeyi başlatma
s := "Привет, мир!" // 23 bayt, 12 run
// Dizenin uzunluğu (bayt cinsinden)
byteLength := len(s) // 23
// İndeksle bayta erişim
firstByte := s[0] // 208 (UTF-8'de 'П' baytı)
// Runlar üzerinde yineleme
runeCount := 0
for index, runeValue := range s {
// index - runanın dizideki başlangıç indeksi (bayt cinsinden)
// runeValue - çözümlenmiş runa
runeCount++
}
// runeCount = 12