суббота, 4 мая 2019 г.

Спецификация Go: представление исходного кода

Исходный код в 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" .


Читайте также:


Комментариев нет:

Отправить комментарий