Sobes.tech
Junior

Go tilida satrlar bilan qanday ishlash mumkin?

sobes.tech AI

AIdan javob

Go tilida satrlar o'zgarmas ketma-ketliklar sifatida hisoblanadi.

Satrlar bilan ishlashning asosiy usullari:

  1. Yaratish:

    // Satr literal
    s1 := "Hello, Go!"
    
    // Baytlar massividan
    byteArray := []byte{'H', 'e', 'l', 'l', 'o'}
    s2 := string(byteArray)
    
  2. Qo'shish:

    s3 := "World"
    result := s1 + " " + s3 // + operatoridan foydalanish
    

    Ko'p qo'shishlar uchun strings.Builderdan foydalanish samaraliroq:

    import "strings"
    
    var sb strings.Builder
    sb.WriteString("Hello")
    sb.WriteString(", ")
    sb.WriteString("World!")
    result2 := sb.String()
    
  3. Uzunlik:

    • Baytlarda:
      byteLength := len(s1)
      
    • Belgilarda (runes):
      runeLength := utf8.RuneCountInString(s1) // "unicode/utf8" import qilish shart
      
  4. Belgilar (runes) va iteratsiya qilish: Go satrlari baytlardan iborat, ammo range yordamida iteratsiya qilinsa, ular Unicode kod nuqtalariga (runes) dekodlanadi.

    import "fmt"
    
    for index, runeValue := range s1 {
        fmt.Printf("Indeks: %d, Rune: %c, Turi: %T\n", index, runeValue, runeValue)
    }
    

    To'g'ridan-to'g'ri indeksga kirish baytni qaytaradi, runeni emas:

    b := s1[0] // 'H' baytini qaytaradi
    
  5. Konvertatsiya:

    • Baytlar massiviga:
      byteSlice := []byte(s1)
      
    • Rune massiviga:
      runeSlice := []rune(s1)
      
  6. strings paket: Satrlar bilan ishlash uchun ko'plab foydali funksiyalar taqdim etadi:

    • strings.Contains(s, substr): Substring mavjudligini tekshiradi.
    • strings.HasPrefix(s, prefix): Prefix bilan boshlashini tekshiradi.
    • strings.HasSuffix(s, suffix): Suffix bilan tugashini tekshiradi.
    • strings.Index(s, substr): Birinchi uchrashuvni topadi.
    • strings.ReplaceAll(s, old, new): Barcha o'zgarishlarni amalga oshiradi.
    • strings.Split(s, sep): Satrlarga bo'linadi.
    • strings.Join(a []string, sep string): Satrlardan iborat massivni birlashtiradi.
    • strings.ToLower(s): Kichik harflarga o'tkazadi.
    • strings.ToUpper(s): Katta harflarga o'tkazadi.
    • strings.TrimSpace(s): Boshlash va oxiridagi bo'sh joylarni olib tashlaydi.
  7. fmt paketi: Formatlangan chiqarish va o'qish uchun.

  8. strconv paketi: Satrlardan raqamli tiplarga va aksincha o'tkazish uchun:

    import "strconv"
    
    i, err := strconv.Atoi("123") // Stringdan intga
    s := strconv.Itoa(i) // Intdan stringga
    

Satrlarning o'zgarmasligi muhim bo'lib, har qanday operatsiya (masalan, qo'shish yoki Replace) aslida yangi satr yaratadi.