cpp

Проверка валидности символа

Как вы уже знаете, символы описываются с помощью типа rune, который является синонимом типа int32. Это означает, что мы можем присвоить любое значение в диапазоне для типа int32. Однако большинство функций ожидают, что символ является валидной кодовой точкой UTF-8. Кроме того, файл с программой у нас сохранен в кодировке UTF-8. Это означает, что символ, указываемый между апострофами, также является кодовой точкой UTF-8. Поэтому, когда мы говорим о символе мы подразумеваем валидную кодовую точку UTF-8, а не произвольное значение. При использовании кодировки UTF-8 следует учитывать, что латинские буквы и символы из кодировки ASCII кодируются одним байтом, русские буквы — двумя байтами, а некоторые символы — тремя и более байтами.

Проверить, является ли символ валидной кодовой точкой UTF-8, позволяет функция ValidRune() из пакета unicode/utf8. Формат функции:

utf8.ValidRune(r rune) bool

Пример:

// import "unicode/utf8"
fmt.Println(utf8.ValidRune('w')) // true
fmt.Println(utf8.ValidRune('8')) // true
var c rune = 0xfffffff
fmt.Println(utf8.ValidRune(c))   // false

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp