1
0
mirror of https://github.com/golang/go synced 2024-11-19 14:54:43 -07:00
The Go programming language
Go to file
Robert Griesemer 5473103666 go spec: clarify semantics of range clause
This CL proposes some subtle language changes
in an attempt to clarify the semantics of range
clauses and simplify uses of maps.

- nil maps behave like empty maps; but attempting
  to set a value in a nil map causes a run-time panic
- nil channels are never ready for communication;
  sending or reading from a nil channel blocks forever
- if there is only one index iteration variable in a
  range clause and len(range expression) would be a constant,
  the range expression is not evaluated.
  (was discrepancy with len/cap before)
- the notion of what is a constant expression len(x)
  for (pointer to) arrays x has been generalized and
  simplified (can still be syntactically decided)
  (before: more restrictive syntactic rule that was not
  consistently implemented)

Fixes #1713.

R=r, rsc, iant, ken2, r2, bradfitz, rog
CC=golang-dev
https://golang.org/cl/4444050
2011-05-12 09:15:59 -07:00
doc go spec: clarify semantics of range clause 2011-05-12 09:15:59 -07:00
include windows: replace remaining __MINGW32__ instances with _WIN32 2011-02-08 15:42:52 -05:00
lib codereview: fetch metadata using JSON API, not XML scraping 2011-05-11 23:26:52 -04:00
misc dashboard: fix for branches 2011-05-12 11:21:34 -04:00
src go/printer: more accurate comment for incomplete structs/interfaces 2011-05-12 09:01:50 -07:00
test gc: fix type switch error message for invalid cases. 2011-05-11 23:41:59 -04:00
.hgignore syscall: add Mmap, Munmap on Linux, FreeBSD, OS X 2011-04-06 17:52:02 -04:00
.hgtags tag release.r57.1 2011-05-04 00:26:20 -04:00
AUTHORS A+C: Vincent Vanackere (individual CLA) 2011-04-21 10:09:53 -04:00
CONTRIBUTORS CONTRIBUTORS: add Johan Euphrosine (Google CLA) 2011-05-12 11:21:00 -04:00
favicon.ico
LICENSE LICENSE: separate, change PATENTS text 2010-12-06 16:31:59 -05:00
PATENTS LICENSE: separate, change PATENTS text 2010-12-06 16:31:59 -05:00
README build: update, streamline documentation for new $GOBIN 2010-08-24 20:00:50 -04:00
robots.txt godoc: serve robots.txt raw 2011-02-19 05:46:20 +11:00

This is the source code repository for the Go programming language.  

For documentation about how to install and use Go,
visit http://golang.org/ or load doc/install.html in your web browser.

After installing Go, you can view a nicely formatted
doc/install.html by running godoc --http=:6060
and then visiting http://localhost:6060/doc/install.html.

Unless otherwise noted, the Go source files are distributed
under the BSD-style license found in the LICENSE file.

--

Binary Distribution Notes

If you have just untarred a binary Go distribution, you need to set
the environment variable $GOROOT to the full path of the go
directory (the one containing this README).  You can omit the
variable if you unpack it into /usr/local/go, or if you rebuild
from sources by running all.bash (see doc/install.html).
You should also add the Go binary directory $GOROOT/bin
to your shell's path.

For example, if you extracted the tar file into $HOME/go, you might
put the following in your .profile:

    export GOROOT=$HOME/go
    export PATH=$PATH:$GOROOT/bin

See doc/install.html for more details.