Что такое руны в языке Голанг? Как использовать руну в Golang? Статья даст вам ответ.

Раньше у нас был только один набор символов, и он назывался ASCII (Американский стандартный код для обмена информацией). Затем мы используем 7 бит для представления 128 символов, включая заглавные и строчные английские буквы, цифры, различные знаки препинания и символы управления устройством. Из-за этого ограничения на количество символов большинство населения не могло использовать свою традиционную систему письма. Для решения этой проблемы и был «рожден» Unicode. Unicode — это надмножество ASCII, содержащее все символы современных мировых систем письма. Он включает в себя акценты, диакритические знаки, управляющие коды, такие как табуляции и переносы строк, а также присваивает каждому символу стандартный номер, называемый «кодовой точкой Unicode» или в Go «руной». Тип Rune является псевдонимом для int32.
Что следует помнить о рунах в Голанге
- Всегда помните, строка — это последовательность байтов, а не руна. Строка может содержать текст Unicode, закодированный в UTF-8. Но исходный код Go закодирован в UTF-8, поэтому нет необходимости кодировать строки в UTF-8.
- UTF-8 кодирует весь Unicode в диапазоне от 1 до 4 байтов, где 1 байт используется для ASCII, а остальной — для рун.
- ASCII содержит в общей сложности 256 элементов, из которых 128 являются символами, а 0–127 определены как кодовые точки. Здесь кодовая точка относится к элементу, представляющему одно значение.
Например:
♄
Это руна с шестнадцатеричным значением ♄.
Истинное значение рун
Он представляет собой константу Руны, где целочисленное значение идентифицирует кодовую точку Юникода. В языке Go рунический литерал представлен в виде одного или нескольких символов, заключенных в скобки, например «g», «\t» и т. д. Между скобками можно разместить любой символ, кроме символа новой строки и неэкранированной скобки. Здесь символы, заключенные в эти скобки, представляют значение Unicode самого данного символа, а многосимвольные строки с обратной косой чертой (в начале многосимвольной строки) кодируют значения в другом формате. В Rune Literal все строки, начинающиеся с обратной косой черты, являются недопустимыми, только следующие одиночные экранированные символы представляют специальные значения при использовании их с обратной косой чертой:
Характер |
Юникод |
Описывать |
\а |
U+0007 |
Сигнал тревоги или звонок |
\б |
U+0008 |
Возврат на одну позицию |
\ф |
У+000С |
Данные формы |
\н |
У+000А |
Перевод строки или разрыв строки |
\р |
У+000Д |
Вернуться к началу строки |
\т |
U+0009 |
Горизонтальная вкладка |
\v |
У+000б |
Вертикальная вкладка |
\\ |
U+005c |
Обратная косая черта |
\' |
U+0027 |
Апостроф |
\" |
U+0022 |
Двойные кавычки (допустимы только в строках символов) |
Например:
//Minh họa chương trình Go đơn giản về cách tạo một rune
package main
import (
"fmt"
"reflect"
)
func main() {
// Tạo một rune
rune1 := 'B'
rune2 := 'g'
rune3 := '\a'
// Hiện rune và kiểu của nó
fmt.Printf("Rune 1: %c; Unicode: %U; Type: %s", rune1,
rune1, reflect.TypeOf(rune1))
fmt.Printf("\nRune 2: %c; Unicode: %U; Type: %s", rune2,
rune2, reflect.TypeOf(rune2))
fmt.Printf("\nRune 3: Unicode: %U; Type: %s", rune3,
reflect.TypeOf(rune3))
}
Результат:
Rune 1: B; Unicode: U+0042; Type: int32
Rune 2: g; Unicode: U+0067; Type: int32
Rune 3: Unicode: U+0007; Type: int32
Пример 2:

Результат:
Character: ♛, Unicode:U+265B, Position:0
Character: ♠, Unicode:U+2660, Position:1
Character: ♧, Unicode:U+2667, Position:2
Character: ♡, Unicode:U+2661, Position:3
Character: ♬, Unicode:U+266C, Position:4