A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
, -=
, etc., assignment operator +=
, 1.2
-=
, etc., assignment operator +=
, , 1.2
|
in template, 4.6
.
in template, dot , 4.6
:=
short variable declaration, 1.2, 2.3.1, 2.7
&
, address-of operator, 1.8, 2.3.2, 2.3.2, 2.3.2, 4.3, 6.2, 6.5
&^
, AND-NOT operator, 3.1
...
array length, 4.1
`
backquote character, 3.5.1
&^
, bit-clear operator, 3.1
^
, bitwise complement operator, 3.1
|
, bitwise OR operator, 6.5, 6.5
_
, blank identifier, 1.2, 2.4.1, 4.3, 5.1, 5.3, 10.5
//
comment, 1.2
//
comment, 1.8
==
, comparison operator, 2.5, 3.4
--
, decrement statement, 1.2, 2.4
, etc., assignment operator +=
, -=
, 1.2
^
, exclusive OR operator, 3.1
*
, indirection operator, 1.8, 2.3.2
<<
, left shift operator, 3.1
!
, negation operator, 3.4
// Output
comment, 11.6
...
parameter, 4.2.1, 5.7, 5.7, 7.1
'
quote character, 3.1
%
, remainder operator, 3.1, 6.5
>>
, right shift operator, 3.1
&&
, short-circuit AND operator, 3.4
||
, short-circuit OR operator, 3.4
-
, unary operator, 3.1
, Unicode replacement character , 3.5.3, 4.3
+=
, -=
, etc., assignment operator, 1.2
+
, string concatenation operator, 1.2, 3.5
+
, unary operator, 3.1
++
, increment statement, 1.2, 2.4, 4.3
+build
comments, 10.7.3
A
Abstract Syntax Notation One (ASN.1), 4.5
abstraction, premature, 7.15, 11.2.5, 11.2.5
ad hoc polymorphism, 7.13
address of local variable, 2.3.2, 2.3.4
address of struct literal, 4.4.1
addressable expression, 6.2, 12.5
addressable value, 2.3.2
address-of operator &
, 1.8, 2.3.2, 2.3.2, 2.3.2, 4.3, 6.2, 6.5
Alef programming language, Preface
algorithm, breadth-first search, 5.6, 8.6
algorithm, depth-first search, 5.6
algorithm, Fibonacci, 2.4.1, 8.1
algorithm, GCD, 2.4.1
algorithm, insertion sort, 4.4
algorithm, Lissajous, 1.4
algorithm, slice rotation, 4.2
algorithm, topological sort, 5.6
aliasing, pointer, 2.3.2
alignment, 13.1
allocation, heap, 2.3.4
allocation, memory, 2.3.4, 2.3.4, 3.5.4, 4.2.1, 6.6, 7.12, 11.4
allocation, stack, 2.3.4
anchor element, HTML, 5.2
AND operator &&
, short-circuit, 3.4
AND-NOT operator &^
, 3.1
animation, GIF, 1.4
anonymous function, 1.7, 5.6, 5.6, 8.5
anonymous function, defer
, 5.8
anonymous function, recursive, 5.6
anonymous struct field, 4.4.3, 4.4.3, 4.4.3, 6.3
API, package, 10.1, 10.7.4, 11.2.3, 12.3, 12.9
API, runtime, 11.5
API, SQL, 7.13
API, system call, 7.8
API, template
, 4.6
API, token-based decoder, 7.14, 7.14, 12.6
APL programming language, Preface
append
built-in function, 4.2.1, 4.2.1, 4.2.1
appendInt
example, 4.2.1
argument, command-line, 1.2, 1.6, 2.3.2, 2.6.1, 7.4, 7.4, 10.7, 11.2.3
argument, function, 5.1
argument, slice, 4.2
arithmetic expression evaluator, 7.9
array comparison, 4.1
array length, ...
, 4.1
array type, 4.1
array, underlying, 4.2, 4.2, 4.2.1, 7.6
array zero value, 4.1
ASCII, 3.1, 3.5, 3.5.1, 3.5.2, 11.2
ASN.1 (Abstract Syntax Notation One), 4.5
assembly line, cake, 8.4.4
assertion function, 11.2.5
assertion, interface type, 7.12, 7.12
assertion, test, 11.2
assignability, 2.4.2, 2.4.2, 7.3
assignability, interface, 7.3
assignment, implicit, 2.4.2
assignment, multiple-value, 2.4.1
assignment operator +=
, -=
, etc., 1.2
assignment operators, 2.4, 3.1
assignment statement, 1.2, 1.2, 2.4, 3.1, 4.3, 7.1
assignment, tuple, 2.3.1, 2.4.1
associativity, operator, 3.1
atomic operation, 9.2
attack, HTML injection, 4.6
attack, SQL injection, 7.13
autoescape
example, 4.6
B
back-door, package, 11.2.4
back-off, exponential, 5.4.1
backquote character, `
, 3.5.1
bank
example package, 9.1, 9.1, 9.2
bare return, 5.3
basename
example, 3.5.4, 3.5.4
behavior, undefined, 9.1
Benchmark
function, 11.1, 11.4
bidirectional to unidirectional channel conversion, 8.4.3
binary operators, table of, 3.1
binary semaphore, 9.2
binary tree, 4.4
bit vector, 6.5
bit-clear operator &^
, 3.1
bit-set data type, 3.6.1
bitwise complement operator ^
, 3.1
bitwise operators, table of, 3.1
bitwise OR operator |
, 6.5, 6.5
black-box test, 11.2.3
blank identifier _
, 1.2, 2.4.1, 4.3, 5.1, 5.3, 10.5
blank import, 10.5
block, file, 2.7
block, lexical, 2.7, 5.1, 5.6, 5.6.1, 7.13
block, local, 2.7
block, package, 2.7
block, universe, 2.7
blocking profile, 11.5
boiling
example, 2.2
bool
type, 3.4
boolean constant, false
, 3.4
boolean constant, true
, 3.4
boolean zero value, 2.3
breadthFirst
function, 5.6
breadth-first search algorithm, 5.6, 8.6
break
statement, labeled, 8.8
brittle test, 11.2.6
Brooks, Fred, Preface
btoi
function, 3.4
bufio
package, 1.3
bufio.NewReader
function, 4.3
bufio.NewScanner
function, 1.3
(*bufio.Reader).ReadRune
method, 4.3, 4.3
bufio.Scanner
type, 1.3
(*bufio.Scanner).Err
method, 4.3
(*bufio.Scanner).Scan
method, 1.3
(*bufio.Scanner).Split
method, 4.3
bufio.ScanWords
function, 4.3
build constraints, 10.7.3
build tags, 10.7.3
building packages, 10.7.3
built-in function, append
, 4.2.1, 4.2.1, 4.2.1
built-in function, cap
, 4.2, 8.4.4
built-in function, close
, 8.4, 8.4.2, 8.9
built-in function, complex
, 3.3
built-in function, copy
, 4.2.1
built-in function, delete
, 4.3
built-in function, imag
, 3.3
built-in function, len
, 1.2, 3.1, 3.5, 3.5, 4.1, 4.2, 8.4.4
built-in function, make
, 1.3, 1.6, 4.2, 4.3, 8.4
built-in function, new
, 2.3.3
built-in function, panic
, 5.9, 5.9
built-in function, real
, 3.3
built-in function, recover
, 5.10
built-in interface, error
, 7.8, 7.8
built-in type, error
, 1.3, 5.4, 5.9, 7.8
byte slice to string conversion, 3.5.4
byte
type, 3.1
ByteCounter
example, 7.1
bytes.Buffer
type, 3.5.4, 6.6, 7.1, 7.5.1
(*bytes.Buffer).Grow
method, 6.6
(*bytes.Buffer).WriteByte
method, 3.5.4
(*bytes.Buffer).WriteRune
method, 3.5.4
(*bytes.Buffer).WriteString
method, 3.5.4
bytes.Equal
function, 4.2
bzip
C code, 13.4
bzip
example package, 13.4
bzipper
example, 13.4
C
C programming language, Preface, Preface, 1.1, 1.2, 3.1, 9.1, 13.4
C++ programming language, Preface, Preface, 13.4
cache, concurrent non-blocking, 9.7
cache, non-blocking, 9.7
cake assembly line, 8.4.4
call by reference, 4.1
call, interface method, 7.5
call, ok
value from function, 5.4
calling C from Go, 13.4
camel case, 2.1
cancellation of HTTP request, 8.9
cap
built-in function, 4.2, 8.4.4
capacity, channel, 8.4, 8.4.4, 8.4.4
capturing iteration variable, 5.6.1
capturing loop variable, 5.6.1, 8.5, 8.6
case
in type switch
, 7.13
case
, select
, 8.7
Celsius
type, 2.5
CelsiusFlag
function, 7.4
cf
example, 2.6.1
<-ch
, channel receive, 1.6, 8.4, 8.4.4
ch<-
, channel send, 1.6, 8.4, 8.4.4
chaining, method, 4.6
<-chan T
, receive-only channel type , 8.4.3
chan<- T
, send-only channel type , 8.4.3
chan
type, 8.4
channel capacity, 8.4, 8.4.4, 8.4.4
channel, closing a, 8.4
channel communication, 8.4, 8.7
channel comparison, 8.4
channel conversion, bidirectional to unidirectional, 8.4.3
channel, draining a, 8.4.2, 8.9
channel, polling, 8.7
channel, range
over, 8.4.2
channel receive <-ch
, 1.6, 8.4, 8.4.4
channel receive, non-blocking, 8.7
channel receive, ok
value from, 8.4.2
channel send ch<-
, 1.6, 8.4, 8.4.4
channel, synchronous, 8.4.1
channel type, 1.6
channel type <-chan T
, receive-only, 8.4.3
channel type chan<- T
, send-only, 8.4.3
channel type, unidirectional, 8.4.3, 8.4.3, 8.4.3
channel, unbuffered, 8.4, 8.4.1
character conversion, 3.5.4
character test, 3.5.4
charcount
example, 4.3
chat
example, 8.10
chat server, 8.10
CheckQuota
function, 11.2.3, 11.2.3
client, email, 11.2.3
client, SMTP, 11.2.3
clock server, concurrent, 8.2
close
built-in function, 8.4, 8.4.2, 8.9
closing a channel, 8.4
closure, lexical, 5.6
cmplx.Sqrt
function, 3.3
code format, 1.1, 1.2, 1.3, 2.7
code point, Unicode, 3.5.2
code, production, 11
ColoredPoint
example, 6.3
comma
example, 3.5.4
command, testing a, 11.2.2
command-line argument, 1.2, 1.6, 2.3.2, 2.6.1, 7.4, 7.4, 10.7, 11.2.3
comment, //
, 1.2
comment, //
, 1.8
comment, // Output
, 11.6
comments, +build
, 10.7.3
communicating sequential processes (CSP), Preface, 8
communication, channel, 8.4, 8.7
comparability, 1.3, 2.4.2, 2.5, 3.1, 4.2, 4.3, 4.3, 4.4.2
comparison, array, 4.1
comparison, channel, 8.4
comparison, function, 5.5
comparison, interface, 7.5
comparison, map, 4.3
comparison operator ==
, 2.5, 3.4
comparison operators, 2.5, 4.3
comparison operators, table of, 3.1
comparison, slice, 4.2
comparison, string, 3.5
comparison, struct, 4.4.2
compilation, separate, 10.1
complement operator ^
, bitwise, 3.1
complex
built-in function, 3.3
complex
type, 3.3
composite literal, 1.4
composite type, Preface, 1.4, 4
composition, parallel, 8.3
composition, type, Preface, 4.4.3, 6.3, 7.6
compress/bzip2
package, 13.4
compression, 13.4
conceptual integrity, Preface
concrete type, 1.8, 7.1, 7.13, 7.14
concurrency, excessive, 8.6, 8.6
concurrency safe, 9.7
concurrency safety, 8.10, 9.1, 9.7, 13.4
concurrency with shared variables, 9
concurrent clock server, 8.2
concurrent directory traversal, 8.8
concurrent echo server, 8.3
concurrent non-blocking cache, 9.7
concurrent web crawler, 8.6
confinement, serial, 9.1
confinement, variable, 9.1
consistency, sequential, 9.4, 9.5
constant, false
boolean, 3.4
constant generator, iota
, Preface, 3.6.1
constant, time.Minute
, 3.6
constant, time.Second
, 6.4
constant, true
boolean, 3.4
constant types, untyped, 3.6.2
constants, precision of, 3.6.2
constraints, build, 10.7.3
context switch, 9.8.2
continue
statement, labeled, 8.8
contracts, interfaces as, 7.1
control flow, 2.7
conversion, bidirectional to unidirectional channel, 8.4.3
conversion, byte slice to string, 3.5.4
conversion, character, 3.5.4
conversion, implicit, 3.6.2
conversion, narrowing, 2.5, 3.1
conversion, numeric, 3.6.2
conversion operation, 2.5, 3.1, 3.1, 3.1, 3.4, 3.5.3, 3.6.2, 3.6.2, 7.1, 7.6, 7.7, 7.12, 8.4.3, 13, 13.2
conversion, rune slice to string, 3.5.3
conversion, rune to string, 3.5.3
conversion, string, 3.5.4
conversion, string to byte slice, 2.5, 3.5.4
conversion, string to rune slice, 3.5.3, 4.2.1
conversion, unsafe.Pointer
, 13.2
copy
built-in function, 4.2.1
countdown
example, 8.7, 8.7, 8.7, 8.7
counting semaphore, 8.6
coverage, statement, 11.3, 11.3
coverage, test, 11.3
coverage_test
example, 11.3
CPU profile, 11.5
crawl
example, 8.6, 8.6, 8.6, 8.6
crawler, concurrent web, 8.6
crawler, web, 5
critical section, 9.2, 9.5, 9.7
cross-compilation, 10.7.3
cryptography, 3.1, 4.1, 5.2, 11.5
crypto/sha256
package, 4.1
customSort
example, 7.6
cyclic data structure, 12.3
cyclic test dependency, 11.2.4
D
data structure, cyclic, 12.3
data structure, recursive, 4.4, 4.4, 4.5
data type, bit-set, 3.6.1
database driver, MySQL, 10.2
database/sql
package, 7.13, 10.5
daysAgo
function, 4.6
declaration, func
, 1.1, 2.2, 5.1
declaration, import
, 1.1, 2.2, 2.6.1, 10.2, 10.4, 13.4
declaration, package
, 1.1, 2.2, 2.6, 10.3
declaration, package-level, 2.2
declaration, shadowing, 2.7, 2.7, 7.10, 7.13
declaration, short variable, 1.2, 1.2, 2.3.1, 2.3.1
declaration statement, short variable, 1.2
declaration, struct
, 4.4
declaration, type
, 2.5
declarations, order of, 2.7
decode example, S-expression, 12.6
decoder API, token-based, 7.14, 7.14, 12.6
decoding, S-expression, 12.6
decoding, XML, 7.14
decrement statement --
, 1.2, 2.4
dedup
example, 4.3
deep equivalence, 4.2, 11.2.5, 13.3
default
case in select
, 8.7
default
case in switch
, 1.8
default
case in type switch
, 7.13
defer
anonymous function, 5.8
defer
statement, 5.8, 5.9, 9.2
deferred function call, 5.8
delete
built-in function, 4.3
depth-first search algorithm, 5.6
dereference, implicit, 6.2
diagram, helloworld
substring, 3.5.3
diagram, pipeline, 8.4.2
diagram, slice capacity growth, 4.2.1
diagram, slice of months, 4.2
diagram, string sharing, 3.5
diagram, struct hole, 13.1
diagram, thumbnail
sequence, 8.5
digital artifact example, 7.3
Dijkstra, Edsger, 11.3
Dilbert, 4.4
directed acyclic graph, 5.6, 10.1
directory traversal, concurrent, 8.8
discriminated union, 7.13, 7.13, 7.14
display
example, 12.3
Display
function, 12.3
display
function, 12.3
displaying methods of a type, 12.8
Distance
function, 6.1
doc.go
doc comment file, 2.6, 10.7.4
documentation, package, 10.7.4
domain name, import path, 10.2
dot .
in template, 4.6
downloading packages, 10.7.2
Dr. Strangelove, 12.3
draining a channel, 8.4.2, 8.9
duplicate suppression, 9.7
dynamic dispatch, 7.5
dynamic type, interface, 7.5
E
echo
example, 1.2, 1.2, 2.3.2, 11.2.2
echo server, concurrent, 8.3
echo
test, 11.2.2
echo_test.go
, 11.2.2
effective tests, writing, 11.2.5, 11.2.6
email client, 11.2.3
embarrassingly parallel, 8.5
embedded struct field, 6.3
embedding, interface, 7.2
Employee
struct, 4.4
empty select
statement, 8.7
empty interface type, 7.3
empty struct, 4.4
encoding, S-expression, 12.4, 12.4
encoding/json
package, 4.5
encoding/xml
package, 4.5, 7.14
end of file (EOF), 5.4.2
enum, 3.6.1
environment variable, GOARCH
, 10.7.1, 10.7.3
environment variable, GOMAXPROCS
, 9.8.3, 11.4
environment variable, GOOS
, 10.7.1, 10.7.3
environment variable, GOPATH
, Preface, 10.7.1, 10.7.3
environment variable, GOROOT
, 10.7.1
equality, pointer, 2.3.2
equivalence, deep, 4.2, 11.2.5, 13.3
error
built-in interface, 7.8, 7.8
error
built-in type, 1.3, 5.4, 5.9, 7.8
error.Error
method, 7.8
errorf
function, 5.7
error-handling strategies, 5.4.1, 5.10, 11.2.2, 11.2.5
errors
package, 7.8
errors.New
function, 7.8
escape, hexadecimal, 3.5.1
escape, HTML, 4.6
escape, octal, 3.5.1
escape sequence, 1.3
escape sequences, table of, 3.5.1
escape, URL, 4.5
escaping variables, 2.3.4
event multiplexing, 8.7
example, appendInt
, 4.2.1
example, autoescape
, 4.6
example, basename
, 3.5.4, 3.5.4
example, boiling
, 2.2
example, ByteCounter
, 7.1
example, bzipper
, 13.4
example, cf
, 2.6.1
example, charcount
, 4.3
example, chat
, 8.10
example, ColoredPoint
, 6.3
example, comma
, 3.5.4
example, countdown
, 8.7, 8.7, 8.7, 8.7
example, coverage_test
, 11.3
example, crawl
, 8.6, 8.6, 8.6, 8.6
example, customSort
, 7.6
example, dedup
, 4.3
example, digital artifact, 7.3
example, display
, 12.3
example, echo
, 1.2, 1.2, 2.3.2, 11.2.2
example, fetchall
, 1.6
example, findlinks
, 5.2, 5.3, 5.6
example, ftoc
, 2.2
example, graph
, 4.3
example, http
, 7.7, 7.7, 7.7, 7.7
example, issues
, 4.5
example, issueshtml
, 4.6
example, issuesreport
, 4.6
example, jpeg
, 10.5
example, lissajous
, 1.4, 1.7, 2.3.4
example, mandelbrot
, 3.3
example, memo
, 9.7, 9.7, 9.7, 9.7, 9.7, 9.7
example, methods
, 12.8
example, netcat
, 8.2, 8.3, 8.4.1
example, netflag
, 3.6.1
example, nonempty
, 4.2.2
example package, bank
, 9.1, 9.1, 9.2
example package, bzip
, 13.4
example package, format
, 12.2
example package, geometry
, 6.1
example package, http
, 7.7
example package, links
, 5.6
example package, memo
, 9.7
example package, params
, 12.7
example package, storage
, 11.2.3, 11.2.3
example package, tempconv
, 2.6
example package, thumbnail
, 8.5
example, palindrome, 11.2, 11.2, 11.2.1
example, params
, 12.7
example, Parse
, 5.10
example, pipeline
, 8.4.2, 8.4.2, 8.4.3
example, playlist, 7.6
example, rev
, 4.2
example, server
, 1.7, 1.7, 1.7
example, sexpr
, 12.4
example, S-expression decode, 12.6
example, sha256
, 4.1
example, sleep
, 7.4
example, spinner
, 8.1
example, squares
, 5.6
example, sum
, 5.7
example, tempconv
, 2.5, 7.4, 10.6
example, temperature conversion, 2.2
example, tempflag
, 7.4
example, test of word
, 11.2
example, thumbnail
, 8.5, 8.5, 8.5
example, title
, 5.10
example, topoSort
, 5.6
example, trace
, 5.8
example, treesort
, 4.4
example, urlvalues
, 6.2.1
example, wait
, 5.4.1
example, word
, 11.2, 11.2, 11.2.1
example, xmlselect
, 7.14
excessive concurrency, 8.6, 8.6
exclusion, mutual, 9.1, 9.2, 9.4
exclusive OR operator ^
, 3.1
exponential back-off, 5.4.1
export of struct field, 4.4, 4.4.3, 4.5, 4.5, 6.6
export_test.go
file, 11.2.4
Expr.Check
method, 7.9
expression, addressable, 6.2, 12.5
expression evaluator, 7.9
expression, method, 6.4
expression, receive, 8.4
Expr.Eval
method, 7.9
extending a slice, 4.2
Extensible Markup Language (XML), 4.5
external test package, 10.3, 11.2.4
F
Fahrenheit
type, 2.5
failure message, test, 11.2
fallthrough
statement, 1.8, 7.13
false
boolean constant, 3.4
fetchall
example, 1.6
Fibonacci algorithm, 2.4.1, 8.1
field, anonymous struct, 4.4.3, 4.4.3, 4.4.3, 6.3
field, embedded struct, 6.3
field, export of struct, 4.4, 4.4.3, 4.5, 4.5, 6.6
field order, struct, 4.4, 13.1
field selector, 6.1
field tag, omitempty
, 4.5
figure, Lissajous, 1.4
figure, Mandelbrot, 3.3
figure, three-D surface, 3.2, 7.9
file block, 2.7
file, export_test.go
, 11.2.4
file name, Microsoft Windows, 3.5.4
file name, POSIX, 3.5.4
file, _test.go
, 10.3, 11.1, 11.2
File Transfer Protocol (FTP), 8.2
findlinks
example, 5.2, 5.3, 5.6
fixed-size stack, 5.2
flag, go list -f
, 11.2.4
flag, go -race
, 9.6
flag, go test -race
, 9.7
flag, go test -run
, 11.2
flag, go test -v
, 11.2
flag, go tool -bench
, 11.4
flag, go tool -benchmem
, 11.4
flag, go tool -covermode
, 11.3
flag, go tool -coverprofile
, 11.3
flag, go tool -cpuprofile
, 11.5
flag, go tool -nodecount
, 11.5
flag, go tool -text
, 11.5
flag, go tool -web
, 11.5
flag, godoc -analysis
, 7.3
flag.Args
function, 2.3.2
flag.Bool
function, 2.3.2
flag.Duration
function, 7.4
flag.Parse
function, 2.3.2
flag.String
function, 2.3.2
flag.Value
interface, 7.4, 7.4
floating-point number, 3.2
floating-point precision, 3.2, 3.2, 3.3, 3.6.2
floating-point truncation, 2.5, 3.1
fmt
package, 1.1
fmt.Errorf
function, 5.4.1, 7.8
fmt.Fprintf
function, 7.1
fmt.Printf
function, 1.3
fmt.Println
function, 1.1
fmt.Scanf
function, 3.5.5
fmt.Sscanf
function, 7.4
fmt.Stringer
interface, 7.4, 7.12
for
scope, 2.7
for
statement, 1.2
forEachNode
function, 5.5
foreign-function interface (FFI), 13.4
format, code, 1.1, 1.2, 1.3, 2.7
format
example package, 12.2
formatAtom
function, 12.2
framework, web, 7.7
ftoc
example, 2.2
func
declaration, 1.1, 2.2, 5.1
function, anonymous, 1.7, 5.6, 5.6, 8.5
function, append
built-in, 4.2.1, 4.2.1, 4.2.1
function argument, 5.1
function, assertion, 11.2.5
function, Benchmark
, 11.1, 11.4
function body, missing, 5.1
function, breadthFirst
, 5.6
function, btoi
, 3.4
function, bufio.NewReader
, 4.3
function, bufio.NewScanner
, 1.3
function, bufio.ScanWords
, 4.3
function, bytes.Equal
, 4.2
function call, deferred, 5.8
function call, ok
value from, 5.4
function, cap
built-in, 4.2, 8.4.4
function, CelsiusFlag
, 7.4
function, CheckQuota
, 11.2.3, 11.2.3
function, close
built-in, 8.4, 8.4.2, 8.9
function, cmplx.Sqrt
, 3.3
function comparison, 5.5
function, complex
built-in, 3.3
function, copy
built-in, 4.2.1
function, daysAgo
, 4.6
function, delete
built-in, 4.3
function, Display
, 12.3
function, display
, 12.3
function, Distance
, 6.1
function, errorf
, 5.7
function, errors.New
, 7.8
function, flag.Args
, 2.3.2
function, flag.Bool
, 2.3.2
function, flag.Duration
, 7.4
function, flag.Parse
, 2.3.2
function, flag.String
, 2.3.2
function, fmt.Errorf
, 5.4.1, 7.8
function, fmt.Fprintf
, 7.1
function, fmt.Printf
, 1.3
function, fmt.Println
, 1.1
function, fmt.Scanf
, 3.5.5
function, fmt.Sscanf
, 7.4
function, forEachNode
, 5.5
function, formatAtom
, 12.2
function, gcd
, 2.4.1
function, handler, 1.7, 1.7, 5.10, 7.7, 7.7, 7.7, 12.7
function, html.Parse
, 5.2, 5.3
function, http.DefaultServeMux
, 7.7
function, http.Error
, 7.7
function, http.Handle
, 7.7
function, http.HandleFunc
, 1.7, 1.7, 7.7
function, http.ListenAndServe
, 1.7, 7.7
function, http.NewRequest
, 8.9
function, http.ServeMux
, 7.7
function, hypot
, 5.1
function, imag
built-in, 3.3
function, image.Decode
, 10.5
function, image.RegisterFormat
, 10.5
function, incr
, 2.3.2
function, intsToString
, 3.5.4
function, ioutil.ReadAll
, 1.5, 9.7
function, ioutil.ReadDir
, 8.8
function, ioutil.ReadFile
, 1.3, 5.8
function, io.WriteString
, 7.12
function, itob
, 3.4
function, json.Marshal
, 4.5
function, json.MarshalIndent
, 4.5
function, json.NewDecoder
, 4.5
function, json.NewEncoder
, 4.5
function, json.Unmarshal
, 4.5, 4.6
function, len
built-in, 1.2, 3.1, 3.5, 3.5, 4.1, 4.2, 8.4.4
function, links.Extract
, 5.6
function literal, 1.7, 5.6, 8.4.1
function, log.Fatalf
, 2.7, 5.4.1
function, make
built-in, 1.3, 1.6, 4.2, 4.3, 8.4
function, math.Hypot
, 6.1
function, math.Inf
, 3.2
function, math.IsInf
, 3.2
function, math.IsNaN
, 3.2
function, math.NaN
, 3.2
function, multi-valued, 1.3, 2.3, 2.4.1, 4.3, 5.3, 5.3
function, mustCopy
, 8.2
function, net.Dial
, 8.2
function, net.Listen
, 8.2
function, new
built-in, 2.3.3
function, nil, 5.5
function, os.Close
, 1.3
function, os.Exit
, 1.5, 2.3.2, 2.7
function, os.Getwd
, 2.7
function, os.IsExist
, 7.11
function, os.IsNotExist
, 7.11
function, os.IsPermission
, 7.11
function, os.Open
, 1.3
function, os.Stat
, 8.8
function, panic
built-in, 5.9, 5.9
function parameter, 5.1
function, params.Unpack
, 12.7
function, png.Encode
, 3.3
function, PopCount
, 2.6.2
function, real
built-in, 3.3
function, recover
built-in, 5.10
function, recursive anonymous, 5.6
function, reflect.TypeOf
, 12.2
function, reflect.ValueOf
, 12.2, 12.2, 12.3
function, reflect.Zero
, 12.6
function, regexp.Compile
, 5.9
function, regexp.MustCompile
, 5.9
function result list, 5.1
function, runtime.Stack
, 5.9
function, SearchIssues
, 4.5
function, sexpr.Marshal
, 12.4
function, sexpr.readList
, 12.6
function, sexpr.Unmarshal
, 12.6
function signature, 5.1
function, sort.Float64s
, 7.6
function, sort.Ints
, 7.6
function, sort.IntsAreSorted
, 7.6
function, sort.Reverse
, 7.6
function, sort.Strings
, 4.3, 5.6, 7.6
function, Sprint
, 12.1
function, sqlQuote
, 7.13, 7.13
function, strconv.Atoi
, 1.7, 3.5.5
function, strconv.FormatInt
, 3.5.5
function, strconv.Itoa
, 3.5.5
function, strconv.ParseInt
, 3.5.5
function, strconv.ParseUint
, 3.5.5
function, strings.Contains
, 3.5.3
function, strings.HasPrefix
, 3.5.3
function, strings.HasSuffix
, 3.5.3
function, strings.Index
, 10.6
function, strings.Join
, 1.2, 1.3
function, strings.Map
, 5.5
function, strings.NewReader
, 10.6
function, strings.NewReplacer
, 10.6
function, strings.Split
, 1.3
function, strings.ToLower
, 3.5.4
function, strings.ToUpper
, 3.5.4
function, template.Must
, 4.6
function, template.New
, 4.6
function, Test
, 11.1
function, time.After
, 8.7
function, time.AfterFunc
, 6.4
function, time.Now
, 8.2
function, time.Parse
, 8.2
function, time.Since
, 4.6
function, unicode.IsDigit
, 3.5.4
function, unicode.IsLetter
, 3.5.4
function, unicode.IsLower
, 3.5.4
function, unicode.IsSpace
, 4.2.2
function, unicode.IsUpper
, 3.5.4
function, unsafe.AlignOf
, 13.1
function, unsafe.Offsetof
, 13.1
function, unsafe.Sizeof
, 13.1
function, url.QueryEscape
, 4.5
function, utf8.DecodeRuneInString
, 3.5.3
function, utf8.RuneCountInString
, 3.5.3
function value, 5.5
function, visit
, 5.2
function, WaitForServer
, 5.4.1
function, walkDir
, 8.8
function zero value, 5.5
G
garbage collection, Preface, Preface, 1.2, 2.3.4, 8.4.2, 13, 13.2
garbage collector, moving, 13.2
GCD algorithm, 2.4.1
gcd
function, 2.4.1
geometry
example package, 6.1
geometry.Point.Distance
method, 6.1
getter method, 6.6
GIF animation, 1.4
GitHub issue tracker, 4.5
go build
, 1.1, 10.4, 10.7.3, 10.7.3
go doc
, 10.7.4
go doc
tool, 1.8
go env
, 10.7.1
go get
, Preface, 1.1, 10.7.2, 10.7.2
go help
, 10.7
go install
, 10.7.3
go list -f
flag, 11.2.4
go -race
flag, 9.6
go test -race
flag, 9.7
go test -run
flag, 11.2
go test -v
flag, 11.2
go
tool, 1.1, 2.6.1, 2.6.2, 10.7
go tool -bench
flag, 11.4
go tool -benchmem
flag, 11.4
go tool cover
, 11.3, 11.3, 11.3
go tool -covermode
flag, 11.3
go tool -coverprofile
flag, 11.3
go tool -cpuprofile
flag, 11.5
go tool -nodecount
flag, 11.5
go tool pprof
, 11.5
go tool -text
flag, 11.5
go tool -web
flag, 11.5
GOARCH
environment variable, 10.7.1, 10.7.3
godoc -analysis
flag, 7.3
godoc
tool, Preface, 1.8, 10.7.4, 11.6
gofmt
tool, 1.1, 1.2, 2.6.1, 10.4
goimports
tool, 1.1, 2.6.1, 10.4
golang.org/x/net/html
package, 5.2
golint
tool, 10.7.2
GOMAXPROCS
environment variable, 9.8.3, 11.4
GOOS
environment variable, 10.7.1, 10.7.3
GOPATH
environment variable, Preface, 10.7.1, 10.7.3
gopl.io
repository, Preface
GOROOT
environment variable, 10.7.1
goroutine, 1.6, 8.1, 8.4.4, 8.5
goroutine identity, 9.8.4
goroutine leak, 8.4.4, 8.5, 8.7
goroutine multiplexing, 9.8.2
goroutine vs. OS thread, 9.8
goto
statement, 1.8
graph
example, 4.3
GraphViz, 11.5
Griesemer, Robert, Preface
growth, stack, 5.2, 9.8.1, 13.2
guarding mutex, 9.2
H
half-open interval, 1.2
handler function, 1.7, 1.7, 5.10, 7.7, 7.7, 7.7, 12.7
“happens before” relation, 8.4.1, 9.1, 9.1, 9.7
“has a” relationship, 6.3
Haskell programming language, Preface
heap allocation, 2.3.4
heap profile, 11.5
heap variable, 2.3.4
helloworld
substring diagram, 3.5.3
hexadecimal escape, 3.5.1
hexadecimal literal, 3.1
hidden pointer, 13.2
Hoare, Tony, Preface
hole, struct, 13.1
HTML anchor element, 5.2
HTML escape, 4.6
HTML injection attack, 4.6
HTML metacharacter, 4.6
HTML parser, 5.2
html/template
package, 4.6, 4.6
http
example, 7.7, 7.7, 7.7, 7.7
http
example package, 7.7
HTTP GET request, 1.7, 5.3, 9.7, 12.7
HTTP POST request, 12.7
HTTP request, cancellation of, 8.9
HTTP request multiplexer, 7.7
(*http.Client).Do
method, 8.9
http.DefaultClient
variable, 8.9
http.DefaultServeMux
function, 7.7
http.Error
function, 7.7
http.Handle
function, 7.7
http.HandleFunc
function, 1.7, 1.7, 7.7
http.Handler
interface, 7.7, 7.7
http.HandlerFunc
type, 7.7, 7.9
http.ListenAndServe
function, 1.7, 7.7
http.NewRequest
function, 8.9
(*http.Request).ParseForm
method, 1.7, 12.7
http.ResponseWriter
type, 1.7, 1.7, 7.7, 7.7
http.ServeMux
function, 7.7
hypot
function, 5.1
I
identifier _
, blank, 1.2, 2.4.1, 4.3, 5.1, 5.3, 10.5
identifier, qualified, 2.6, 2.6.1
identity, goroutine, 9.8.4
if
, initialization statement in, 1.7, 7.10
if-else
scope, 2.7
if-else
statement, 1.3, 1.7, 2.7
imag
built-in function, 3.3
image manipulation, 5.2
image/color
package, 1.4
image.Decode
function, 10.5
image/png
package, 10.5
image.RegisterFormat
function, 10.5
imaginary literal, 3.3
immutability, 9.1
immutability, string, 3.5, 3.5.4
implementation with slice, stack, 4.2.2, 7.14
implicit assignment, 2.4.2
implicit conversion, 3.6.2
implicit dereference, 6.2
import, blank, 10.5
import
declaration, 1.1, 2.2, 2.6.1, 10.2, 10.4, 13.4
import path domain name, 10.2
import, renaming, 10.4
incr
function, 2.3.2
increment statement ++
, 1.2, 2.4, 4.3
index operation, string, 3.5
indirection operator *
, 1.8, 2.3.2
infinite loop, 1.2, 5.1, 8.4.2
initialization, lazy, 9.5
initialization, package, 2.6.2
initialization statement in if
, 1.7, 7.10
initialization statement in switch
, 1.8
initializer list, 2.3
injection attack, HTML, 4.6
injection attack, SQL, 7.13
in-place slice techniques, 4.2.2
insertion sort algorithm, 4.4
int
type, 3.1
integer literal, 3.1
integration test, 11.2.4
interface assignability, 7.3
interface comparison, 7.5
interface dynamic type, 7.5
interface embedding, 7.2
interface, error
built-in, 7.8, 7.8
interface, flag.Value
, 7.4, 7.4
interface, fmt.Stringer
, 7.4, 7.12
interface, http.Handler
, 7.7, 7.7
interface, io.Closer
, 7.2
interface, io.Reader
, 7.2
interface, io.Writer
, 1.4, 1.7, 7.1, 7.2, 7.5.1, 7.12, 7.12, 11.2.2
interface, JSON, 4.5
interface method call, 7.5
interface, nil, 7.5
interface pitfall, 7.5.1
interface, ReadWriteCloser
, 7.2
interface, ReadWriter
, 7.2
interface satisfaction, 7, 7.3
interface, sort.Interface
, 7.6
interface{}
type, 5.7
interface{}
type, 7.3, 12.2, 12.2
interface type assertion, 7.12, 7.12
interface type, empty, 7.3
interface value, 7.5
interface with nil pointer, 7.5.1
interface zero value, 7.5
interfaces as contracts, 7.1
internal
package, 10.7.5
intsToString
function, 3.5.4
invariants, 6.2, 6.6, 6.6, 9.2, 10.1, 11.2.3, 12.9
io
package, 7.2
io.Closer
interface, 7.2
io.Discard
stream, 1.7
io.Discard
variable, 1.6
io.EOF
variable, 5.4.2
io.Reader
interface, 7.2
iota
constant generator, Preface, 3.6.1
ioutil.ReadAll
function, 1.5, 9.7
ioutil.ReadDir
function, 8.8
ioutil.ReadFile
function, 1.3, 5.8
io.Writer
interface, 1.4, 1.7, 7.1, 7.2, 7.5.1, 7.12, 7.12, 11.2.2
io.WriteString
function, 7.12
issue tracker, GitHub, 4.5
issues
example, 4.5
issueshtml
example, 4.6
issuesreport
example, 4.6
iteration order, map, 4.3
iteration variable, capturing, 5.6.1
itob
function, 3.4
J
Java programming language, Preface
JavaScript Object Notation (JSON), 4.5, 12.4
JavaScript programming language, Preface, 4.5
jpeg
example, 10.5
JSON interface, 4.5
JSON interface, Open Movie Database, 4.5
JSON interface, xkcd, 4.5
JSON, marshaling, 4.5
JSON, unmarshaling, 4.5
json.Decoder
type, 4.5
json.Encoder
type, 4.5
json.Marshal
function, 4.5
json.MarshalIndent
function, 4.5
json.NewDecoder
function, 4.5
json.NewEncoder
function, 4.5
json.Unmarshal
function, 4.5, 4.6
K
keyword, type
, 7.13
keywords, table of, 2.1
Knuth, Donald, 11.5
L
label scope, 2.7
label, statement, 2.7
labeled break
statement, 8.8
labeled continue
statement, 8.8
labeled statement, 2.7
layout, memory, 13, 13.1, 13.1
lazy initialization, 9.5
leak, goroutine, 8.4.4, 8.5, 8.7
left shift operator <<
, 3.1
len
built-in function, 1.2, 3.1, 3.5, 3.5, 4.1, 4.2, 8.4.4
lexical block, 2.7, 5.1, 5.6, 5.6.1, 7.13
lexical closure, 5.6
lifetime, variable, 2.3.4, 2.7, 5.6
links
example package, 5.6
links.Extract
function, 5.6
Lisp programming language, 12.4
Lissajous algorithm, 1.4
lissajous
example, 1.4, 1.7, 2.3.4
Lissajous figure, 1.4
list, initializer, 2.3
literal, composite, 1.4
literal, function, 1.7, 5.6, 8.4.1
literal, hexadecimal, 3.1
literal, imaginary, 3.3
literal, integer, 3.1
literal, map, 4.3
literal, octal, 3.1
literal, raw string, 3.5.1
literal, rune
, 3.1
literal, string, 3.5.1
literal, struct, 1.4, 4.4.1, 4.4.3
local block, 2.7
local variable, address of, 2.3.2, 2.3.4
local variable scope, 5.6
locating packages, 10.7.1
lock, exclusive, 9.2, 9.3, 9.5
lock, mutex, 4.4, 9.2, 9.2, 11.5
lock, non-reentrant, 9.2
lock, readers, 9.3
lock, shared, 9.3
lock, writer, 9.3
log.Fatalf
function, 2.7, 5.4.1
lookup m[key]
, map, 4.3
lookup, ok
value from map, 4.3
loop, infinite, 1.2, 5.1, 8.4.2
loop variable, capturing, 5.6.1, 8.5, 8.6
loop variable scope, 5.6.1, 8.5
loop, while, 1.2
M
main
, package, 1.1, 10.3, 11.2.2
make
built-in function, 1.3, 1.6, 4.2, 4.3, 8.4
mandelbrot
example, 3.3
Mandelbrot figure, 3.3
Mandelbrot set, 3.3
map comparison, 4.3
map element, nonexistent, 4.3, 4.3
map iteration order, 4.3
map literal, 4.3
map lookup m[key]
, 4.3
map lookup, ok
value from, 4.3
map, nil, 4.3
map, range
over, 4.3
map with slice key, 4.3
map zero value, 4.3
marshaling JSON, 4.5
math/big
package, 3.3
math/cmplx
package, 3.3
math.Hypot
function, 6.1
math.Inf
function, 3.2
math.IsInf
function, 3.2
math.IsNaN
function, 3.2
math.NaN
function, 3.2
math/rand
package, 10.3, 11.2.1
memo
example, 9.7, 9.7, 9.7, 9.7, 9.7, 9.7
memo
example package, 9.7
memoization, 9.7
memory allocation, 2.3.4, 2.3.4, 3.5.4, 4.2.1, 6.6, 7.12, 11.4
metacharacter, HTML, 4.6
method, (*bufio.Reader).ReadRune
, 4.3, 4.3
method, (*bufio.Scanner).Err
, 4.3
method, (*bufio.Scanner).Scan
, 1.3
method, (*bufio.Scanner).Split
, 4.3
method, (*bytes.Buffer).Grow
, 6.6
method, (*bytes.Buffer).WriteByte
, 3.5.4
method, (*bytes.Buffer).WriteRune
, 3.5.4
method, (*bytes.Buffer).WriteString
, 3.5.4
method call, interface, 7.5
method chaining, 4.6
method, error.Error
, 7.8
method, Expr.Check
, 7.9
method expression, 6.4
method, Expr.Eval
, 7.9
method, geometry.Point.Distance
, 6.1
method, getter, 6.6
method, (*http.Client).Do
, 8.9
method, (*http.Request).ParseForm
, 1.7, 12.7
method name, 6.1
method, net.Conn.Close
, 8.2
method, net.Listener.Accept
, 8.2
method, (*os.File).Write
, 7.5
method, path.Distance
, 6.1
method promotion, 6.3
method receiver name, 6.1
method receiver parameter, 6.1
method receiver type, 6.1
method, reflect.Type.Field
, 12.7
method, reflect.Value.Addr
, 12.5
method, reflect.Value.CanAddr
, 12.5
method, reflect.Value.Interface
, 12.2, 12.5
method, reflect.Value.Kind
, 12.2
method selector, 6.1
method, setter, 6.6
method, String
, 2.5, 6.5, 12.1
method, (*sync.Mutex).Lock
, 1.7, 5.8, 9.2
method, (*sync.Mutex).Unlock
, 1.7, 5.8, 9.2
method, (*sync.Once).Do
, 9.5
method, (*sync.RWMutex).RLock
, 9.3
method, (*sync.RWMutex).RUnlock
, 9.3
method, (*sync.WaitGroup).Add
, 8.5
method, (*sync.WaitGroup).Done
, 8.5
method, template.Funcs
, 4.6
method, template.Parse
, 4.6
method, (*testing.T).Errorf
, 7.9, 11.2, 11.2
method, (*testing.T).Fatal
, 11.2
method, time.Time.Format
, 8.2
method value, 6.4
method, (*xml.Decoder).Token
, 7.14
methods
example, 12.8
methods of a type, displaying, 12.8
Microsoft Windows file name, 3.5.4
missing function body, 5.1
m[key]
, map lookup, 4.3
mobile platforms, 5.2
Modula-2 programming language, Preface
modularity, 10.1
moving garbage collector, 13.2
multiple-value assignment, 2.4.1
multiplexer, HTTP request, 7.7
multiplexing, event, 8.7
multiplexing, goroutine, 9.8.2
multithreading, shared-memory, 8, 9
multi-valued function, 1.3, 2.3, 2.4.1, 4.3, 5.3, 5.3
mustCopy
function, 8.2
mutex, guarding, 9.2
mutex lock, 4.4, 9.2, 9.2, 11.5
mutual exclusion, 9.1, 9.2, 9.4
MySQL database driver, 10.2
N
name, method, 6.1
name, method receiver, 6.1
name, parameter, 5.1
named result zero value, 5.1, 5.3
named type, 1.8, 2.5, 2.5, 4.4.3, 6.1
naming convention, 2.1, 6.6, 7.2, 10.6
naming, package, 10.6
narrowing conversion, 2.5, 3.1
negation operator !
, 3.4
net
package, 8.2
netcat
example, 8.2, 8.3, 8.4.1
net.Conn
type, 8.2
net.Conn.Close
method, 8.2
net.Dial
function, 8.2
netflag
example, 3.6.1
net.Listen
function, 8.2
net.Listener
type, 8.2
net.Listener.Accept
method, 8.2
net/smtp
package, 11.2.3
net/url
package, 6.2.1
new
built-in function, 2.3.3
new
, redefining, 2.3.3
nil function, 5.5
nil interface, 7.5
nil map, 4.3
nil pointer, 2.3.2
nil pointer, interface with, 7.5.1
nil slice, 4.2
non-blocking cache, 9.7
non-blocking cache, concurrent, 9.7
non-blocking channel receive, 8.7
non-blocking select
, 8.7
nonempty
example, 4.2.2
nonexistent map element, 4.3, 4.3
non-reentrant lock, 9.2
non-standard package, 5.2
number, floating-point, 3.2
numeric conversion, 3.6.2
numeric type, 3.1
O
Oberon programming language, Preface
object, 6.1
object-oriented programming (OOP), 6, 6.6
octal escape, 3.5.1
octal literal, 3.1
ok
value, 2.4.1
ok
value from channel receive, 8.4.2
ok
value from function call, 5.4
ok
value from map lookup, 4.3
ok
value from type assertion, 7.10
omitempty
field tag, 4.5
Open Movie Database JSON interface, 4.5
operation, atomic, 9.2
operation, conversion, 2.5, 3.1, 3.1, 3.1, 3.4, 3.5.3, 3.6.2, 3.6.2, 7.1, 7.6, 7.7, 7.12, 8.4.3, 13, 13.2
operator &
, address-of, 1.8, 2.3.2, 2.3.2, 2.3.2, 4.3, 6.2, 6.5
operator &^
, AND-NOT, 3.1
operator &^
, bit-clear, 3.1
operator ^
, bitwise complement, 3.1
operator |
, bitwise OR, 6.5, 6.5
operator ==
, comparison, 2.5, 3.4
operator ^
, exclusive OR, 3.1
operator *
, indirection, 1.8, 2.3.2
operator <<
, left shift, 3.1
operator !
, negation, 3.4
operator %
, remainder, 3.1, 6.5
operator >>
, right shift, 3.1
operator &&
, short-circuit AND, 3.4
operator ||
, short-circuit OR, 3.4
operator -
, unary, 3.1
operator +=
, -=
, etc., assignment, 1.2
operator +
, string concatenation, 1.2, 3.5
operator +
, unary, 3.1
operator associativity, 3.1
operator s[i:j]
, slice, 4.2, 4.2
operator s[i:j]
, substring, 3.5, 4.2
operators, assignment, 2.4, 3.1
operators, comparison, 2.5, 4.3
operators, table of binary, 3.1
operators, table of bitwise, 3.1
operators, table of comparison, 3.1
optimization, premature, 11.5
OR operator ||
, short-circuit, 3.4
order of declarations, 2.7
order, struct field, 4.4, 13.1
organization, workspace, 10.7.1
OS thread vs. goroutine, 9.8
os.Args
variable, 1.2
os.Close
function, 1.3
os.Exit
function, 1.5, 2.3.2, 2.7
*os.File
type, 1.3, 1.3, 7.1, 7.3, 7.5.1, 12.3
os.FileInfo
type, 8.8
(*os.File).Write
method, 7.5
os.Getwd
function, 2.7
os.IsExist
function, 7.11
os.IsNotExist
function, 7.11
os.IsPermission
function, 7.11
os.LinkError
type, 7.11
os.Open
function, 1.3
os.PathError
type, 7.11
os.Stat
function, 8.8
overflow, stack, 5.2
P
package API, 10.1, 10.7.4, 11.2.3, 12.3, 12.9
package back-door, 11.2.4
package, bank
example, 9.1, 9.1, 9.2
package block, 2.7
package, bufio
, 1.3
package, bzip
example, 13.4
package, compress/bzip2
, 13.4
package, crypto/sha256
, 4.1
package, database/sql
, 7.13, 10.5
package
declaration, 1.1, 2.2, 2.6, 10.3
package documentation, 10.7.4
package, encoding/json
, 4.5
package, encoding/xml
, 4.5, 7.14
package, errors
, 7.8
package, external test, 10.3, 11.2.4
package, fmt
, 1.1
package, format
example, 12.2
package, geometry
example, 6.1
package, golang.org/x/net/html
, 5.2
package, html/template
, 4.6, 4.6
package, http
example, 7.7
package, image/color
, 1.4
package, image/png
, 10.5
package initialization, 2.6.2
package, internal
, 10.7.5
package, io
, 7.2
package, links
example, 5.6
package main
, 1.1, 10.3, 11.2.2
package, math/big
, 3.3
package, math/cmplx
, 3.3
package, math/rand
, 10.3, 11.2.1
package, memo
example, 9.7
package naming, 10.6
package, net
, 8.2
package, net/smtp
, 11.2.3
package, net/url
, 6.2.1
package, non-standard, 5.2
package, params
example, 12.7
package, path
, 3.5.4
package, path/filepath
, 3.5.4
package, reflect
, 12.2
package, regexp
, 5.9
package, runtime
, 5.9
package, storage
example, 11.2.3, 11.2.3
package, strconv
, 1.7, 3.5.4, 3.5.5
package, strings
, 1.2, 3.5.4, 3.5.4, 10.6
package, tempconv
example, 2.6
package, text/scanner
, 12.6
package, text/tabwriter
, 7.6
package, text/template
, 4.6, 10.7.6
package, thumbnail
example, 8.5
package, time
, 1.6, 3.6.1, 7.5
package, unicode
, 3.5.4
package, unicode/utf8
, 3.5.3
package, unsafe
, 13
package-level declaration, 2.2
packages, building, 10.7.3
packages, downloading, 10.7.2
packages, locating, 10.7.1
packages, querying, 10.7.6
palindrome, 7.6
palindrome example, 11.2, 11.2, 11.2.1
panic
built-in function, 5.9, 5.9
paradoxical race, 9.4
parallel composition, 8.3
parallel, embarrassingly, 8.5
parallelism, 8
parameter, ...
, 4.2.1, 5.7, 5.7, 7.1
parameter, function, 5.1
parameter, method receiver, 6.1
parameter name, 5.1
parameter passing, 5.1
parameter, unused, 5.1
params
example, 12.7
params
example package, 12.7
params.Unpack
function, 12.7
parentheses, 1.2, 1.2, 1.3, 3.1, 3.4, 5.1, 5.8, 6.2, 10.4, 12.3, 12.6
Parse
example, 5.10
parser, HTML, 5.2
Pascal programming language, Preface
path
package, 3.5.4
path.Distance
method, 6.1
path/filepath
package, 3.5.4
Pike, Rob, Preface, Preface, Preface, 3.5.3, 4.5
pipeline, 8.4.2
pipeline diagram, 8.4.2
pipeline
example, 8.4.2, 8.4.2, 8.4.3
pitfall, interface, 7.5.1
pitfall, scope, 5.6.1
platforms, mobile, 5.2
playlist example, 7.6
png.Encode
function, 3.3
pointer aliasing, 2.3.2
pointer equality, 2.3.2
pointer, hidden, 13.2
pointer, nil, 2.3.2
pointer zero value, 2.3.2
polling channel, 8.7
polymorphism, ad hoc, 7.13
polymorphism, subtype, 7.13
PopCount
function, 2.6.2
Portable Network Graphics (PNG), 3.3
POSIX file name, 3.5.4
POSIX standard, Preface, 3.1, 3.5.4, 7.8
precedence, operator, 3.1, 3.4
precision, floating-point, 3.2, 3.2, 3.3, 3.6.2
precision, numeric, 3.1, 3.6.2
precision of constants, 3.6.2
predeclared names, table of, 2.1
premature abstraction, 7.15, 11.2.5, 11.2.5
premature optimization, 11.5
Printf %%
, 1.3
Printf
verbs, table of, 1.3
Printf %[n]
, 3.1
Printf %s
, 1.3
Printf %T
, 1.3
Printf %t
, 1.3
Printf %T
, 3.6.2
Printf %t
, 4.1
Printf %#x
, 3.1
Printf % x
, 3.5.3
Printf %x
, 4.1
production code, 11
profile, blocking, 11.5
profile, CPU, 11.5
profile, heap, 11.5
profiling, 11.5
programming language, Alef, Preface
programming language, APL, Preface
programming language, C, Preface, Preface, 1.1, 1.2, 3.1, 9.1, 13.4
programming language, C++, Preface, Preface, 13.4
programming language, Haskell, Preface
programming language, Java, Preface
programming language, JavaScript, Preface, 4.5
programming language, Lisp, 12.4
programming language, Modula-2, Preface
programming language, Oberon, Preface
programming language, Pascal, Preface
programming language, Python, Preface, 7.7
programming language, Ruby, Preface, 7.7
programming language, Scheme, Preface
programming language, Squeak, Newsqueak, Preface
promotion, method, 6.3
protocol buffers, 4.5
Python programming language, Preface, 7.7
Q
qualified identifier, 2.6, 2.6.1
querying packages, 10.7.6
quote character, '
, 3.1
R
race condition, 1.7, 9.1, 9.1, 9.1
race, paradoxical, 9.4
randomized testing, 11.2.1
range
over channel, 8.4.2
range
over map, 4.3
range
over string, 3.5.3, 4.2.1
{{range}}
template action, 4.6
raw string literal, 3.5.1
reachability, 2.3.4
read, stale, 9.4
readers lock, 9.3
ReadWriteCloser
interface, 7.2
ReadWriter
interface, 7.2
real
built-in function, 3.3
receive <-ch
, channel, 1.6, 8.4, 8.4.4
receive expression, 8.4
receive, non-blocking channel, 8.7
receive, ok
value from channel, 8.4.2
receive-only channel type <-chan T
, 8.4.3
receiver name, method, 6.1
receiver parameter, method, 6.1
receiver type, method, 6.1
recover
built-in function, 5.10
recursion, 5.2, 5.2, 8.8, 12.3, 12.4, 12.6, 13.3
recursive anonymous function, 5.6
recursive data structure, 4.4, 4.4, 4.5
recursive type, 2.7
redefining new
, 2.3.3
reference, call by, 4.1
reference identity, 4.2
reference type, 1.3, 1.3, 4.3, 5.1
reflect
package, 12.2
reflect.StructTag
type, 12.7
reflect.Type
type, 12.2
reflect.Type.Field
method, 12.7
reflect.TypeOf
function, 12.2
reflect.Value
type, 12.2, 12.5
reflect.Value
zero value, 12.2
reflect.Value.Addr
method, 12.5
reflect.Value.CanAddr
method, 12.5
reflect.Value.Interface
method, 12.2, 12.5
reflect.Value.Kind
method, 12.2
reflect.ValueOf
function, 12.2, 12.2, 12.3
reflect.Zero
function, 12.6
regexp
package, 5.9
regexp.Compile
function, 5.9
regexp.MustCompile
function, 5.9
regular expression, 3.5.1, 5.9, 5.9, 11.2, 11.4
relation, “happens before”, 8.4.1, 9.1, 9.1, 9.7
relationship, “has a”, 6.3
relationship, “is a”, 6.3, 7.3
remainder operator %
, 3.1, 6.5
renaming import, 10.4
rendezvous, 8.4.4
replacement character , Unicode, 3.5.3, 4.3
repository, gopl.io
, Preface
request, HTTP GET, 1.7, 5.3, 9.7, 12.7
request, HTTP POST, 12.7
request multiplexer, HTTP, 7.7
result list, function, 5.1
return, bare, 5.3
return
statement, 2.2, 5.1, 5.3
rev
example, 4.2
right shift operator >>
, 3.1
Ruby programming language, Preface, 7.7
rune
literal, 3.1
rune slice to string conversion, 3.5.3
rune to string conversion, 3.5.3
runtime API, 11.5
runtime
package, 5.9
runtime scheduler, 9.8.2
runtime.Stack
function, 5.9
S
satisfaction, interface, 7, 7.3
Scalable Vector Graphics (SVG), 3.2
scheduler, runtime, 9.8.2
Scheme programming language, Preface
scope, for
, 2.7
scope, if-else
, 2.7
scope, label, 2.7
scope, local variable, 5.6
scope, loop variable, 5.6.1, 8.5
scope pitfall, 5.6.1
scope, short variable declaration, 1.7, 2.7
scope, switch
, 2.7
search algorithm, breadth-first, 5.6, 8.6
search algorithm, depth-first, 5.6
SearchIssues
function, 4.5
select
statement, empty , 8.7
select
case
, 8.7
select
, default
case in, 8.7
select
, non-blocking, 8.7
select{}
statement, 8.7
selective recovery, 5.10
selector, field, 6.1
selector, method, 6.1
semaphore, binary, 9.2
semaphore, counting, 8.6
send ch<-
, channel, 1.6, 8.4, 8.4.4
send statement, 8.4
send-only channel type chan<- T
, 8.4.3
separate compilation, 10.1
sequence diagram, thumbnail
, 8.5
sequential consistency, 9.4, 9.5
serial confinement, 9.1
server, chat, 8.10
server, concurrent clock, 8.2
server, concurrent echo, 8.3
setter method, 6.6
sexpr
example, 12.4
S-expression decode example, 12.6
S-expression decoding, 12.6
S-expression encoding, 12.4, 12.4
sexpr.Marshal
function, 12.4
sexpr.readList
function, 12.6
sexpr.Unmarshal
function, 12.6
sha256
example, 4.1
SHA256 message digest, 4.1
shadowing declaration, 2.7, 2.7, 7.10, 7.13
shared lock, 9.3
shared variables, 9
shared variables, concurrency with, 9
shared-memory multithreading, 8, 9
shift operator <<
, left, 3.1
shift operator >>
, right, 3.1
short variable declaration, 1.2, 1.2, 2.3.1, 2.3.1
short variable declaration scope, 1.7, 2.7
short variable declaration statement, 1.2
short-circuit AND operator &&
, 3.4
short-circuit evaluation, 3.4
short-circuit OR operator ||
, 3.4
signature, function, 5.1
s[i:j]
, slice operator, 4.2, 4.2
s[i:j]
, substring operator, 3.5, 4.2
Sizeof
table, 13.1
sleep
example, 7.4
slice, 1.2
slice argument, 4.2
slice capacity growth diagram, 4.2.1
slice comparison, 4.2
slice, extending a, 4.2
slice key, map with, 4.3
slice, nil, 4.2
slice of months diagram, 4.2
slice operator s[i:j]
, 4.2, 4.2
slice rotation algorithm, 4.2
slice techniques, in-place, 4.2.2
slice type, 4.2
slice used as stack, 5.2
slice, zero length, 4.2
SMTP client, 11.2.3
socket, TCP, 8.2
socket, UDP, 8.2
socket, Unix domain, 8.2
sort algorithm, topological, 5.6
sort.Float64s
function, 7.6
sort.Interface
interface, 7.6
sort.Ints
function, 7.6
sort.IntsAreSorted
function, 7.6
sort.IntSlice
type, 7.6
sort.Reverse
function, 7.6
sort.Strings
function, 4.3, 5.6, 7.6
spinner
example, 8.1
Sprint
function, 12.1
SQL API, 7.13
SQL injection attack, 7.13
squares
example, 5.6
Squeak, Newsqueak programming language, Preface
stack allocation, 2.3.4
stack, fixed-size, 5.2
stack growth, 5.2, 9.8.1, 13.2
stack implementation with slice, 4.2.2, 7.14
stack overflow, 5.2
stack, slice used as, 5.2
stack variable, 2.3.4
stack, variable-size, 5.2
stale read, 9.4
standard, POSIX, Preface, 3.1, 3.5.4, 7.8
standard, Unicode, 1.1, 2.1, 3.1, 3.5.1, 3.5.2, 3.5.3, 3.5.3, 4.3
statement --
, decrement, 1.2, 2.4
statement ++
, increment, 1.2, 2.4, 4.3
statement, assignment, 1.2, 1.2, 2.4, 3.1, 4.3, 7.1
statement coverage, 11.3, 11.3
statement, defer
, 5.8, 5.9, 9.2
statement, fallthrough
, 1.8, 7.13
statement, for
, 1.2
statement, goto
, 1.8
statement, if-else
, 1.3, 1.7, 2.7
statement label, 2.7
statement, labeled, 2.7
statement, return
, 2.2, 5.1, 5.3
statement, select{}
, 8.7
statement, send, 8.4
statement, short variable declaration, 1.2
statement, tagless switch
, 1.8
statement, type switch
, 7.13, 7.13, 7.14, 12.1
statement, unreachable, 5.1
storage
example package, 11.2.3, 11.2.3
Strangelove, Dr., 12.3
strategies, error-handling, 5.4.1, 5.10, 11.2.2, 11.2.5
strconv
package, 1.7, 3.5.4, 3.5.5
strconv.Atoi
function, 1.7, 3.5.5
strconv.FormatInt
function, 3.5.5
strconv.Itoa
function, 3.5.5
strconv.ParseInt
function, 3.5.5
strconv.ParseUint
function, 3.5.5
stream, io.Discard
, 1.7
string comparison, 3.5
string concatenation operator +
, 1.2, 3.5
string conversion, 3.5.4
string immutability, 3.5, 3.5.4
string index operation, 3.5
string literal, 3.5.1
string literal, raw, 3.5.1
string, range
over, 3.5.3, 4.2.1
string sharing diagram, 3.5
string test, 3.5.4
string to byte slice conversion, 2.5, 3.5.4
string to rune slice conversion, 3.5.3, 4.2.1
string zero value, 1.2, 1.2, 2.3
strings
package, 1.2, 3.5.4, 3.5.4, 10.6
strings.Contains
function, 3.5.3
strings.HasPrefix
function, 3.5.3
strings.HasSuffix
function, 3.5.3
strings.Index
function, 10.6
strings.Join
function, 1.2, 1.3
strings.Map
function, 5.5
strings.NewReader
function, 10.6
strings.NewReplacer
function, 10.6
strings.Reader
type, 10.6
strings.Replacer
type, 10.6
strings.Split
function, 1.3
strings.ToLower
function, 3.5.4
strings.ToUpper
function, 3.5.4
struct comparison, 4.4.2
struct
declaration, 4.4
struct, Employee
, 4.4
struct, empty, 4.4
struct field, anonymous, 4.4.3, 4.4.3, 4.4.3, 6.3
struct field, embedded, 6.3
struct field, export of, 4.4, 4.4.3, 4.5, 4.5, 6.6
struct hole, 13.1
struct hole diagram, 13.1
struct literal, 1.4, 4.4.1, 4.4.3
struct literal, address of, 4.4.1
struct, pointer to, 4.4, 4.4.1
struct{}
type, 8.4.1, 8.6, 8.8
struct type, unnamed, 6.3
struct zero value, 4.4
substitutability, 7.7
substring operator s[i:j]
, 3.5, 4.2
subtype polymorphism, 7.13
sum
example, 5.7
surface figure, three-D, 3.2, 7.9
SVG, 3.2
SWIG, 13.4
Swiss army knife, 10.7
switch
, case
in type , 7.13
switch, context, 9.8.2
switch
, default
case in, 1.8
switch
, default
case in type , 7.13
switch
, initialization statement in, 1.8
switch
scope, 2.7
switch
statement, tagless, 1.8
switch
statement, type, 7.13, 7.13, 7.14, 12.1
synchronous channel, 8.4.1
(*sync.Mutex).Lock
method, 1.7, 5.8, 9.2
(*sync.Mutex).Unlock
method, 1.7, 5.8, 9.2
sync.Once
type, 9.5
(*sync.Once).Do
method, 9.5
(*sync.RWMutex).RLock
method, 9.3
(*sync.RWMutex).RUnlock
method, 9.3
sync.WaitGroup
type, 8.5, 8.8, 9.7
(*sync.WaitGroup).Add
method, 8.5
(*sync.WaitGroup).Done
method, 8.5
system call API, 7.8
T
table of binary operators, 3.1
table of bitwise operators, 3.1
table of comparison operators, 3.1
table of escape sequences, 3.5.1
table of keywords, 2.1
table of predeclared names, 2.1
table of Printf
verbs, 1.3
table of UTF-8 encodings, 3.5.3
table, Sizeof
, 13.1
table-driven testing, 7.9, 11.2, 11.3
tagless switch
statement, 1.8
tags, build, 10.7.3
TCP socket, 8.2
techniques, in-place slice, 4.2.2
tempconv
example, 2.5, 7.4, 10.6
tempconv
example package, 2.6
temperature conversion example, 2.2
tempflag
example, 7.4
template, |
in, 4.6
template action, {{range}}
, 4.6
template
API, 4.6
template, dot .
in, 4.6
template.Funcs
method, 4.6
template.HTML
type, 4.6
template.Must
function, 4.6
template.New
function, 4.6
template.Parse
method, 4.6
test assertion, 11.2
test, black-box, 11.2.3
test, brittle, 11.2.6
test, character, 3.5.4
test coverage, 11.3
test dependency, cyclic, 11.2.4
test, echo
, 11.2.2
test failure message, 11.2
Test
function, 11.1
test, integration, 11.2.4
test of word
example, 11.2
test package, external, 10.3, 11.2.4
test, string, 3.5.4
test, white-box, 11.2.3
_test.go
file, 10.3, 11.1, 11.2
testing a command, 11.2.2
testing, randomized, 11.2.1
testing, table-driven, 7.9, 11.2, 11.3
testing.B
type, 11.4
testing.T
type, 11.2
(*testing.T).Errorf
method, 7.9, 11.2, 11.2
(*testing.T).Fatal
method, 11.2
tests, writing effective, 11.2.5, 11.2.6
text/scanner
package, 12.6
text/tabwriter
package, 7.6
text/template
package, 4.6, 10.7.6
thread-local storage, 9.8.4
three-D surface figure, 3.2, 7.9
thumbnail
example, 8.5, 8.5, 8.5
thumbnail
example package, 8.5
thumbnail
sequence diagram, 8.5
time.After
function, 8.7
time.AfterFunc
function, 6.4
time.Minute
constant, 3.6
time.Now
function, 8.2
time.Parse
function, 8.2
time.Second
constant, 6.4
time.Since
function, 4.6
time.Time
type, 4.6
time.Time.Format
method, 8.2
title
example, 5.10
token-based decoder API, 7.14, 7.14, 12.6
token-based XML decoding, 7.14
tool, go
, 1.1, 2.6.1, 2.6.2, 10.7
tool, go doc
, 1.8
tool, godoc
, Preface, 1.8, 10.7.4, 11.6
tool, gofmt
, 1.1, 1.2, 2.6.1, 10.4
tool, goimports
, 1.1, 2.6.1, 10.4
tool, golint
, 10.7.2
topological sort algorithm, 5.6
topoSort
example, 5.6
trace
example, 5.8
tree, binary, 4.4
treesort
example, 4.4
true
boolean constant, 3.4
truncation, floating-point, 2.5, 3.1
tuple assignment, 2.3.1, 2.4.1
type <-chan T
, receive-only channel, 8.4.3
type chan<- T
, send-only channel, 8.4.3
type switch
, case
in, 7.13
type switch
, default
case in, 7.13
type, array, 4.1
type assertion, interface, 7.12, 7.12
type assertion, ok
value from, 7.10
type, bool
, 3.4
type, bufio.Scanner
, 1.3
type, byte
, 3.1
type, bytes.Buffer
, 3.5.4, 6.6, 7.1, 7.5.1
type, Celsius
, 2.5
type, chan
, 8.4
type, channel, 1.6
type, complex
, 3.3
type, composite, Preface, 1.4, 4
type composition, Preface, 4.4.3, 6.3, 7.6
type, concrete, 1.8, 7.1, 7.13, 7.14
type
declaration, 2.5
type, displaying methods of a, 12.8
type, empty interface, 7.3
type, error
built-in, 1.3, 5.4, 5.9, 7.8
type, Fahrenheit
, 2.5
type, http.HandlerFunc
, 7.7, 7.9
type, http.ResponseWriter
, 1.7, 1.7, 7.7, 7.7
type, int
, 3.1
type, interface{}
, 5.7
type, interface{}
, 7.3, 12.2, 12.2
type, interface dynamic, 7.5
type, json.Decoder
, 4.5
type, json.Encoder
, 4.5
type
keyword, 7.13
type, method receiver, 6.1
type mismatch, 3.1
type, named, 1.8, 2.5, 2.5, 4.4.3, 6.1
type, net.Conn
, 8.2
type, net.Listener
, 8.2
type, numeric, 3.1
type, *os.File
, 1.3, 1.3, 7.1, 7.3, 7.5.1, 12.3
type, os.FileInfo
, 8.8
type, os.LinkError
, 7.11
type, os.PathError
, 7.11
type, recursive, 2.7
type, reference, 1.3, 1.3, 4.3, 5.1
type, reflect.StructTag
, 12.7
type, reflect.Type
, 12.2
type, reflect.Value
, 12.2, 12.5
type, slice, 4.2
type, sort.IntSlice
, 7.6
type, strings.Reader
, 10.6
type, strings.Replacer
, 10.6
type, struct{}
, 8.4.1, 8.6, 8.8
type switch
statement, 7.13, 7.13, 7.14, 12.1
type, sync.Once
, 9.5
type, sync.WaitGroup
, 8.5, 8.8, 9.7
type, template.HTML
, 4.6
type, testing.B
, 11.4
type, testing.T
, 11.2
type, time.Time
, 4.6
type, uint
, 3.1
type, uintptr
, 3.1, 13.1, 13.2
type, underlying, 2.5
type, unidirectional channel, 8.4.3, 8.4.3, 8.4.3
type, unnamed struct, 6.3
type, unsafe.Pointer
, 13.2
type, url.URL
, 7.7
types, untyped constant, 3.6.2
U
UDP socket, 8.2
uint
type, 3.1
unary operator -
, 3.1
unary operator +
, 3.1
unbuffered channel, 8.4, 8.4.1
undefined behavior, 9.1
underlying array, 4.2, 4.2, 4.2.1, 7.6
underlying type, 2.5
Unicode code point, 3.5.2
unicode
package, 3.5.4
Unicode replacement character , 3.5.3, 4.3
Unicode standard, 1.1, 2.1, 3.1, 3.5.1, 3.5.2, 3.5.3, 3.5.3, 4.3
unicode.IsDigit
function, 3.5.4
unicode.IsLetter
function, 3.5.4
unicode.IsLower
function, 3.5.4
unicode.IsSpace
function, 4.2.2
unicode.IsUpper
function, 3.5.4
unicode/utf8
package, 3.5.3
unidirectional channel type, 8.4.3, 8.4.3, 8.4.3
union, discriminated, 7.13, 7.13, 7.14
universe block, 2.7
Unix domain socket, 8.2
unmarshaling JSON, 4.5
unnamed struct type, 6.3
unreachable statement, 5.1
unsafe
package, 13
unsafe.AlignOf
function, 13.1
unsafe.Offsetof
function, 13.1
unsafe.Pointer
conversion, 13.2
unsafe.Pointer
type, 13.2
unsafe.Pointer
zero value, 13.2
unsafe.Sizeof
function, 13.1
untyped constant types, 3.6.2
unused parameter, 5.1
URL, 5.2
URL escape, 4.5
url.QueryEscape
function, 4.5
url.URL
type, 7.7
urlvalues
example, 6.2.1
UTF-8 encodings, table of, 3.5.3
utf8.DecodeRuneInString
function, 3.5.3
utf8.RuneCountInString
function, 3.5.3
utf8.UTFMax
value, 4.3
V
value, addressable, 2.3.2
value, function, 5.5
value, interface, 7.5
value, method, 6.4
value, utf8.UTFMax
, 4.3
variable confinement, 9.1
variable, heap, 2.3.4
variable, http.DefaultClient
, 8.9
variable, io.Discard
, 1.6
variable, io.EOF
, 5.4.2
variable lifetime, 2.3.4, 2.7, 5.6
variable, os.Args
, 1.2
variable, stack, 2.3.4
variables, escaping, 2.3.4
variables, shared, 9
variable-size stack, 5.2
vector, bit, 6.5
vendoring, 10.7.2
visibility, 2.1, 2.2, 2.6, 6.6, 10.7.5
visit
function, 5.2
W
wait
example, 5.4.1
WaitForServer
function, 5.4.1
walkDir
function, 8.8
web crawler, 5
web crawler, concurrent, 8.6
web framework, 7.7
while loop, 1.2
white-box test, 11.2.3
Wilkes, Maurice, 11
Wirth, Niklaus, Preface
word
example, 11.2, 11.2, 11.2.1
word
example, test of, 11.2
workspace organization, 10.7.1
writer lock, 9.3
writing effective tests, 11.2.5, 11.2.6
X
xkcd JSON interface, 4.5
XML decoding, 7.14
XML (Extensible Markup Language), 4.5
(*xml.Decoder).Token
method, 7.14
xmlselect
example, 7.14
Y
Z
zero length slice, 4.2
zero value, array, 4.1
zero value, boolean, 2.3
zero value, function, 5.5
zero value, interface, 7.5
zero value, map, 4.3
zero value, named result, 5.1, 5.3
zero value, pointer, 2.3.2
zero value, reflect.Value
, 12.2
zero value, string, 1.2, 1.2, 2.3
zero value, struct, 4.4
zero value, unsafe.Pointer
, 13.2
54.198.37.250