]> Cypherpunks repositories - gostls13.git/commitdiff
use the notion of "untyped constant" instead of "ideal constant"
authorRobert Griesemer <gri@golang.org>
Thu, 1 Oct 2009 21:12:18 +0000 (14:12 -0700)
committerRobert Griesemer <gri@golang.org>
Thu, 1 Oct 2009 21:12:18 +0000 (14:12 -0700)
R=iant
DELTA=13  (1 added, 0 deleted, 12 changed)
OCL=35241
CL=35246

doc/go_for_cpp_programmers.html

index 055242f7163be0304be6a765345490dad7a71735..d6d4329ba8131f97351cb3e3e4296dcb4fc3326a 100644 (file)
@@ -257,21 +257,22 @@ You cannot write <code>c = *p++</code>.  <code>*p++</code> is parsed as
 <h2 id="Constants">Constants </h2>
 
 <p>
-In Go integer and floating-point constants have so-called ideal types.
-This applies even to constants named with a <code>const</code> declaration,
-if no
-type is given in the declaration.  An ideal type becomes concrete when
-it is actually used.  This permits constants to be used relatively
+In Go constants may be <i>untyped</i>. This applies even to constants
+named with a <code>const</code> declaration if no
+type is given in the declaration and the initializer expression uses only
+untyped constants.
+An untyped constant becomes typed when it is used within a context that
+requires a typed value. This permits constants to be used relatively
 freely without requiring general implicit type conversion.
 
 <pre>
-var a uint; f(a + 1)  // Ideal type of "1" becomes "uint".
+var a uint; f(a + 1)  // untyped numeric constant "1" becomes typed as uint
 </pre>
 
 <p>
-The language does not impose any limits on the size of an abstract
-integer constant or constant expression.  A limit is only applied when
-a constant expression is used where a type is required.
+The language does not impose any limits on the size of an untyped
+numeric constant or constant expression. A limit is only applied when
+a constant is used where a type is required.
 
 <pre>
 const huge = 1 &lt;&lt; 100; f(huge &gt;&gt; 98)