mirror of
https://github.com/golang/go
synced 2024-11-24 22:57:57 -07:00
explain the situation with unicode and identifiers
R=rsc CC=golang-dev https://golang.org/cl/156044
This commit is contained in:
parent
26b55e44d9
commit
33d10e4d32
@ -201,6 +201,33 @@ Finally, concurrency aside, garbage collection makes interfaces
|
|||||||
simpler because they don't need to specify how memory is managed across them.
|
simpler because they don't need to specify how memory is managed across them.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
<h2 id="unicode_identifiers">What's up with Unicode identifiers?</h2>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
It was important to us to extend the space of identifiers from the
|
||||||
|
confines of ASCII. Go's rule—identifier characters must be
|
||||||
|
letters or digits as defined by Unicode—is simple to understand
|
||||||
|
and to implement but has restrictions. Combining characters are
|
||||||
|
excluded by design, for instance.
|
||||||
|
Until there
|
||||||
|
is an agreed external definition of what an identifier might be,
|
||||||
|
plus a definition of canonicalization of identifiers that guarantees
|
||||||
|
no ambiguity, it seemed better to keep combining characters out of
|
||||||
|
the mix. Thus we have a simple rule that can be expanded later
|
||||||
|
without breaking programs, one that avoids bugs that would surely arise
|
||||||
|
from a rule that admits ambiguous identifiers.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
On a related note, since an exported identifier must begin with an
|
||||||
|
upper-case letter, identifiers created from “letters”
|
||||||
|
in some languages can, by definition, not be exported. For now the
|
||||||
|
only solution is to use something like <code>X日本語</code>, which
|
||||||
|
is clearly unsatisfactory; we are considering other options. The
|
||||||
|
case-for-visibility rule is unlikely to change however; it's one
|
||||||
|
of our favorite features of Go.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h2 id="absent_features">Absent features</h2>
|
<h2 id="absent_features">Absent features</h2>
|
||||||
|
|
||||||
<h3 id="generics">
|
<h3 id="generics">
|
||||||
|
Loading…
Reference in New Issue
Block a user