Go тілінде жолдармен қалай жұмыс істей аласыз?
sobes.tech AI
AI-дан жауап
Go тілінде жолдар өзгермейтін байттар тізбегі болып табылады.
Жолдармен жұмыс істеудің негізгі тәсілдері:
-
Жасау:
// Жолдық литерал s1 := "Hello, Go!" // Байттар слайсынан byteArray := []byte{'H', 'e', 'l', 'l', 'o'} s2 := string(byteArray) -
Қосылу:
s3 := "World" result := s1 + " " + s3 // + операторы арқылыҮлкен көлемдегі қосылулар үшін тиімдірек
strings.Builderқолдану:import "strings" var sb strings.Builder sb.WriteString("Hello") sb.WriteString(", ") sb.WriteString("World!") result2 := sb.String() -
Ұзындығы:
- Байттарда:
byteLength := len(s1) - Символдарда (рунах):
runeLength := utf8.RuneCountInString(s1) // "unicode/utf8" кітапханасын қосу керек
- Байттарда:
-
Белгілеуге (руна) қол жеткізу және қайталау: Go жолдары байттардан тұрады, бірақ
rangeкөмегімен қайталау кезінде олар рунаға (Unicode код нүктелері) декодталады.import "fmt" for index, runeValue := range s1 { fmt.Printf("Индекс: %d, Руна: %c, Тәртібі: %T\n", index, runeValue, runeValue) }Тікелей индекс арқылы қол жеткізу байтты қайтарса, руна емес:
b := s1[0] // 'H' байтын қайтарады -
Өзгертуге болмайтын:
- Байттар слайсіне айналдыру:
byteSlice := []byte(s1) - Рундар слайсіне айналдыру:
runeSlice := []rune(s1)
- Байттар слайсіне айналдыру:
-
stringsпакеті: Жолдармен жұмыс істеуге арналған көптеген пайдалы функцияларды ұсынады:strings.Contains(s, substr): Құрамында бар-жоғын тексеру.strings.HasPrefix(s, prefix): Префикс бар-жоғын тексеру.strings.HasSuffix(s, suffix): Суффикс бар-жоғын тексеру.strings.Index(s, substr): Бірінші кездесуді табу.strings.ReplaceAll(s, old, new): Барлық ауыстырулар.strings.Split(s, sep): Жолды бөлшектеу.strings.Join(a []string, sep string): Жолдар сызбасын біріктіру.strings.ToLower(s): Төменгі регистрге ауыстыру.strings.ToUpper(s): Жоғары регистрге ауыстыру.strings.TrimSpace(s): Басты және соңындағы бос орындарды жою.
-
fmtпакеті: Форматталған шығару және жолдарды оқу үшін. -
strconvпакеті: Жолдарды сандық типтерге және керісінше түрлендіру үшін.import "strconv" i, err := strconv.Atoi("123") // Жолды бүтін санға айналдыру s := strconv.Itoa(i) // Бүтін санды жолға айналдыру
Жолдардың өзгермейтіндігі маңызды, және ол жолды өзгертуге тырысатын кез келген операция (мысалы, қосу немесе Replace) жаңа жолды құруды білдіреді.