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

1
Начать дискуссию