Исходный код в Go - это Unicode текст, в кодировке UTF-8. Текст не канонизирован, поэтому одна акцентированная кодовая точка отличается от того же символа, сконструированного из сочетания ударения и буквы; они рассматриваются как две кодовые точки. Для простоты в спецификации используется неквалифицированный термин-символ для ссылки на Unicode кодовую точку в исходном тексте.
Каждая кодовая точка отличается; например, заглавные и строчные буквы - это разные символы.
Ограничение реализации: для совместимости с другими инструментами компилятор может запретить символ NUL (U+0000) в исходном тексте.
Ограничение реализации: для совместимости с другими инструментами компилятор может игнорировать метку порядка байтов в кодировке UTF-8 (U+FEFF), если это первая Unicode кодовая точка в исходном тексте. Метка порядка следования байтов может быть запрещена где-либо еще в источнике.
Символы
Следующие термины используются для обозначения определенных классов Unicode символов:
newline = /* Unicode кодовая точка U+000A */ .
unicode_char = /* произвольная Unicode кодовая точка исключая newline */ .
unicode_letter = /* Unicode кодовая точка классифицированная как "Letter"(Буква) */ .
unicode_digit = /* Unicode кодовая точка классифицированная как "Number, decimal digit"(Число, десятичная цифра) */ .
В Unicode стандарте 8.0, Раздел 4.5 "General Category" определяет набор категорий символов. Go рассматривает все символы в любой из Letter категорий Lu, Ll, Lt, Lm, или Lo как Unicode буквы, а все символы в Number категории Nd как Unicode цифры.
Буквы и цифры
Символ нижнего подчеркивания _ (U+005F) считается буквой.
letter = unicode_letter | "_" .
decimal_digit = "0" … "9" .
octal_digit = "0" … "7" .
hex_digit = "0" … "9" | "A" … "F" | "a" … "f" .
Читайте также:
Комментариев нет:
Отправить комментарий