Строки, которые широко используются в программировании на Go, представляют собой фрагмент байтов, доступный только для чтения. В языке программирования Go строки представляют собой фрагменты . Платформа Go предоставляет различные библиотеки для работы со строками.
- юникода
- регулярное выражение
- строки
Создание строк
Самый прямой способ создать строку — написать
var greeting = "Hello world!"
Всякий раз, когда он встречает строковый литерал в вашем коде, компилятор создает строковый объект со значением в этом случае «Hello world!».
Строковый литерал содержит допустимые последовательности UTF-8, называемые рунами. Строка содержит произвольные байты.
package main import "fmt" func main() { var greeting = "Hello world!" fmt.Printf("normal string: ") fmt.Printf("%s", greeting) fmt.Printf("\n") fmt.Printf("hex bytes: ") for i := 0; i < len(greeting); i++ { fmt.Printf("%x ", greeting[i]) } fmt.Printf("\n") const sampleText = "\xbd\xb2\x3d\xbc\x20\xe2\x8c\x98" /*q flag escapes unprintable characters, with + flag it escapses non-ascii characters as well to make output unambigous */ fmt.Printf("quoted string: ") fmt.Printf("%+q", sampleText) fmt.Printf("\n") }
Это даст следующий результат —
normal string: Hello world! hex bytes: 48 65 6c 6c 6f 20 77 6f 72 6c 64 21 quoted string: "\xbd\xb2=\xbc \u2318"
Примечание . Строковый литерал является неизменным, поэтому после его создания строковый литерал нельзя изменить.
Длина строки
Метод len (str) возвращает количество байтов, содержащихся в строковом литерале.
package main import "fmt" func main() { var greeting = "Hello world!" fmt.Printf("String Length is: ") fmt.Println(len(greeting)) }
Это даст следующий результат —
String Length is : 12
Конкатенация строк
Пакет strings включает в себя метод join для объединения нескольких строк —
strings.Join(sample, " ")
Объединение объединяет элементы массива для создания одной строки. Второй параметр — это разделитель, который размещается между элементами массива.
Давайте посмотрим на следующий пример —
package main import ("fmt" "math" )"fmt" "strings") func main() { greetings := []string{"Hello","world!"} fmt.Println(strings.Join(greetings, " ")) }
Это даст следующий результат —