Чӣ гуна метавонед бо сатрҳо дар забони 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") // Аз сатр ба int s := strconv.Itoa(i) // Аз int ба сатр
Номутобиқ будани сатрҳо муҳим аст ва маъно дорад, ки ҳар коре, ки ба назар мерасад, ки тағир додани сатр (масалан, ҳамҷоя кардан ё Replace) дар асл як сатр нав эҷод мекунад.