In go (now v1.1.1), an identifier is exported only if it starts with a character in
Unicode class "Lu" (uppercase letter).
The feature works fine for Western languages, but fails for CJK languages. All CJK
characters are letters but they are not uppercase. Therefore, these are not exported:
var 成本 int = 5 // Chinese ideograph
func ぶつける() { ... } // Japanese Hiragana (they are indeed letters)
It is very strange to use, say Z成本 or Jぶつける as identifiers.
I don't know how to properly control the permission. But at least I think it is
preferable to use CJK characters as *uppercase* letters, if we have no other choices
(more keywords, etc.)
In go (now v1.1.1), an identifier is exported only if it starts with a character in Unicode class "Lu" (uppercase letter). The feature works fine for Western languages, but fails for CJK languages. All CJK characters are letters but they are not uppercase. Therefore, these are not exported: var 成本 int = 5 // Chinese ideograph func ぶつける() { ... } // Japanese Hiragana (they are indeed letters) It is very strange to use, say Z成本 or Jぶつける as identifiers. I don't know how to properly control the permission. But at least I think it is preferable to use CJK characters as *uppercase* letters, if we have no other choices (more keywords, etc.)