Golang строки и Руны
Строки и Руны в Golang
Строки (Strings) и Руны (Runes) - это основные типы данных, используемые для работы с текстом в Golang. Они позволяют программистам работать с символьными данными и производить различные операции, такие как поиск, замена, сортировка, конкатенация и другие.
Строки в Golang
Строки в Golang представляют собой последовательность символов типа byte. Они могут быть созданы литералами в двойных кавычках, например:
```
var str string = "Hello, world!"
```
Строки также могут быть созданы путем конкатенации двух или более строк с помощью оператора +:
```
var str1 string = "Hello,"
var str2 string = " world!"
var str3 string = str1 + str2
```
Строки в Golang являются неизменяемыми и могут быть изменены только путем создания новой строки. Но вы можете получить доступ к отдельным символам строки с помощью индексации:
```
var str string = "Hello, world!"
fmt.Println("1st character:", str[0]) // 72
fmt.Println("2nd character:", str[1]) // 101
```
В этом примере мы получаем доступ к первому и второму символам строки "Hello, world!" путем индексации. Значение возвращается как байт (byte), который представляет символ в ASCII таблице символов.
Руны в Golang
Руны в Golang используются для работы с юникодными символами. Руна (Rune) - это целое число типа int32, которое представляет отдельный символ. В отличие от байтовых строк, руны могут быть изменены непосредственно в строке.
Для создания руны в Golang используется одинарные кавычки. Например:
```
var r rune = 'A'
```
Вы можете получить доступ к отдельным символам строки в виде рун с помощью итерации по строке. Например:
```
var str string = "Hello, 世界"
for i, r := range str {
fmt.Printf("%dth character = %c\n", i, r)
}
```
Здесь мы используем итерацию по строке, чтобы получить доступ к каждому символу в виде руны. Мы выводим каждую руну, используя "%c" форматирование строки.
Вывод:
```
0th character = H
1th character = e
2th character = l
3th character = l
4th character = o
5th character = ,
6th character = (a non-visible character)
7th character = 世
8th character = 界
```
Конвертация между строками и рунами
Вы можете преобразовать строку в одну или несколько рун с помощью оператора приведения типов:
```
var str string = "Hello, world!"
var r rune = rune(str[0]) // 72
```
Обратное преобразование (из руны в строку) выполняется с помощью функции string():
```
var r rune = 'A'
var str string = string(r) // "A"
```
Заключение
Строки и Руны - основные типы данных, используемые для работы с текстом в Golang. Хотя строки представляют собой последовательность байтов, руны используются для работы с юникодными символами. Оба типа данных могут быть изменены только путем создания новых строк или рун. Конвертация между строками и рунами возможна при помощи приведения типов и функции string().
телеграм канал Go