Go dilinde dizilerle nasıl çalışabilirsiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go'da dizeler değiştirilemez diziler olarak kabul edilir.
Dizelerle çalışma yöntemleri:
-
Oluşturma:
// Dize literal'i s1 := "Hello, Go!" // Byte diliminden byteArray := []byte{'H', 'e', 'l', 'l', 'o'} s2 := string(byteArray) -
Birleştirme:
s3 := "World" result := s1 + " " + s3 // + operatörü kullanımıÇok sayıda birleştirme için
strings.Builderkullanmak daha etkilidir:import "strings" var sb strings.Builder sb.WriteString("Hello") sb.WriteString(", ") sb.WriteString("World!") result2 := sb.String() -
Uzunluk:
- Bayt cinsinden:
byteLength := len(s1) - Karakter (rune) cinsinden:
runeLength := utf8.RuneCountInString(s1) // "unicode/utf8" import edilmesi gerekir
- Bayt cinsinden:
-
Karakterlere (rune) erişim ve yineleme: Go'da dizeler baytlardan oluşur, ancak
rangekullanılarak yineleme yapıldığında Unicode kod noktalarına (rune) çözülürler.import "fmt" for index, runeValue := range s1 { fmt.Printf("İndeks: %d, Rune: %c, Tip: %T\n", index, runeValue, runeValue) }Doğrudan indeks erişimi bayt döndürür, rune değil:
b := s1[0] // 'H' baytını döndürür -
Dönüşüm:
- Bayt dilimine:
byteSlice := []byte(s1) - Rune dilimine:
runeSlice := []rune(s1)
- Bayt dilimine:
-
stringspaketi: Dizelerle çalışmak için birçok kullanışlı fonksiyon sağlar:strings.Contains(s, substr): Alt dize içeriyor mu?strings.HasPrefix(s, prefix): Öneki var mı?strings.HasSuffix(s, suffix): Sonek var mı?strings.Index(s, substr): İlk konumunu bulur.strings.ReplaceAll(s, old, new): Tüm eşleşmeleri değiştirir.strings.Split(s, sep): Dizeyi ayırır.strings.Join(a []string, sep string): Dizeleri birleştirir.strings.ToLower(s): Küçük harfe dönüştürür.strings.ToUpper(s): Büyük harfe dönüştürür.strings.TrimSpace(s): Baş ve sondaki boşlukları kaldırır.
-
fmtpaketi: Formatlı çıktı ve giriş için. -
strconvpaketi: Dize ve sayısal tipler arasında dönüşüm yapar:import "strconv" i, err := strconv.Atoi("123") // String'ten int'e s := strconv.Itoa(i) // Int'ten string'e
Dizelerin değiştirilemezliği önemli olup, herhangi bir işlem (örneğin, birleştirme veya Replace) aslında yeni bir dize oluşturur.