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 birlashtirishKo'p satrlarni samarali birlashtirish uchun
strings.Builderdan 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 -
stringspaket: Ko'plab foydali funksiyalarni taqdim etadi:Contains,HasPrefix,HasSuffixIndex,LastIndexReplace,ToUpper,ToLower,Trim,TrimSpaceSplit,Join
-
strconvpaket: 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
[]byteyokistrings.Builderdan foydalanish yaxshiroqdir.