]> Cypherpunks repositories - gostls13.git/commit
spec: clarify index and selector expressions
authorRobert Griesemer <gri@golang.org>
Thu, 1 Aug 2013 05:25:47 +0000 (22:25 -0700)
committerRobert Griesemer <gri@golang.org>
Thu, 1 Aug 2013 05:25:47 +0000 (22:25 -0700)
commit2961d229de95e8d62e673080a616396fe4da9a3f
tree61d8354dbbe685b85cfe71edc3098ca04bc20da6
parent461f82526a0535e6a63a5c87aec50ab6bc558fe5
spec: clarify index and selector expressions

(Replacement for CL 11884043.)

1) Explain a[i] and a[i:j] where a is of type *A as
   shortcut for (*a)[i] and (*a)[i:j], respectively.

2) Together with 1), because len() of nil slices is
   well defined, there's no need to special case nil
   operands anymore.

3) The result of indexing or slicing a constant string
   is always a non-constant byte or string value.

4) The result of slicing an untyped string is a value
   of type string.

5) If the operand of a valid slice a[i:j] is nil (i, j
   must be 0 for it to be valid - this already follows
   from the in-range rules), the result is a nil slice.

Fixes #4913.
Fixes #5951.

R=r, rsc, iant, ken
CC=golang-dev
https://golang.org/cl/12198043
doc/go_spec.html