Sobes.tech
Junior

Go tilida satrlar bilan qanday ishlash mumkin?

sobes.tech AI

AIdan javob

Go'da satrlar o'zgarmas bayt ketma-ketligi bo'lib, ular UTF-8 matnini yoki har qanday ikkilamchi ma'lumotlarni ifodalash uchun ishlatiladi.

Asosiy ishlash usullari:

  • E'lon qilish va boshlash:

    var s1 string           // Bo'sh satr
    s2 := "salom"            // Satr literal bilan boshlash
    s3 := `ko'p qatorli
    satr`                // Xom satr literal
    
  • Satr uzunligi:

    len(s2) // Baytlar soni. "salom" uchun 5.
    
  • Baytlarga kirish:

    b := s2[0] // Indeksdagi baytni olish. 's' (UTF-8 da).
    

    To'g'ridan-to'g'ri baytlarga kirish UTF-8 belgisini to'liq olishni kafolatlamaydi.

  • Runalar (UTF-8 belgilariga) kirish: Satrlar runalar bo'yicha iteratsiya qilinishi mumkin:

    for index, runeValue := range s2 {
        fmt.Printf("Indeks: %d, Runa: %c\n", index, runeValue)
    }
    

    Runalar uzunligi:

    utf8.RuneCountInString(s2) // Runalar uzunligi. "salom" uchun 5.
    
  • Satrlarni birlashtirish:

    str1 := "hello"
    str2 := " world"
    result := str1 + str2 // + operatori bilan birlashtirish
    

    Ko'p satrlarni samarali birlashtirish uchun strings.Builder dan foydalaning.

    var sb strings.Builder
    sb.WriteString("hello")
    sb.WriteString(" ")
    sb.WriteString("world")
    result := sb.String() // Natijaviy satrni olish
    
  • Satrlar va bayt/rune bo'laklari o'rtasida konvertatsiya qilish:

    byteslice := []byte(s2)   // Satrni bayt bo'lagiga o'tkazish
    rs := []rune(s2)          // Satrni rune bo'lagiga o'tkazish
    
    backToString := string(byteslice) // Bayt bo'lagidan satr
    backToString = string(rs)         // Rune bo'lagidan satr
    
  • strings paket: Ko'plab foydali funksiyalarni taqdim etadi:

    • Contains, HasPrefix, HasSuffix
    • Index, LastIndex
    • Replace, ToUpper, ToLower, Trim, TrimSpace
    • Split, Join
  • strconv paket: Satrlarni boshqa ma'lumot turlariga (sonlar, booleanlar) o'tkazish va aksincha.

    i, err := strconv.Atoi("123") // Satrni int ga o'tkazish
    s := strconv.Itoa(456)        // Intni satrga o'tkazish
    
  • O'zgarmaslik: Har qanday satrni o'zgartirishga o'xshash operatsiyalar (masalan, birlashtirish) aslida yangi satr yaratadi. Bu ko'p o'zgarishlar uchun samaradorlik uchun muhimdir. Bunday hollarda []byte yoki strings.Builder dan foydalanish yaxshiroqdir.