Исходный код Go: о символах разных алфавитов
Согласно спецификации исходный код языка Go — это Unicode-текст, закодированный с помощью UTF-8 (какая связь между этим форматом и языком Go?). Это значит, что при написании кода вы можете использовать не только символы английского алфавита, но и, например, русского или китайского oO.
package main type Request struct {} func MakeRequest(r Request) {} type Запрос struct {} func СделатьЗапрос(запрос Запрос) {} type 要求 struct {} func 提出要求(req 要求) {} func main() { MakeRequest(Request{}) 提出要求(要求{}) СделатьЗапрос(Запрос{}) }
Код выше скомпилируется без проблем: https://goplay.space/#nPVkld2gNjB.
О такой возможности полезно знать, но использование неанглийского языка на практике достаточно сомнительно. Особенно при написании библиотек с открытым исходным кодом и документации к ним (как часто вы ругаетесь, когда видите в важном месте популярной библиотеки комментарий на китайском языке?). Хотя существуют промышленные системы, в которых принято писать, например, на русском языке (всем известная — 1С). Кроме того, есть эксперименты по написанию интерпретатора естественного языка на Go: https://github.com/covrom/gonec.
Вопрос внимательному читателю: а как при написании кода на иероглифах понимать, экспортируемый идентификатор или нет? :)