Merge branch 'play'
This commit is contained in:
commit
77d43eebe7
@ -81,7 +81,10 @@ $ heroku open -r $DEPLOY
|
|||||||
|
|
||||||
### License
|
### License
|
||||||
|
|
||||||
This work is licensed under a
|
This work is copyright Mark McGranaghan and licensed under a
|
||||||
|
[Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/).
|
||||||
|
|
||||||
|
The Go Gopher is copyright the Go Authors and licensed under a
|
||||||
[Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/).
|
[Creative Commons Attribution 3.0 Unported License](http://creativecommons.org/licenses/by/3.0/).
|
||||||
|
|
||||||
|
|
||||||
|
2
examples/arrays/arrays.hash
Normal file
2
examples/arrays/arrays.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
305975d13d24223181d13f042b290906d86c1a0e
|
||||||
|
l-A8eBnwio
|
2
examples/atomic-counters/atomic-counters.hash
Normal file
2
examples/atomic-counters/atomic-counters.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
97f1f28e352163cb841fb26dc05dced9fa8efde5
|
||||||
|
sKIaNsJquU
|
2
examples/base64-encoding/base64-encoding.hash
Normal file
2
examples/base64-encoding/base64-encoding.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
e57f5be3a796261fb4a55cdb0580a254e14b4930
|
||||||
|
t6rFm2x4Yr
|
2
examples/channel-buffering/channel-buffering.hash
Normal file
2
examples/channel-buffering/channel-buffering.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
122140f7ad1bc5cff4fcd7a9e7245b87aaca3ec5
|
||||||
|
34PVHwO6Bn
|
2
examples/channel-directions/channel-directions.hash
Normal file
2
examples/channel-directions/channel-directions.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
635cc13dfe33123ac188e01e3002d3aa935d765f
|
||||||
|
P9Fujfpa1f
|
@ -0,0 +1,2 @@
|
|||||||
|
fe3e2ea1a67d0f95ce4cb18f3e8aa16d416de0ce
|
||||||
|
0DfW-1RMqi
|
2
examples/channels/channels.hash
Normal file
2
examples/channels/channels.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
be6689b44773c1f7a83d409d1e2f5ba7d6c7b006
|
||||||
|
aVTMoY5FNt
|
2
examples/closing-channels/closing-channels.hash
Normal file
2
examples/closing-channels/closing-channels.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
5205898a520533e46ea24c849848d19ebc2d08a9
|
||||||
|
eFZ2SeKswH
|
2
examples/closures/closures.hash
Normal file
2
examples/closures/closures.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
2e062d01989caada16c4b22ff6a35cd58e4eb819
|
||||||
|
gQtEWkhWyp
|
2
examples/collection-functions/collection-functions.hash
Normal file
2
examples/collection-functions/collection-functions.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ed54b3fc0512ccace0f3d0b74975c9bcd2e7a8a2
|
||||||
|
3PNdke3Wia
|
@ -0,0 +1,2 @@
|
|||||||
|
41c970a1ef29ad2a05307e6c783ff52ab80eaccd
|
||||||
|
44uyYt_TRl
|
2
examples/command-line-flags/command-line-flags.hash
Normal file
2
examples/command-line-flags/command-line-flags.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
a22c44511e84451cca813659f3803fb7ae48dab0
|
||||||
|
9xlvGqQjhl
|
2
examples/constants/constants.hash
Normal file
2
examples/constants/constants.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
3de4f16f1ed032378268411b2173b95e8000305d
|
||||||
|
T5sj0eINnp
|
2
examples/defer/defer.hash
Normal file
2
examples/defer/defer.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
570699fc50a1d39e9d0ad6a4461aef3248b080e1
|
||||||
|
9aoHwzHcAo
|
@ -0,0 +1,2 @@
|
|||||||
|
4d0832c5a1ddd4e95474791e8802c15452358214
|
||||||
|
kfqLhpmEpw
|
2
examples/epoch/epoch.hash
Normal file
2
examples/epoch/epoch.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
b56f9122928886ac695c15657c2ff5ec7c5436d9
|
||||||
|
3jXHvYbLUz
|
2
examples/errors/errors.hash
Normal file
2
examples/errors/errors.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
07cffb3d4e37162ab7e9e0a192561ddc8042b81a
|
||||||
|
BmDQXkPPTk
|
2
examples/execing-processes/execing-processes.hash
Normal file
2
examples/execing-processes/execing-processes.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
ae75526fdd970c450fa3ed52c70cf400a45d0770
|
||||||
|
iEAD2cYC-h
|
2
examples/exit/exit.hash
Normal file
2
examples/exit/exit.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
dc0bb3eaafa045d6aa05e88aff39322a1ccf822e
|
||||||
|
CDiAh9SXRM
|
2
examples/for/for.hash
Normal file
2
examples/for/for.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
e7dbd5f44ea79a3eb41e4535575197b9eadc0e03
|
||||||
|
mGqqcBZ0jv
|
2
examples/functions/functions.hash
Normal file
2
examples/functions/functions.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
19cac21e4a057e8335ce78a30de9a43c2b18d522
|
||||||
|
2EXoOWfGf_
|
2
examples/goroutines/goroutines.hash
Normal file
2
examples/goroutines/goroutines.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
5562eb9bebe9ed442e8fa6801fab86b00fd1d2ba
|
||||||
|
aIO_Wi3hJj
|
2
examples/hello-world/hello-world.hash
Normal file
2
examples/hello-world/hello-world.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
66ef79aa3cbc8789c141ce7031fb3f493e003aad
|
||||||
|
H8bxSpw9Jq
|
2
examples/if-else/if-else.hash
Normal file
2
examples/if-else/if-else.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
4187a4268be1cd85fdd6e9a211d1e4f534666ad6
|
||||||
|
p_ykufAYRj
|
2
examples/interfaces/interfaces.hash
Normal file
2
examples/interfaces/interfaces.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
853be73c5685a0510da77c22c64727afa7fb0581
|
||||||
|
vx8bwC-Bmq
|
@ -68,7 +68,7 @@ func main() {
|
|||||||
|
|
||||||
// Now let's look at decoding JSON data into Go
|
// Now let's look at decoding JSON data into Go
|
||||||
// values. Here's an example for a generic data
|
// values. Here's an example for a generic data
|
||||||
// structure.
|
// structure.
|
||||||
byt := []byte(`{"num":6.0,"strs":["a","b"]}`)
|
byt := []byte(`{"num":6.0,"strs":["a","b"]}`)
|
||||||
|
|
||||||
// We need to provide a variable where the JSON
|
// We need to provide a variable where the JSON
|
||||||
|
2
examples/json/json.hash
Normal file
2
examples/json/json.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
12f985bb444e2bd6d72ea52a24ebc5f4f82c5b9b
|
||||||
|
4L2wMVv7tW
|
2
examples/line-filters/line-filters.hash
Normal file
2
examples/line-filters/line-filters.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fe6d70a3115bd0974aa6f3f8444bb539d17fc027
|
||||||
|
OSS71nSpkV
|
2
examples/maps/maps.hash
Normal file
2
examples/maps/maps.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
572365c80895f32241032397bd69094886892d90
|
||||||
|
D-F9YN_V8r
|
2
examples/methods/methods.hash
Normal file
2
examples/methods/methods.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
24cfb9ad45e43c2d49163149bc55925a4e1b3c7a
|
||||||
|
254m_9Yjwa
|
@ -0,0 +1,2 @@
|
|||||||
|
9e0a75102d83565fefbf1893728b15633dc44a2c
|
||||||
|
LrDt1Wah0M
|
2
examples/mutexes/mutexes.hash
Normal file
2
examples/mutexes/mutexes.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
a42e6b574ab2c2bdd38df53d77b9a2f3f3e0b10c
|
||||||
|
-_LKNceBru
|
@ -0,0 +1,2 @@
|
|||||||
|
119ced4df4f79795b163483b6abfd855e76ef577
|
||||||
|
M972dltae2
|
2
examples/number-parsing/number-parsing.hash
Normal file
2
examples/number-parsing/number-parsing.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
0d2155e9863a73c098d44637e92403d7f5e8e965
|
||||||
|
N90EppECFk
|
2
examples/panic/panic.hash
Normal file
2
examples/panic/panic.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
91639bbcfcc6ed088295a9ee6b1c36ab35ae402a
|
||||||
|
c86oXzfQOt
|
2
examples/pointers/pointers.hash
Normal file
2
examples/pointers/pointers.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
85cff3345d2f22b65a5d54eb8f7aa8f508f27887
|
||||||
|
KdE4TBbUL2
|
2
examples/random-numbers/random-numbers.hash
Normal file
2
examples/random-numbers/random-numbers.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
62b0562c92dd84ecb9408df4c517031d75b1e337
|
||||||
|
C0_kuFx3ET
|
2
examples/range-over-channels/range-over-channels.hash
Normal file
2
examples/range-over-channels/range-over-channels.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
e415b1f2ae531b319bb9aca69b17e7b916511744
|
||||||
|
WN7NNh9tvh
|
2
examples/range/range.hash
Normal file
2
examples/range/range.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
e6458150862a6b26e95629ba6a90a6a3036d7d52
|
||||||
|
Ys3V-ohVRy
|
2
examples/rate-limiting/rate-limiting.hash
Normal file
2
examples/rate-limiting/rate-limiting.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
d74aebb12f618f22ec776eb5b4de92985104c197
|
||||||
|
e7yzIk97-p
|
@ -69,7 +69,7 @@ func main() {
|
|||||||
// The `bufio` package implements a buffered
|
// The `bufio` package implements a buffered
|
||||||
// reader that may be useful both for its efficiency
|
// reader that may be useful both for its efficiency
|
||||||
// with many small reads and because of the additional
|
// with many small reads and because of the additional
|
||||||
// reading methods it provides.
|
// reading methods it provides.
|
||||||
r4 := bufio.NewReader(f)
|
r4 := bufio.NewReader(f)
|
||||||
b4, err := r4.Peek(5)
|
b4, err := r4.Peek(5)
|
||||||
check(err)
|
check(err)
|
||||||
|
2
examples/reading-files/reading-files.hash
Normal file
2
examples/reading-files/reading-files.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
251ab050de24051bb7d9858940421fdec41fa674
|
||||||
|
VcLqpSwnkN
|
2
examples/recursion/recursion.hash
Normal file
2
examples/recursion/recursion.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
5d1ba6b03a50ccae2a0f46865eb72c587e11857c
|
||||||
|
RFn-rf42ap
|
2
examples/regular-expressions/regular-expressions.hash
Normal file
2
examples/regular-expressions/regular-expressions.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
0ebd0a44997fe20d3fa0caa8b5f2cfa96ff1db13
|
||||||
|
7bnr2EXlxK
|
2
examples/select/select.hash
Normal file
2
examples/select/select.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
572ae309be3d0fd9b029aeb908013b2914a36734
|
||||||
|
NGSkDrli6L
|
2
examples/sha1-hashes/sha1-hashes.hash
Normal file
2
examples/sha1-hashes/sha1-hashes.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
6a896270e34f2696b881a8fa7e68bfff57dee51f
|
||||||
|
YUaWWEeB4U
|
2
examples/signals/signals.hash
Normal file
2
examples/signals/signals.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
42ec8f6064228f89f97e2798150d741317d2bf05
|
||||||
|
d42wO1q1oh
|
@ -27,7 +27,7 @@ func main() {
|
|||||||
|
|
||||||
// In addition to these basic operations, slices
|
// In addition to these basic operations, slices
|
||||||
// support several more that make them richer than
|
// support several more that make them richer than
|
||||||
// arrays. One is the builtin `append`, which
|
// arrays. One is the builtin `append`, which
|
||||||
// returns a slice containing one or more new values.
|
// returns a slice containing one or more new values.
|
||||||
// Note that we need to accept a return value from
|
// Note that we need to accept a return value from
|
||||||
// append as we may get a new slice value.
|
// append as we may get a new slice value.
|
||||||
|
2
examples/slices/slices.hash
Normal file
2
examples/slices/slices.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
d900c3b1cf2bd96591f7ad7ce7fd9e592ec31139
|
||||||
|
dPQErsP6Yc
|
2
examples/sorting-by-functions/sorting-by-functions.hash
Normal file
2
examples/sorting-by-functions/sorting-by-functions.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
9b184444231f799b9388037d8142613a598e9345
|
||||||
|
M06NADP985
|
2
examples/sorting/sorting.hash
Normal file
2
examples/sorting/sorting.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
4e576421f2bdbd11847c367d223bd30d0e301990
|
||||||
|
roQOJXtqAb
|
2
examples/spawning-processes/spawning-processes.hash
Normal file
2
examples/spawning-processes/spawning-processes.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
4e31686ab1dac4fa0e3ce753a6af207c51b9b049
|
||||||
|
utd_H-XJtC
|
2
examples/stateful-goroutines/stateful-goroutines.hash
Normal file
2
examples/stateful-goroutines/stateful-goroutines.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
13c5072f2ccb7afb85b8c7ea9a97f94423aef8de
|
||||||
|
2YrrJo4H6W
|
2
examples/string-formatting/string-formatting.hash
Normal file
2
examples/string-formatting/string-formatting.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
fece72ed980c2ee55b3f1d5d8e8d83aed81dc814
|
||||||
|
qayRuqXHym
|
2
examples/string-functions/string-functions.hash
Normal file
2
examples/string-functions/string-functions.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
66fdf78c9be9a41e52bcf2e8b01ab95fa7753401
|
||||||
|
COXm374QWe
|
2
examples/structs/structs.hash
Normal file
2
examples/structs/structs.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
49cad39331ee5e9fb8d8dad99d3aff7f18a4e6d0
|
||||||
|
OMCP5KFC10
|
2
examples/switch/switch.hash
Normal file
2
examples/switch/switch.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
1040d0721b871f78f221a0e9e4a61ea3b0e6de70
|
||||||
|
8b5CajPcHn
|
2
examples/tickers/tickers.hash
Normal file
2
examples/tickers/tickers.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
39781500e9ccbd39282e2dce5cb8003715bfe78a
|
||||||
|
U0PO7ZZU3l
|
@ -0,0 +1,2 @@
|
|||||||
|
89dedeb30079f7f5f42202c249609c570563a1ae
|
||||||
|
JqNGqbuqF1
|
2
examples/time/time.hash
Normal file
2
examples/time/time.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
a5fb723728be749919194acf860f483a7c2329c7
|
||||||
|
NxuQTlVA2l
|
2
examples/timeouts/timeouts.hash
Normal file
2
examples/timeouts/timeouts.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
48dc2824c813ec9195866592e4bed211fa9a5098
|
||||||
|
CoBnJiRyx3
|
2
examples/timers/timers.hash
Normal file
2
examples/timers/timers.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
a5b44952d93152ba6bfdb100ea30cd8446cad47e
|
||||||
|
6fSHrYxpMu
|
@ -9,7 +9,7 @@ import "strings"
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
||||||
// We'll parse this example URL, which includes a
|
// We'll parse this example URL, which includes a
|
||||||
// scheme, authentication info, host, port, path,
|
// scheme, authentication info, host, port, path,
|
||||||
// query params, and query fragment.
|
// query params, and query fragment.
|
||||||
s := "postgres://user:pass@host.com:5432/path?k=v#f"
|
s := "postgres://user:pass@host.com:5432/path?k=v#f"
|
||||||
|
2
examples/url-parsing/url-parsing.hash
Normal file
2
examples/url-parsing/url-parsing.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
677974cc6b7ba9a63f6c7f2979fd46ef2a4202d7
|
||||||
|
eaMv0skOfY
|
2
examples/values/values.hash
Normal file
2
examples/values/values.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
c5a53c75cc57dc15ac4458285c9b139bf85c67bf
|
||||||
|
fgGVOyuZdu
|
2
examples/variables/variables.hash
Normal file
2
examples/variables/variables.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
8c74aae4850358073926dba5d98aa402f9968251
|
||||||
|
Zv45CSMaiD
|
2
examples/variadic-functions/variadic-functions.hash
Normal file
2
examples/variadic-functions/variadic-functions.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
25bcf8d28adf0587d1959e88f32786d7f21872b2
|
||||||
|
wRPLOM1VIH
|
2
examples/worker-pools/worker-pools.hash
Normal file
2
examples/worker-pools/worker-pools.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
9d5b1d008d278df7db7697d56d491d982da86e7d
|
||||||
|
y12QxBsKtT
|
2
examples/writing-files/writing-files.hash
Normal file
2
examples/writing-files/writing-files.hash
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
0853ca57176872e9b34b501855ceb8bf5fbdbf46
|
||||||
|
5usz1Oc-xY
|
@ -30,6 +30,7 @@ specific length.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -39,6 +40,7 @@ specific length.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/l-A8eBnwio"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -50,6 +52,7 @@ specific length.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -61,6 +64,7 @@ specific length.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -76,6 +80,7 @@ zero-valued, which for <code>int</code>s means <code>0</code>s.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">a</span> <span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="kt">int</span>
|
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">a</span> <span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="kt">int</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"emp:"</span><span class="p">,</span> <span class="nx">a</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"emp:"</span><span class="p">,</span> <span class="nx">a</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -91,6 +96,7 @@ zero-valued, which for <code>int</code>s means <code>0</code>s.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="p">=</span> <span class="mi">100</span>
|
<div class="highlight"><pre> <span class="nx">a</span><span class="p">[</span><span class="mi">4</span><span class="p">]</span> <span class="p">=</span> <span class="mi">100</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"set:"</span><span class="p">,</span> <span class="nx">a</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"set:"</span><span class="p">,</span> <span class="nx">a</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"get:"</span><span class="p">,</span> <span class="nx">a</span><span class="p">[</span><span class="mi">4</span><span class="p">])</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"get:"</span><span class="p">,</span> <span class="nx">a</span><span class="p">[</span><span class="mi">4</span><span class="p">])</span>
|
||||||
@ -105,6 +111,7 @@ zero-valued, which for <code>int</code>s means <code>0</code>s.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"len:"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="nx">a</span><span class="p">))</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"len:"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="nx">a</span><span class="p">))</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -118,6 +125,7 @@ in one line.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">b</span> <span class="o">:=</span> <span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">}</span>
|
<div class="highlight"><pre> <span class="nx">b</span> <span class="o">:=</span> <span class="p">[</span><span class="mi">5</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">}</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"dcl:"</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"dcl:"</span><span class="p">,</span> <span class="nx">b</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -133,6 +141,7 @@ structures.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">twoD</span> <span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">3</span><span class="p">]</span><span class="kt">int</span>
|
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">twoD</span> <span class="p">[</span><span class="mi">2</span><span class="p">][</span><span class="mi">3</span><span class="p">]</span><span class="kt">int</span>
|
||||||
<span class="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="p"><</span> <span class="mi">2</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="p"><</span> <span class="mi">2</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
||||||
<span class="k">for</span> <span class="nx">j</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">j</span> <span class="p"><</span> <span class="mi">3</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="nx">j</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">j</span> <span class="p"><</span> <span class="mi">3</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span> <span class="p">{</span>
|
||||||
@ -157,6 +166,7 @@ when printed with <code>fmt.Println</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run arrays.go
|
<div class="highlight"><pre><span class="gp">$</span> go run arrays.go
|
||||||
<span class="go">emp: [0 0 0 0 0]</span>
|
<span class="go">emp: [0 0 0 0 0]</span>
|
||||||
<span class="go">set: [0 0 0 0 100]</span>
|
<span class="go">set: [0 0 0 0 100]</span>
|
||||||
@ -176,6 +186,7 @@ typical Go. We’ll look at slices next.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -34,6 +34,7 @@ counters</em> accessed by multiple goroutines.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -43,6 +44,7 @@ counters</em> accessed by multiple goroutines.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/sKIaNsJquU"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -54,6 +56,7 @@ counters</em> accessed by multiple goroutines.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
<span class="kn">import</span> <span class="s">"time"</span>
|
<span class="kn">import</span> <span class="s">"time"</span>
|
||||||
<span class="kn">import</span> <span class="s">"sync/atomic"</span>
|
<span class="kn">import</span> <span class="s">"sync/atomic"</span>
|
||||||
@ -68,6 +71,7 @@ counters</em> accessed by multiple goroutines.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -81,6 +85,7 @@ counters</em> accessed by multiple goroutines.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">ops</span> <span class="kt">uint64</span> <span class="p">=</span> <span class="mi">0</span>
|
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">ops</span> <span class="kt">uint64</span> <span class="p">=</span> <span class="mi">0</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -95,6 +100,7 @@ once a millisecond.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="p"><</span> <span class="mi">50</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="p"><</span> <span class="mi">50</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
||||||
<span class="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span>
|
<span class="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span>
|
||||||
<span class="k">for</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="p">{</span>
|
||||||
@ -112,6 +118,7 @@ address of our <code>ops</code> counter with the
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">atomic</span><span class="p">.</span><span class="nx">AddUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">ops</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">atomic</span><span class="p">.</span><span class="nx">AddUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">ops</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -124,6 +131,7 @@ address of our <code>ops</code> counter with the
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">runtime</span><span class="p">.</span><span class="nx">Gosched</span><span class="p">()</span>
|
<div class="highlight"><pre> <span class="nx">runtime</span><span class="p">.</span><span class="nx">Gosched</span><span class="p">()</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
<span class="p">}()</span>
|
<span class="p">}()</span>
|
||||||
@ -139,6 +147,7 @@ address of our <code>ops</code> counter with the
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">time</span><span class="p">.</span><span class="nx">Sleep</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">time</span><span class="p">.</span><span class="nx">Sleep</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -156,6 +165,7 @@ fetch the value.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">opsFinal</span> <span class="o">:=</span> <span class="nx">atomic</span><span class="p">.</span><span class="nx">LoadUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">ops</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">opsFinal</span> <span class="o">:=</span> <span class="nx">atomic</span><span class="p">.</span><span class="nx">LoadUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">ops</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"ops:"</span><span class="p">,</span> <span class="nx">opsFinal</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"ops:"</span><span class="p">,</span> <span class="nx">opsFinal</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -175,6 +185,7 @@ fetch the value.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run atomic-counters.go
|
<div class="highlight"><pre><span class="gp">$</span> go run atomic-counters.go
|
||||||
<span class="go">ops: 40200</span>
|
<span class="go">ops: 40200</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -189,6 +200,7 @@ state.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -30,6 +30,7 @@ encoding/decoding</a>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -39,6 +40,7 @@ encoding/decoding</a>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/t6rFm2x4Yr"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -53,6 +55,7 @@ save us some space below.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="nx">b64</span> <span class="s">"encoding/base64"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="nx">b64</span> <span class="s">"encoding/base64"</span>
|
||||||
<span class="kn">import</span> <span class="s">"fmt"</span>
|
<span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -65,6 +68,7 @@ save us some space below.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -77,6 +81,7 @@ save us some space below.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">data</span> <span class="o">:=</span> <span class="s">"abc123!?$*&()'-=@~"</span>
|
<div class="highlight"><pre> <span class="nx">data</span> <span class="o">:=</span> <span class="s">"abc123!?$*&()'-=@~"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -92,6 +97,7 @@ cast our <code>string</code> to that type.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">sEnc</span> <span class="o">:=</span> <span class="nx">b64</span><span class="p">.</span><span class="nx">StdEncoding</span><span class="p">.</span><span class="nx">EncodeToString</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="nx">data</span><span class="p">))</span>
|
<div class="highlight"><pre> <span class="nx">sEnc</span> <span class="o">:=</span> <span class="nx">b64</span><span class="p">.</span><span class="nx">StdEncoding</span><span class="p">.</span><span class="nx">EncodeToString</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="nx">data</span><span class="p">))</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">sEnc</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">sEnc</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -107,6 +113,7 @@ well-formed.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">sDec</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">b64</span><span class="p">.</span><span class="nx">StdEncoding</span><span class="p">.</span><span class="nx">DecodeString</span><span class="p">(</span><span class="nx">sEnc</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">sDec</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">b64</span><span class="p">.</span><span class="nx">StdEncoding</span><span class="p">.</span><span class="nx">DecodeString</span><span class="p">(</span><span class="nx">sEnc</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">sDec</span><span class="p">))</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">sDec</span><span class="p">))</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">()</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">()</span>
|
||||||
@ -122,6 +129,7 @@ format.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">uEnc</span> <span class="o">:=</span> <span class="nx">b64</span><span class="p">.</span><span class="nx">URLEncoding</span><span class="p">.</span><span class="nx">EncodeToString</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="nx">data</span><span class="p">))</span>
|
<div class="highlight"><pre> <span class="nx">uEnc</span> <span class="o">:=</span> <span class="nx">b64</span><span class="p">.</span><span class="nx">URLEncoding</span><span class="p">.</span><span class="nx">EncodeToString</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="nx">data</span><span class="p">))</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">uEnc</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">uEnc</span><span class="p">)</span>
|
||||||
<span class="nx">uDec</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">b64</span><span class="p">.</span><span class="nx">URLEncoding</span><span class="p">.</span><span class="nx">DecodeString</span><span class="p">(</span><span class="nx">uEnc</span><span class="p">)</span>
|
<span class="nx">uDec</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">b64</span><span class="p">.</span><span class="nx">URLEncoding</span><span class="p">.</span><span class="nx">DecodeString</span><span class="p">(</span><span class="nx">uEnc</span><span class="p">)</span>
|
||||||
@ -144,6 +152,7 @@ but they both decode to the original string as desired.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run base64-encoding.go
|
<div class="highlight"><pre><span class="gp">$</span> go run base64-encoding.go
|
||||||
<span class="go">YWJjMTIzIT8kKiYoKSctPUB+</span>
|
<span class="go">YWJjMTIzIT8kKiYoKSctPUB+</span>
|
||||||
<span class="go">abc123!?$*&()'-=@~</span>
|
<span class="go">abc123!?$*&()'-=@~</span>
|
||||||
@ -157,6 +166,7 @@ but they both decode to the original string as desired.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="go">YWJjMTIzIT8kKiYoKSctPUB-</span>
|
<div class="highlight"><pre><span class="go">YWJjMTIzIT8kKiYoKSctPUB-</span>
|
||||||
<span class="go">abc123!?$*&()'-=@~</span>
|
<span class="go">abc123!?$*&()'-=@~</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
@ -34,6 +34,7 @@ those values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -43,6 +44,7 @@ those values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/34PVHwO6Bn"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -54,6 +56,7 @@ those values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -65,6 +68,7 @@ those values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -78,6 +82,7 @@ those values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">messages</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">string</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">messages</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">string</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -92,6 +97,7 @@ concurrent receive.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">messages</span> <span class="o"><-</span> <span class="s">"buffered"</span>
|
<div class="highlight"><pre> <span class="nx">messages</span> <span class="o"><-</span> <span class="s">"buffered"</span>
|
||||||
<span class="nx">messages</span> <span class="o"><-</span> <span class="s">"channel"</span>
|
<span class="nx">messages</span> <span class="o"><-</span> <span class="s">"channel"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -105,6 +111,7 @@ concurrent receive.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="o"><-</span><span class="nx">messages</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="o"><-</span><span class="nx">messages</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="o"><-</span><span class="nx">messages</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="o"><-</span><span class="nx">messages</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -122,6 +129,7 @@ concurrent receive.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run channel-buffering.go
|
<div class="highlight"><pre><span class="gp">$</span> go run channel-buffering.go
|
||||||
<span class="go">buffered</span>
|
<span class="go">buffered</span>
|
||||||
<span class="go">channel</span>
|
<span class="go">channel</span>
|
||||||
|
@ -32,6 +32,7 @@ the program.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -41,6 +42,7 @@ the program.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/P9Fujfpa1f"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -52,6 +54,7 @@ the program.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -66,6 +69,7 @@ receive on this channel.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">ping</span><span class="p">(</span><span class="nx">pings</span> <span class="kd">chan</span><span class="o"><-</span> <span class="kt">string</span><span class="p">,</span> <span class="nx">msg</span> <span class="kt">string</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">ping</span><span class="p">(</span><span class="nx">pings</span> <span class="kd">chan</span><span class="o"><-</span> <span class="kt">string</span><span class="p">,</span> <span class="nx">msg</span> <span class="kt">string</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="nx">pings</span> <span class="o"><-</span> <span class="nx">msg</span>
|
<span class="nx">pings</span> <span class="o"><-</span> <span class="nx">msg</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -81,6 +85,7 @@ receive on this channel.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">pong</span><span class="p">(</span><span class="nx">pings</span> <span class="o"><-</span><span class="kd">chan</span> <span class="kt">string</span><span class="p">,</span> <span class="nx">pongs</span> <span class="kd">chan</span><span class="o"><-</span> <span class="kt">string</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">pong</span><span class="p">(</span><span class="nx">pings</span> <span class="o"><-</span><span class="kd">chan</span> <span class="kt">string</span><span class="p">,</span> <span class="nx">pongs</span> <span class="kd">chan</span><span class="o"><-</span> <span class="kt">string</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="nx">msg</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">pings</span>
|
<span class="nx">msg</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">pings</span>
|
||||||
<span class="nx">pongs</span> <span class="o"><-</span> <span class="nx">msg</span>
|
<span class="nx">pongs</span> <span class="o"><-</span> <span class="nx">msg</span>
|
||||||
@ -95,6 +100,7 @@ receive on this channel.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
<span class="nx">pings</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">string</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
<span class="nx">pings</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">string</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||||||
<span class="nx">pongs</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">string</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
<span class="nx">pongs</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">string</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||||||
@ -116,6 +122,7 @@ receive on this channel.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run channel-directions.go
|
<div class="highlight"><pre><span class="gp">$</span> go run channel-directions.go
|
||||||
<span class="go">passed message</span>
|
<span class="go">passed message</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
@ -31,6 +31,7 @@ blocking receive to wait for a goroutine to finish.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -40,6 +41,7 @@ blocking receive to wait for a goroutine to finish.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/0DfW-1RMqi"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -51,6 +53,7 @@ blocking receive to wait for a goroutine to finish.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
<span class="kn">import</span> <span class="s">"time"</span>
|
<span class="kn">import</span> <span class="s">"time"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -66,6 +69,7 @@ goroutine that this function’s work is done.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">worker</span><span class="p">(</span><span class="nx">done</span> <span class="kd">chan</span> <span class="kt">bool</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">worker</span><span class="p">(</span><span class="nx">done</span> <span class="kd">chan</span> <span class="kt">bool</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="s">"working..."</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="s">"working..."</span><span class="p">)</span>
|
||||||
<span class="nx">time</span><span class="p">.</span><span class="nx">Sleep</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
<span class="nx">time</span><span class="p">.</span><span class="nx">Sleep</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||||
@ -81,6 +85,7 @@ goroutine that this function’s work is done.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">done</span> <span class="o"><-</span> <span class="kc">true</span>
|
<div class="highlight"><pre> <span class="nx">done</span> <span class="o"><-</span> <span class="kc">true</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -93,6 +98,7 @@ goroutine that this function’s work is done.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -106,6 +112,7 @@ notify on.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">done</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">bool</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">done</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">bool</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||||||
<span class="k">go</span> <span class="nx">worker</span><span class="p">(</span><span class="nx">done</span><span class="p">)</span>
|
<span class="k">go</span> <span class="nx">worker</span><span class="p">(</span><span class="nx">done</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -120,6 +127,7 @@ worker on the channel.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="o"><-</span><span class="nx">done</span>
|
<div class="highlight"><pre> <span class="o"><-</span><span class="nx">done</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -136,6 +144,7 @@ worker on the channel.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run channel-synchronization.go
|
<div class="highlight"><pre><span class="gp">$</span> go run channel-synchronization.go
|
||||||
<span class="go">working...done </span>
|
<span class="go">working...done </span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -151,6 +160,7 @@ started.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -33,6 +33,7 @@ underly much of Go’s functionality.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -42,6 +43,7 @@ underly much of Go’s functionality.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/aVTMoY5FNt"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -53,6 +55,7 @@ underly much of Go’s functionality.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -64,6 +67,7 @@ underly much of Go’s functionality.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -77,6 +81,7 @@ Channels are typed by the values they convey.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">messages</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">string</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">messages</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">string</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -91,6 +96,7 @@ channel we made above, from a new goroutine.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span> <span class="nx">messages</span> <span class="o"><-</span> <span class="s">"ping"</span> <span class="p">}()</span>
|
<div class="highlight"><pre> <span class="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span> <span class="nx">messages</span> <span class="o"><-</span> <span class="s">"ping"</span> <span class="p">}()</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -105,6 +111,7 @@ we sent above and print it out.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">msg</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">messages</span>
|
<div class="highlight"><pre> <span class="nx">msg</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">messages</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">msg</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">msg</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -125,6 +132,7 @@ channel.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run channels.go
|
<div class="highlight"><pre><span class="gp">$</span> go run channels.go
|
||||||
<span class="go">ping</span>
|
<span class="go">ping</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -141,6 +149,7 @@ message without having to use any other synchronization.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -31,6 +31,7 @@ completion to the channel’s receivers.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -40,6 +41,7 @@ completion to the channel’s receivers.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/eFZ2SeKswH"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -51,6 +53,7 @@ completion to the channel’s receivers.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -66,6 +69,7 @@ the worker we’ll <code>close</code> the <code>jobs</code> channel.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
<span class="nx">jobs</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">int</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
|
<span class="nx">jobs</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">int</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
|
||||||
<span class="nx">done</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">bool</span><span class="p">)</span>
|
<span class="nx">done</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="kt">bool</span><span class="p">)</span>
|
||||||
@ -86,6 +90,7 @@ all our jobs.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span>
|
||||||
<span class="k">for</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="p">{</span>
|
||||||
<span class="nx">j</span><span class="p">,</span> <span class="nx">more</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">jobs</span>
|
<span class="nx">j</span><span class="p">,</span> <span class="nx">more</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">jobs</span>
|
||||||
@ -110,6 +115,7 @@ channel, then closes it.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">j</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">j</span> <span class="o"><=</span> <span class="mi">3</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">j</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">j</span> <span class="o"><=</span> <span class="mi">3</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span> <span class="p">{</span>
|
||||||
<span class="nx">jobs</span> <span class="o"><-</span> <span class="nx">j</span>
|
<span class="nx">jobs</span> <span class="o"><-</span> <span class="nx">j</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"sent job"</span><span class="p">,</span> <span class="nx">j</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"sent job"</span><span class="p">,</span> <span class="nx">j</span><span class="p">)</span>
|
||||||
@ -129,6 +135,7 @@ we saw earlier.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="o"><-</span><span class="nx">done</span>
|
<div class="highlight"><pre> <span class="o"><-</span><span class="nx">done</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -145,6 +152,7 @@ we saw earlier.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run closing-channels.go
|
<div class="highlight"><pre><span class="gp">$</span> go run closing-channels.go
|
||||||
<span class="go">sent job 1</span>
|
<span class="go">sent job 1</span>
|
||||||
<span class="go">received job 1</span>
|
<span class="go">received job 1</span>
|
||||||
@ -166,6 +174,7 @@ example: <code>range</code> over channels.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -32,6 +32,7 @@ a function inline without having to name it.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -41,6 +42,7 @@ a function inline without having to name it.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/gQtEWkhWyp"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -52,6 +54,7 @@ a function inline without having to name it.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -67,6 +70,7 @@ form a closure.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">intSeq</span><span class="p">()</span> <span class="kd">func</span><span class="p">()</span> <span class="kt">int</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">intSeq</span><span class="p">()</span> <span class="kd">func</span><span class="p">()</span> <span class="kt">int</span> <span class="p">{</span>
|
||||||
<span class="nx">i</span> <span class="o">:=</span> <span class="mi">0</span>
|
<span class="nx">i</span> <span class="o">:=</span> <span class="mi">0</span>
|
||||||
<span class="k">return</span> <span class="kd">func</span><span class="p">()</span> <span class="kt">int</span> <span class="p">{</span>
|
<span class="k">return</span> <span class="kd">func</span><span class="p">()</span> <span class="kt">int</span> <span class="p">{</span>
|
||||||
@ -84,6 +88,7 @@ form a closure.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -99,6 +104,7 @@ we call <code>nextInt</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">nextInt</span> <span class="o">:=</span> <span class="nx">intSeq</span><span class="p">()</span>
|
<div class="highlight"><pre> <span class="nx">nextInt</span> <span class="o">:=</span> <span class="nx">intSeq</span><span class="p">()</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -112,6 +118,7 @@ a few times.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">nextInt</span><span class="p">())</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">nextInt</span><span class="p">())</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">nextInt</span><span class="p">())</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">nextInt</span><span class="p">())</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">nextInt</span><span class="p">())</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">nextInt</span><span class="p">())</span>
|
||||||
@ -127,6 +134,7 @@ particular function, create and test a new one.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">newInts</span> <span class="o">:=</span> <span class="nx">intSeq</span><span class="p">()</span>
|
<div class="highlight"><pre> <span class="nx">newInts</span> <span class="o">:=</span> <span class="nx">intSeq</span><span class="p">()</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">newInts</span><span class="p">())</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">newInts</span><span class="p">())</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -144,6 +152,7 @@ particular function, create and test a new one.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run closures.go
|
<div class="highlight"><pre><span class="gp">$</span> go run closures.go
|
||||||
<span class="go">1</span>
|
<span class="go">1</span>
|
||||||
<span class="go">2</span>
|
<span class="go">2</span>
|
||||||
@ -161,6 +170,7 @@ recursion.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -32,6 +32,7 @@ collection with a custom function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -46,6 +47,7 @@ your program and data types.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -61,6 +63,7 @@ helper function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -70,6 +73,7 @@ helper function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/3PNdke3Wia"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -81,6 +85,7 @@ helper function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"strings"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"strings"</span>
|
||||||
<span class="kn">import</span> <span class="s">"fmt"</span>
|
<span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -95,6 +100,7 @@ helper function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">Index</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">t</span> <span class="kt">string</span><span class="p">)</span> <span class="kt">int</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">Index</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">t</span> <span class="kt">string</span><span class="p">)</span> <span class="kt">int</span> <span class="p">{</span>
|
||||||
<span class="k">for</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">vs</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">vs</span> <span class="p">{</span>
|
||||||
<span class="k">if</span> <span class="nx">v</span> <span class="o">==</span> <span class="nx">t</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="nx">v</span> <span class="o">==</span> <span class="nx">t</span> <span class="p">{</span>
|
||||||
@ -115,6 +121,7 @@ slice.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">Include</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">t</span> <span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">Include</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">t</span> <span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
||||||
<span class="k">return</span> <span class="nx">Index</span><span class="p">(</span><span class="nx">vs</span><span class="p">,</span> <span class="nx">t</span><span class="p">)</span> <span class="o">>=</span> <span class="mi">0</span>
|
<span class="k">return</span> <span class="nx">Index</span><span class="p">(</span><span class="nx">vs</span><span class="p">,</span> <span class="nx">t</span><span class="p">)</span> <span class="o">>=</span> <span class="mi">0</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -130,6 +137,7 @@ satisfies the predicate <code>f</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">Any</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">f</span> <span class="kd">func</span><span class="p">(</span><span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">Any</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">f</span> <span class="kd">func</span><span class="p">(</span><span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
||||||
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">vs</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">vs</span> <span class="p">{</span>
|
||||||
<span class="k">if</span> <span class="nx">f</span><span class="p">(</span><span class="nx">v</span><span class="p">)</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="nx">f</span><span class="p">(</span><span class="nx">v</span><span class="p">)</span> <span class="p">{</span>
|
||||||
@ -150,6 +158,7 @@ satisfy the predicate <code>f</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">All</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">f</span> <span class="kd">func</span><span class="p">(</span><span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">All</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">f</span> <span class="kd">func</span><span class="p">(</span><span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
||||||
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">vs</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">vs</span> <span class="p">{</span>
|
||||||
<span class="k">if</span> <span class="p">!</span><span class="nx">f</span><span class="p">(</span><span class="nx">v</span><span class="p">)</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="p">!</span><span class="nx">f</span><span class="p">(</span><span class="nx">v</span><span class="p">)</span> <span class="p">{</span>
|
||||||
@ -170,6 +179,7 @@ slice that satisfy the predicate <code>f</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">Filter</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">f</span> <span class="kd">func</span><span class="p">(</span><span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span><span class="p">)</span> <span class="p">[]</span><span class="kt">string</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">Filter</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">f</span> <span class="kd">func</span><span class="p">(</span><span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span><span class="p">)</span> <span class="p">[]</span><span class="kt">string</span> <span class="p">{</span>
|
||||||
<span class="nx">vsf</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([]</span><span class="kt">string</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
<span class="nx">vsf</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([]</span><span class="kt">string</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
||||||
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">vs</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">vs</span> <span class="p">{</span>
|
||||||
@ -191,6 +201,7 @@ the function <code>f</code> to each string in the original slice.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">Map</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">f</span> <span class="kd">func</span><span class="p">(</span><span class="kt">string</span><span class="p">)</span> <span class="kt">string</span><span class="p">)</span> <span class="p">[]</span><span class="kt">string</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">Map</span><span class="p">(</span><span class="nx">vs</span> <span class="p">[]</span><span class="kt">string</span><span class="p">,</span> <span class="nx">f</span> <span class="kd">func</span><span class="p">(</span><span class="kt">string</span><span class="p">)</span> <span class="kt">string</span><span class="p">)</span> <span class="p">[]</span><span class="kt">string</span> <span class="p">{</span>
|
||||||
<span class="nx">vsm</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([]</span><span class="kt">string</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="nx">vs</span><span class="p">))</span>
|
<span class="nx">vsm</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([]</span><span class="kt">string</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="nx">vs</span><span class="p">))</span>
|
||||||
<span class="k">for</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">vs</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">vs</span> <span class="p">{</span>
|
||||||
@ -208,6 +219,7 @@ the function <code>f</code> to each string in the original slice.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -220,6 +232,7 @@ the function <code>f</code> to each string in the original slice.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">strs</span> <span class="p">=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"peach"</span><span class="p">,</span> <span class="s">"apple"</span><span class="p">,</span> <span class="s">"pear"</span><span class="p">,</span> <span class="s">"plum"</span><span class="p">}</span>
|
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">strs</span> <span class="p">=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"peach"</span><span class="p">,</span> <span class="s">"apple"</span><span class="p">,</span> <span class="s">"pear"</span><span class="p">,</span> <span class="s">"plum"</span><span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -231,6 +244,7 @@ the function <code>f</code> to each string in the original slice.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">Index</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="s">"pear"</span><span class="p">))</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">Index</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="s">"pear"</span><span class="p">))</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -242,6 +256,7 @@ the function <code>f</code> to each string in the original slice.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">Include</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="s">"grape"</span><span class="p">))</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">Include</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="s">"grape"</span><span class="p">))</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -253,6 +268,7 @@ the function <code>f</code> to each string in the original slice.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">Any</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="kd">func</span><span class="p">(</span><span class="nx">v</span> <span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">Any</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="kd">func</span><span class="p">(</span><span class="nx">v</span> <span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
||||||
<span class="k">return</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">HasPrefix</span><span class="p">(</span><span class="nx">v</span><span class="p">,</span> <span class="s">"p"</span><span class="p">)</span>
|
<span class="k">return</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">HasPrefix</span><span class="p">(</span><span class="nx">v</span><span class="p">,</span> <span class="s">"p"</span><span class="p">)</span>
|
||||||
<span class="p">}))</span>
|
<span class="p">}))</span>
|
||||||
@ -266,6 +282,7 @@ the function <code>f</code> to each string in the original slice.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">All</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="kd">func</span><span class="p">(</span><span class="nx">v</span> <span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">All</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="kd">func</span><span class="p">(</span><span class="nx">v</span> <span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
||||||
<span class="k">return</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">HasPrefix</span><span class="p">(</span><span class="nx">v</span><span class="p">,</span> <span class="s">"p"</span><span class="p">)</span>
|
<span class="k">return</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">HasPrefix</span><span class="p">(</span><span class="nx">v</span><span class="p">,</span> <span class="s">"p"</span><span class="p">)</span>
|
||||||
<span class="p">}))</span>
|
<span class="p">}))</span>
|
||||||
@ -279,6 +296,7 @@ the function <code>f</code> to each string in the original slice.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">Filter</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="kd">func</span><span class="p">(</span><span class="nx">v</span> <span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">Filter</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="kd">func</span><span class="p">(</span><span class="nx">v</span> <span class="kt">string</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
||||||
<span class="k">return</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">Contains</span><span class="p">(</span><span class="nx">v</span><span class="p">,</span> <span class="s">"e"</span><span class="p">)</span>
|
<span class="k">return</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">Contains</span><span class="p">(</span><span class="nx">v</span><span class="p">,</span> <span class="s">"e"</span><span class="p">)</span>
|
||||||
<span class="p">}))</span>
|
<span class="p">}))</span>
|
||||||
@ -295,6 +313,7 @@ type.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">Map</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">ToUpper</span><span class="p">))</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">Map</span><span class="p">(</span><span class="nx">strs</span><span class="p">,</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">ToUpper</span><span class="p">))</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -306,6 +325,7 @@ type.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="p">}</span>
|
<div class="highlight"><pre><span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -321,6 +341,7 @@ type.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run collection-functions.go
|
<div class="highlight"><pre><span class="gp">$</span> go run collection-functions.go
|
||||||
<span class="go">2</span>
|
<span class="go">2</span>
|
||||||
<span class="go">false</span>
|
<span class="go">false</span>
|
||||||
|
@ -32,6 +32,7 @@ For example, <code>go run hello.go</code> uses <code>run</code> and
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -41,6 +42,7 @@ For example, <code>go run hello.go</code> uses <code>run</code> and
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/44uyYt_TRl"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -52,6 +54,7 @@ For example, <code>go run hello.go</code> uses <code>run</code> and
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"os"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"os"</span>
|
||||||
<span class="kn">import</span> <span class="s">"fmt"</span>
|
<span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -64,6 +67,7 @@ For example, <code>go run hello.go</code> uses <code>run</code> and
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -79,6 +83,7 @@ holds the arguments to the program.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">argsWithProg</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Args</span>
|
<div class="highlight"><pre> <span class="nx">argsWithProg</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Args</span>
|
||||||
<span class="nx">argsWithoutProg</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Args</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
|
<span class="nx">argsWithoutProg</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Args</span><span class="p">[</span><span class="mi">1</span><span class="p">:]</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -92,6 +97,7 @@ holds the arguments to the program.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">arg</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Args</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
|
<div class="highlight"><pre> <span class="nx">arg</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Args</span><span class="p">[</span><span class="mi">3</span><span class="p">]</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -103,6 +109,7 @@ holds the arguments to the program.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">argsWithProg</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">argsWithProg</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">argsWithoutProg</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">argsWithoutProg</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span>
|
||||||
@ -123,6 +130,7 @@ build a binary with <code>go build</code> first.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go build <span class="nb">command</span>-line-arguments.go
|
<div class="highlight"><pre><span class="gp">$</span> go build <span class="nb">command</span>-line-arguments.go
|
||||||
<span class="gp">$</span> ./command-line-arguments a b c d
|
<span class="gp">$</span> ./command-line-arguments a b c d
|
||||||
<span class="go">[./command-line-arguments a b c d] </span>
|
<span class="go">[./command-line-arguments a b c d] </span>
|
||||||
@ -140,6 +148,7 @@ with flags.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -32,6 +32,7 @@ command-line flag.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -41,6 +42,7 @@ command-line flag.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/9xlvGqQjhl"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -55,6 +57,7 @@ implement our example command-line program.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"flag"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"flag"</span>
|
||||||
<span class="kn">import</span> <span class="s">"fmt"</span>
|
<span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -67,6 +70,7 @@ implement our example command-line program.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -84,6 +88,7 @@ we’ll see how to use this pointer below.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">wordPtr</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">String</span><span class="p">(</span><span class="s">"word"</span><span class="p">,</span> <span class="s">"foo"</span><span class="p">,</span> <span class="s">"a string"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">wordPtr</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">String</span><span class="p">(</span><span class="s">"word"</span><span class="p">,</span> <span class="s">"foo"</span><span class="p">,</span> <span class="s">"a string"</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -97,6 +102,7 @@ similar approach to the <code>word</code> flag.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">numbPtr</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">Int</span><span class="p">(</span><span class="s">"numb"</span><span class="p">,</span> <span class="mi">42</span><span class="p">,</span> <span class="s">"an int"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">numbPtr</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">Int</span><span class="p">(</span><span class="s">"numb"</span><span class="p">,</span> <span class="mi">42</span><span class="p">,</span> <span class="s">"an int"</span><span class="p">)</span>
|
||||||
<span class="nx">boolPtr</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">Bool</span><span class="p">(</span><span class="s">"fork"</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="s">"a bool"</span><span class="p">)</span>
|
<span class="nx">boolPtr</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">Bool</span><span class="p">(</span><span class="s">"fork"</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="s">"a bool"</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -113,6 +119,7 @@ declaration function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">svar</span> <span class="kt">string</span>
|
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">svar</span> <span class="kt">string</span>
|
||||||
<span class="nx">flag</span><span class="p">.</span><span class="nx">StringVar</span><span class="p">(</span><span class="o">&</span><span class="nx">svar</span><span class="p">,</span> <span class="s">"svar"</span><span class="p">,</span> <span class="s">"bar"</span><span class="p">,</span> <span class="s">"a string var"</span><span class="p">)</span>
|
<span class="nx">flag</span><span class="p">.</span><span class="nx">StringVar</span><span class="p">(</span><span class="o">&</span><span class="nx">svar</span><span class="p">,</span> <span class="s">"svar"</span><span class="p">,</span> <span class="s">"bar"</span><span class="p">,</span> <span class="s">"a string var"</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -127,6 +134,7 @@ to execute the command-line parsing.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">flag</span><span class="p">.</span><span class="nx">Parse</span><span class="p">()</span>
|
<div class="highlight"><pre> <span class="nx">flag</span><span class="p">.</span><span class="nx">Parse</span><span class="p">()</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -142,6 +150,7 @@ to get the actual option values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"word:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">wordPtr</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"word:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">wordPtr</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"numb:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">numbPtr</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"numb:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">numbPtr</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"fork:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">boolPtr</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"fork:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">boolPtr</span><span class="p">)</span>
|
||||||
@ -165,6 +174,7 @@ binary directly.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go build <span class="nb">command</span>-line-flags.go
|
<div class="highlight"><pre><span class="gp">$</span> go build <span class="nb">command</span>-line-flags.go
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -178,6 +188,7 @@ all flags.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -word<span class="o">=</span>opt -numb<span class="o">=</span>7 -fork -svar<span class="o">=</span>flag
|
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -word<span class="o">=</span>opt -numb<span class="o">=</span>7 -fork -svar<span class="o">=</span>flag
|
||||||
<span class="go">word: opt</span>
|
<span class="go">word: opt</span>
|
||||||
<span class="go">numb: 7</span>
|
<span class="go">numb: 7</span>
|
||||||
@ -196,6 +207,7 @@ their default values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -word<span class="o">=</span>opt
|
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -word<span class="o">=</span>opt
|
||||||
<span class="go">word: opt</span>
|
<span class="go">word: opt</span>
|
||||||
<span class="go">numb: 42</span>
|
<span class="go">numb: 42</span>
|
||||||
@ -214,6 +226,7 @@ any flags.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -word<span class="o">=</span>opt a1 a2 a3
|
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -word<span class="o">=</span>opt a1 a2 a3
|
||||||
<span class="go">word: opt</span>
|
<span class="go">word: opt</span>
|
||||||
<span class="go">...</span>
|
<span class="go">...</span>
|
||||||
@ -231,6 +244,7 @@ will be interpreted as positional arguments).</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -word<span class="o">=</span>opt a1 a2 a3 -numb<span class="o">=</span>7
|
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -word<span class="o">=</span>opt a1 a2 a3 -numb<span class="o">=</span>7
|
||||||
<span class="go">word: opt</span>
|
<span class="go">word: opt</span>
|
||||||
<span class="go">numb: 42</span>
|
<span class="go">numb: 42</span>
|
||||||
@ -249,6 +263,7 @@ generated help text for the command-line program.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -h
|
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -h
|
||||||
<span class="go">Usage of ./command-line-flags:</span>
|
<span class="go">Usage of ./command-line-flags:</span>
|
||||||
<span class="go"> -fork=false: a bool</span>
|
<span class="go"> -fork=false: a bool</span>
|
||||||
@ -268,6 +283,7 @@ an show the help text again.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -wat
|
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -wat
|
||||||
<span class="go">flag provided but not defined: -wat</span>
|
<span class="go">flag provided but not defined: -wat</span>
|
||||||
<span class="go">Usage of ./command-line-flags:</span>
|
<span class="go">Usage of ./command-line-flags:</span>
|
||||||
@ -284,6 +300,7 @@ way to parameterize programs.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -30,6 +30,7 @@ and numeric values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -39,6 +40,7 @@ and numeric values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/T5sj0eINnp"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -50,6 +52,7 @@ and numeric values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
<span class="kn">import</span> <span class="s">"math"</span>
|
<span class="kn">import</span> <span class="s">"math"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -63,6 +66,7 @@ and numeric values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">const</span> <span class="nx">s</span> <span class="kt">string</span> <span class="p">=</span> <span class="s">"constant"</span>
|
<div class="highlight"><pre><span class="kd">const</span> <span class="nx">s</span> <span class="kt">string</span> <span class="p">=</span> <span class="s">"constant"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -74,6 +78,7 @@ and numeric values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -88,6 +93,7 @@ statement can.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="kd">const</span> <span class="nx">n</span> <span class="p">=</span> <span class="mi">500000000</span>
|
<div class="highlight"><pre> <span class="kd">const</span> <span class="nx">n</span> <span class="p">=</span> <span class="mi">500000000</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -101,6 +107,7 @@ arbitrary precision.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="kd">const</span> <span class="nx">d</span> <span class="p">=</span> <span class="mf">3e20</span> <span class="o">/</span> <span class="nx">n</span>
|
<div class="highlight"><pre> <span class="kd">const</span> <span class="nx">d</span> <span class="p">=</span> <span class="mf">3e20</span> <span class="o">/</span> <span class="nx">n</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -115,6 +122,7 @@ one, such as by an explicit cast.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">int64</span><span class="p">(</span><span class="nx">d</span><span class="p">))</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">int64</span><span class="p">(</span><span class="nx">d</span><span class="p">))</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -130,6 +138,7 @@ assignment or function call. For example, here
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">math</span><span class="p">.</span><span class="nx">Sin</span><span class="p">(</span><span class="nx">n</span><span class="p">))</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">math</span><span class="p">.</span><span class="nx">Sin</span><span class="p">(</span><span class="nx">n</span><span class="p">))</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -146,6 +155,7 @@ assignment or function call. For example, here
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run constant.go
|
<div class="highlight"><pre><span class="gp">$</span> go run constant.go
|
||||||
<span class="go">constant</span>
|
<span class="go">constant</span>
|
||||||
<span class="go">6e+11</span>
|
<span class="go">6e+11</span>
|
||||||
|
10
public/defer
10
public/defer
@ -32,6 +32,7 @@ purposes of cleanup. <code>defer</code> is often used where e.g.
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -41,6 +42,7 @@ purposes of cleanup. <code>defer</code> is often used where e.g.
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/9aoHwzHcAo"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -52,6 +54,7 @@ purposes of cleanup. <code>defer</code> is often used where e.g.
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
<span class="kn">import</span> <span class="s">"os"</span>
|
<span class="kn">import</span> <span class="s">"os"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -67,6 +70,7 @@ do that with <code>defer</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -83,6 +87,7 @@ of the enclosing function (<code>main</code>), after
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">f</span> <span class="o">:=</span> <span class="nx">createFile</span><span class="p">(</span><span class="s">"/tmp/defer.txt"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">f</span> <span class="o">:=</span> <span class="nx">createFile</span><span class="p">(</span><span class="s">"/tmp/defer.txt"</span><span class="p">)</span>
|
||||||
<span class="k">defer</span> <span class="nx">closeFile</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
<span class="k">defer</span> <span class="nx">closeFile</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||||
<span class="nx">writeFile</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
<span class="nx">writeFile</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||||
@ -97,6 +102,7 @@ of the enclosing function (<code>main</code>), after
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">createFile</span><span class="p">(</span><span class="nx">p</span> <span class="kt">string</span><span class="p">)</span> <span class="o">*</span><span class="nx">os</span><span class="p">.</span><span class="nx">File</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">createFile</span><span class="p">(</span><span class="nx">p</span> <span class="kt">string</span><span class="p">)</span> <span class="o">*</span><span class="nx">os</span><span class="p">.</span><span class="nx">File</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"creating"</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"creating"</span><span class="p">)</span>
|
||||||
<span class="nx">f</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Create</span><span class="p">(</span><span class="nx">p</span><span class="p">)</span>
|
<span class="nx">f</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Create</span><span class="p">(</span><span class="nx">p</span><span class="p">)</span>
|
||||||
@ -115,6 +121,7 @@ of the enclosing function (<code>main</code>), after
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">writeFile</span><span class="p">(</span><span class="nx">f</span> <span class="o">*</span><span class="nx">os</span><span class="p">.</span><span class="nx">File</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">writeFile</span><span class="p">(</span><span class="nx">f</span> <span class="o">*</span><span class="nx">os</span><span class="p">.</span><span class="nx">File</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"writing"</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"writing"</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Fprintln</span><span class="p">(</span><span class="nx">f</span><span class="p">,</span> <span class="s">"data"</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Fprintln</span><span class="p">(</span><span class="nx">f</span><span class="p">,</span> <span class="s">"data"</span><span class="p">)</span>
|
||||||
@ -128,6 +135,7 @@ of the enclosing function (<code>main</code>), after
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="p">}</span>
|
<div class="highlight"><pre><span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -139,6 +147,7 @@ of the enclosing function (<code>main</code>), after
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">closeFile</span><span class="p">(</span><span class="nx">f</span> <span class="o">*</span><span class="nx">os</span><span class="p">.</span><span class="nx">File</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">closeFile</span><span class="p">(</span><span class="nx">f</span> <span class="o">*</span><span class="nx">os</span><span class="p">.</span><span class="nx">File</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"closing"</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"closing"</span><span class="p">)</span>
|
||||||
<span class="nx">f</span><span class="p">.</span><span class="nx">Close</span><span class="p">()</span>
|
<span class="nx">f</span><span class="p">.</span><span class="nx">Close</span><span class="p">()</span>
|
||||||
@ -159,6 +168,7 @@ after being written.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run defer.go
|
<div class="highlight"><pre><span class="gp">$</span> go run defer.go
|
||||||
<span class="go">creating</span>
|
<span class="go">creating</span>
|
||||||
<span class="go">writing</span>
|
<span class="go">writing</span>
|
||||||
|
@ -32,6 +32,7 @@ Let’s look at how to set, get, and list environment variables.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -41,6 +42,7 @@ Let’s look at how to set, get, and list environment variables.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/kfqLhpmEpw"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -52,6 +54,7 @@ Let’s look at how to set, get, and list environment variables.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"os"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"os"</span>
|
||||||
<span class="kn">import</span> <span class="s">"strings"</span>
|
<span class="kn">import</span> <span class="s">"strings"</span>
|
||||||
<span class="kn">import</span> <span class="s">"fmt"</span>
|
<span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
@ -65,6 +68,7 @@ Let’s look at how to set, get, and list environment variables.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -80,6 +84,7 @@ environment.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">os</span><span class="p">.</span><span class="nx">Setenv</span><span class="p">(</span><span class="s">"FOO"</span><span class="p">,</span> <span class="s">"1"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">os</span><span class="p">.</span><span class="nx">Setenv</span><span class="p">(</span><span class="s">"FOO"</span><span class="p">,</span> <span class="s">"1"</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"FOO:"</span><span class="p">,</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Getenv</span><span class="p">(</span><span class="s">"FOO"</span><span class="p">))</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"FOO:"</span><span class="p">,</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Getenv</span><span class="p">(</span><span class="s">"FOO"</span><span class="p">))</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"BAR:"</span><span class="p">,</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Getenv</span><span class="p">(</span><span class="s">"BAR"</span><span class="p">))</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"BAR:"</span><span class="p">,</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Getenv</span><span class="p">(</span><span class="s">"BAR"</span><span class="p">))</span>
|
||||||
@ -97,6 +102,7 @@ get the key and value. Here we print all the keys.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">()</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">()</span>
|
||||||
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Environ</span><span class="p">()</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Environ</span><span class="p">()</span> <span class="p">{</span>
|
||||||
<span class="nx">pair</span> <span class="o">:=</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">Split</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="s">"="</span><span class="p">)</span>
|
<span class="nx">pair</span> <span class="o">:=</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">Split</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="s">"="</span><span class="p">)</span>
|
||||||
@ -120,6 +126,7 @@ value for <code>FOO</code> that we set in the program, but that
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run environment-variables.go
|
<div class="highlight"><pre><span class="gp">$</span> go run environment-variables.go
|
||||||
<span class="go">FOO: 1</span>
|
<span class="go">FOO: 1</span>
|
||||||
<span class="go">BAR: </span>
|
<span class="go">BAR: </span>
|
||||||
@ -135,6 +142,7 @@ particular machine.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="go">TERM_PROGRAM</span>
|
<div class="highlight"><pre><span class="go">TERM_PROGRAM</span>
|
||||||
<span class="go">PATH</span>
|
<span class="go">PATH</span>
|
||||||
<span class="go">SHELL</span>
|
<span class="go">SHELL</span>
|
||||||
@ -151,6 +159,7 @@ program picks that value up.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> <span class="nv">BAR</span><span class="o">=</span>2 go run environment-variables.go
|
<div class="highlight"><pre><span class="gp">$</span> <span class="nv">BAR</span><span class="o">=</span>2 go run environment-variables.go
|
||||||
<span class="go">FOO: 1</span>
|
<span class="go">FOO: 1</span>
|
||||||
<span class="go">BAR: 2</span>
|
<span class="go">BAR: 2</span>
|
||||||
|
@ -32,6 +32,7 @@ Here’s how to do it in Go.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -41,6 +42,7 @@ Here’s how to do it in Go.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/3jXHvYbLUz"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -52,6 +54,7 @@ Here’s how to do it in Go.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
<span class="kn">import</span> <span class="s">"time"</span>
|
<span class="kn">import</span> <span class="s">"time"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -64,6 +67,7 @@ Here’s how to do it in Go.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -78,6 +82,7 @@ nanoseconds, respectively.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">now</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Now</span><span class="p">()</span>
|
<div class="highlight"><pre> <span class="nx">now</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Now</span><span class="p">()</span>
|
||||||
<span class="nx">secs</span> <span class="o">:=</span> <span class="nx">now</span><span class="p">.</span><span class="nx">Unix</span><span class="p">()</span>
|
<span class="nx">secs</span> <span class="o">:=</span> <span class="nx">now</span><span class="p">.</span><span class="nx">Unix</span><span class="p">()</span>
|
||||||
<span class="nx">nanos</span> <span class="o">:=</span> <span class="nx">now</span><span class="p">.</span><span class="nx">UnixNano</span><span class="p">()</span>
|
<span class="nx">nanos</span> <span class="o">:=</span> <span class="nx">now</span><span class="p">.</span><span class="nx">UnixNano</span><span class="p">()</span>
|
||||||
@ -95,6 +100,7 @@ dive from nanoseconds.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">millis</span> <span class="o">:=</span> <span class="nx">nanos</span> <span class="o">/</span> <span class="mi">1000000</span>
|
<div class="highlight"><pre> <span class="nx">millis</span> <span class="o">:=</span> <span class="nx">nanos</span> <span class="o">/</span> <span class="mi">1000000</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">secs</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">secs</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">millis</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">millis</span><span class="p">)</span>
|
||||||
@ -111,6 +117,7 @@ since the epoch into the corresponding <code>time</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Unix</span><span class="p">(</span><span class="nx">secs</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Unix</span><span class="p">(</span><span class="nx">secs</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Unix</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">nanos</span><span class="p">))</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Unix</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">nanos</span><span class="p">))</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -128,6 +135,7 @@ since the epoch into the corresponding <code>time</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run epoch.go
|
<div class="highlight"><pre><span class="gp">$</span> go run epoch.go
|
||||||
<span class="go">2012-10-31 16:13:58.292387 +0000 UTC</span>
|
<span class="go">2012-10-31 16:13:58.292387 +0000 UTC</span>
|
||||||
<span class="go">1351700038</span>
|
<span class="go">1351700038</span>
|
||||||
@ -147,6 +155,7 @@ parsing and formatting.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -36,6 +36,7 @@ non-error tasks.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -45,6 +46,7 @@ non-error tasks.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/BmDQXkPPTk"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -56,6 +58,7 @@ non-error tasks.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"errors"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"errors"</span>
|
||||||
<span class="kn">import</span> <span class="s">"fmt"</span>
|
<span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -70,6 +73,7 @@ have type <code>error</code>, a built-in interface.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">f1</span><span class="p">(</span><span class="nx">arg</span> <span class="kt">int</span><span class="p">)</span> <span class="p">(</span><span class="kt">int</span><span class="p">,</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">f1</span><span class="p">(</span><span class="nx">arg</span> <span class="kt">int</span><span class="p">)</span> <span class="p">(</span><span class="kt">int</span><span class="p">,</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="k">if</span> <span class="nx">arg</span> <span class="o">==</span> <span class="mi">42</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="nx">arg</span> <span class="o">==</span> <span class="mi">42</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -84,6 +88,7 @@ with the given error message.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="nx">errors</span><span class="p">.</span><span class="nx">New</span><span class="p">(</span><span class="s">"can't work with 42"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="nx">errors</span><span class="p">.</span><span class="nx">New</span><span class="p">(</span><span class="s">"can't work with 42"</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -95,6 +100,7 @@ with the given error message.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="p">}</span>
|
<div class="highlight"><pre> <span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -108,6 +114,7 @@ there was no error.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">return</span> <span class="nx">arg</span> <span class="o">+</span> <span class="mi">3</span><span class="p">,</span> <span class="kc">nil</span>
|
<div class="highlight"><pre> <span class="k">return</span> <span class="nx">arg</span> <span class="o">+</span> <span class="mi">3</span><span class="p">,</span> <span class="kc">nil</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -124,6 +131,7 @@ to explicitly represent an argument error.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">argError</span> <span class="kd">struct</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">argError</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||||
<span class="nx">arg</span> <span class="kt">int</span>
|
<span class="nx">arg</span> <span class="kt">int</span>
|
||||||
<span class="nx">prob</span> <span class="kt">string</span>
|
<span class="nx">prob</span> <span class="kt">string</span>
|
||||||
@ -138,6 +146,7 @@ to explicitly represent an argument error.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">e</span> <span class="o">*</span><span class="nx">argError</span><span class="p">)</span> <span class="nx">Error</span><span class="p">()</span> <span class="kt">string</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">e</span> <span class="o">*</span><span class="nx">argError</span><span class="p">)</span> <span class="nx">Error</span><span class="p">()</span> <span class="kt">string</span> <span class="p">{</span>
|
||||||
<span class="k">return</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Sprintf</span><span class="p">(</span><span class="s">"%d - %s"</span><span class="p">,</span> <span class="nx">e</span><span class="p">.</span><span class="nx">arg</span><span class="p">,</span> <span class="nx">e</span><span class="p">.</span><span class="nx">prob</span><span class="p">)</span>
|
<span class="k">return</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Sprintf</span><span class="p">(</span><span class="s">"%d - %s"</span><span class="p">,</span> <span class="nx">e</span><span class="p">.</span><span class="nx">arg</span><span class="p">,</span> <span class="nx">e</span><span class="p">.</span><span class="nx">prob</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -151,6 +160,7 @@ to explicitly represent an argument error.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">f2</span><span class="p">(</span><span class="nx">arg</span> <span class="kt">int</span><span class="p">)</span> <span class="p">(</span><span class="kt">int</span><span class="p">,</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">f2</span><span class="p">(</span><span class="nx">arg</span> <span class="kt">int</span><span class="p">)</span> <span class="p">(</span><span class="kt">int</span><span class="p">,</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="k">if</span> <span class="nx">arg</span> <span class="o">==</span> <span class="mi">42</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="nx">arg</span> <span class="o">==</span> <span class="mi">42</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -166,6 +176,7 @@ fields <code>arg</code> and <code>prob</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">&</span><span class="nx">argError</span><span class="p">{</span><span class="nx">arg</span><span class="p">,</span> <span class="s">"can't work with it"</span><span class="p">}</span>
|
<div class="highlight"><pre> <span class="k">return</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">&</span><span class="nx">argError</span><span class="p">{</span><span class="nx">arg</span><span class="p">,</span> <span class="s">"can't work with it"</span><span class="p">}</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
<span class="k">return</span> <span class="nx">arg</span> <span class="o">+</span> <span class="mi">3</span><span class="p">,</span> <span class="kc">nil</span>
|
<span class="k">return</span> <span class="nx">arg</span> <span class="o">+</span> <span class="mi">3</span><span class="p">,</span> <span class="kc">nil</span>
|
||||||
@ -180,6 +191,7 @@ fields <code>arg</code> and <code>prob</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -195,6 +207,7 @@ idiom in Go code.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">i</span> <span class="o">:=</span> <span class="k">range</span> <span class="p">[]</span><span class="kt">int</span><span class="p">{</span><span class="mi">7</span><span class="p">,</span> <span class="mi">42</span><span class="p">}</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">i</span> <span class="o">:=</span> <span class="k">range</span> <span class="p">[]</span><span class="kt">int</span><span class="p">{</span><span class="mi">7</span><span class="p">,</span> <span class="mi">42</span><span class="p">}</span> <span class="p">{</span>
|
||||||
<span class="k">if</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="nx">f1</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span> <span class="nx">e</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="nx">r</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="nx">f1</span><span class="p">(</span><span class="nx">i</span><span class="p">);</span> <span class="nx">e</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"f1 failed:"</span><span class="p">,</span> <span class="nx">e</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"f1 failed:"</span><span class="p">,</span> <span class="nx">e</span><span class="p">)</span>
|
||||||
@ -223,6 +236,7 @@ assertion.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">_</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="nx">f2</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">_</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="nx">f2</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
||||||
<span class="k">if</span> <span class="nx">ae</span><span class="p">,</span> <span class="nx">ok</span> <span class="o">:=</span> <span class="nx">e</span><span class="p">.(</span><span class="o">*</span><span class="nx">argError</span><span class="p">);</span> <span class="nx">ok</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="nx">ae</span><span class="p">,</span> <span class="nx">ok</span> <span class="o">:=</span> <span class="nx">e</span><span class="p">.(</span><span class="o">*</span><span class="nx">argError</span><span class="p">);</span> <span class="nx">ok</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">ae</span><span class="p">.</span><span class="nx">arg</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">ae</span><span class="p">.</span><span class="nx">arg</span><span class="p">)</span>
|
||||||
@ -243,6 +257,7 @@ assertion.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run errors.go
|
<div class="highlight"><pre><span class="gp">$</span> go run errors.go
|
||||||
<span class="go">f1 worked: 10</span>
|
<span class="go">f1 worked: 10</span>
|
||||||
<span class="go">f1 failed: can't work with 42</span>
|
<span class="go">f1 failed: can't work with 42</span>
|
||||||
@ -262,6 +277,7 @@ on the Go blog for more on error handling.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -37,6 +37,7 @@ function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -46,6 +47,7 @@ function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/iEAD2cYC-h"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -57,6 +59,7 @@ function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"syscall"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"syscall"</span>
|
||||||
<span class="kn">import</span> <span class="s">"os"</span>
|
<span class="kn">import</span> <span class="s">"os"</span>
|
||||||
<span class="kn">import</span> <span class="s">"os/exec"</span>
|
<span class="kn">import</span> <span class="s">"os/exec"</span>
|
||||||
@ -70,6 +73,7 @@ function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -85,6 +89,7 @@ we’ll use <code>exec.LookPath</code> to find it (probably
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">binary</span><span class="p">,</span> <span class="nx">lookErr</span> <span class="o">:=</span> <span class="nx">exec</span><span class="p">.</span><span class="nx">LookPath</span><span class="p">(</span><span class="s">"ls"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">binary</span><span class="p">,</span> <span class="nx">lookErr</span> <span class="o">:=</span> <span class="nx">exec</span><span class="p">.</span><span class="nx">LookPath</span><span class="p">(</span><span class="s">"ls"</span><span class="p">)</span>
|
||||||
<span class="k">if</span> <span class="nx">lookErr</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="nx">lookErr</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
||||||
<span class="nb">panic</span><span class="p">(</span><span class="nx">lookErr</span><span class="p">)</span>
|
<span class="nb">panic</span><span class="p">(</span><span class="nx">lookErr</span><span class="p">)</span>
|
||||||
@ -103,6 +108,7 @@ be the program name.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">args</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"ls"</span><span class="p">,</span> <span class="s">"-a"</span><span class="p">,</span> <span class="s">"-l"</span><span class="p">,</span> <span class="s">"-h"</span><span class="p">}</span>
|
<div class="highlight"><pre> <span class="nx">args</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"ls"</span><span class="p">,</span> <span class="s">"-a"</span><span class="p">,</span> <span class="s">"-l"</span><span class="p">,</span> <span class="s">"-h"</span><span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -117,6 +123,7 @@ environment.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">env</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Environ</span><span class="p">()</span>
|
<div class="highlight"><pre> <span class="nx">env</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Environ</span><span class="p">()</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -133,6 +140,7 @@ value.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">execErr</span> <span class="o">:=</span> <span class="nx">syscall</span><span class="p">.</span><span class="nx">Exec</span><span class="p">(</span><span class="nx">binary</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">env</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">execErr</span> <span class="o">:=</span> <span class="nx">syscall</span><span class="p">.</span><span class="nx">Exec</span><span class="p">(</span><span class="nx">binary</span><span class="p">,</span> <span class="nx">args</span><span class="p">,</span> <span class="nx">env</span><span class="p">)</span>
|
||||||
<span class="k">if</span> <span class="nx">execErr</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="nx">execErr</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
||||||
<span class="nb">panic</span><span class="p">(</span><span class="nx">execErr</span><span class="p">)</span>
|
<span class="nb">panic</span><span class="p">(</span><span class="nx">execErr</span><span class="p">)</span>
|
||||||
@ -153,6 +161,7 @@ value.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run execing-processes.go
|
<div class="highlight"><pre><span class="gp">$</span> go run execing-processes.go
|
||||||
<span class="go">total 16</span>
|
<span class="go">total 16</span>
|
||||||
<span class="go">drwxr-xr-x 4 mark 136B Oct 3 16:29 .</span>
|
<span class="go">drwxr-xr-x 4 mark 136B Oct 3 16:29 .</span>
|
||||||
@ -172,6 +181,7 @@ processes covers most use cases for <code>fork</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
10
public/exit
10
public/exit
@ -30,6 +30,7 @@ status.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -39,6 +40,7 @@ status.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/CDiAh9SXRM"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -50,6 +52,7 @@ status.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
<span class="kn">import</span> <span class="s">"os"</span>
|
<span class="kn">import</span> <span class="s">"os"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -62,6 +65,7 @@ status.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -75,6 +79,7 @@ this <code>fmt.Println</code> will never be called.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">defer</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"!"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="k">defer</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"!"</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -87,6 +92,7 @@ this <code>fmt.Println</code> will never be called.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">os</span><span class="p">.</span><span class="nx">Exit</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">os</span><span class="p">.</span><span class="nx">Exit</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -103,6 +109,7 @@ use <code>os.Exit</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -118,6 +125,7 @@ will be picked up by <code>go</code> and printed.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run exit.go
|
<div class="highlight"><pre><span class="gp">$</span> go run exit.go
|
||||||
<span class="go">exit status 3</span>
|
<span class="go">exit status 3</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -132,6 +140,7 @@ the status in the terminal.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go build exit.go
|
<div class="highlight"><pre><span class="gp">$</span> go build exit.go
|
||||||
<span class="gp">$</span> ./exit
|
<span class="gp">$</span> ./exit
|
||||||
<span class="gp">$</span> <span class="nb">echo</span> <span class="nv">$?</span>
|
<span class="gp">$</span> <span class="nb">echo</span> <span class="nv">$?</span>
|
||||||
@ -147,6 +156,7 @@ the status in the terminal.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -30,6 +30,7 @@ three basic types of <code>for</code> loops.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -39,6 +40,7 @@ three basic types of <code>for</code> loops.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/mGqqcBZ0jv"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -50,6 +52,7 @@ three basic types of <code>for</code> loops.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -61,6 +64,7 @@ three basic types of <code>for</code> loops.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -73,6 +77,7 @@ three basic types of <code>for</code> loops.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">1</span>
|
<div class="highlight"><pre> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">1</span>
|
||||||
<span class="k">for</span> <span class="nx">i</span> <span class="o"><=</span> <span class="mi">3</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="nx">i</span> <span class="o"><=</span> <span class="mi">3</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span>
|
||||||
@ -89,6 +94,7 @@ three basic types of <code>for</code> loops.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">j</span> <span class="o">:=</span> <span class="mi">7</span><span class="p">;</span> <span class="nx">j</span> <span class="o"><=</span> <span class="mi">9</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">j</span> <span class="o">:=</span> <span class="mi">7</span><span class="p">;</span> <span class="nx">j</span> <span class="o"><=</span> <span class="mi">9</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">j</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">j</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -105,6 +111,7 @@ the enclosing function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">for</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">for</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"loop"</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"loop"</span><span class="p">)</span>
|
||||||
<span class="k">break</span>
|
<span class="k">break</span>
|
||||||
@ -124,6 +131,7 @@ the enclosing function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run <span class="k">for</span>.go
|
<div class="highlight"><pre><span class="gp">$</span> go run <span class="k">for</span>.go
|
||||||
<span class="go">1</span>
|
<span class="go">1</span>
|
||||||
<span class="go">2</span>
|
<span class="go">2</span>
|
||||||
@ -145,6 +153,7 @@ structures.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -30,6 +30,7 @@ functions with a few different examples.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -39,6 +40,7 @@ functions with a few different examples.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/2EXoOWfGf_"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -50,6 +52,7 @@ functions with a few different examples.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -63,6 +66,7 @@ their sum as an <code>int</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">plus</span><span class="p">(</span><span class="nx">a</span> <span class="kt">int</span><span class="p">,</span> <span class="nx">b</span> <span class="kt">int</span><span class="p">)</span> <span class="kt">int</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">plus</span><span class="p">(</span><span class="nx">a</span> <span class="kt">int</span><span class="p">,</span> <span class="nx">b</span> <span class="kt">int</span><span class="p">)</span> <span class="kt">int</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -77,6 +81,7 @@ expression.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">return</span> <span class="nx">a</span> <span class="o">+</span> <span class="nx">b</span>
|
<div class="highlight"><pre> <span class="k">return</span> <span class="nx">a</span> <span class="o">+</span> <span class="nx">b</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -89,6 +94,7 @@ expression.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -102,6 +108,7 @@ expression.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">res</span> <span class="o">:=</span> <span class="nx">plus</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">res</span> <span class="o">:=</span> <span class="nx">plus</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"1+2 ="</span><span class="p">,</span> <span class="nx">res</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"1+2 ="</span><span class="p">,</span> <span class="nx">res</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -119,6 +126,7 @@ expression.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run functions.go
|
<div class="highlight"><pre><span class="gp">$</span> go run functions.go
|
||||||
<span class="go">1+2 = 3</span>
|
<span class="go">1+2 = 3</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -133,6 +141,7 @@ multiple return values, which we’ll look at next.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -38,6 +39,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/aIO_Wi3hJj"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -49,6 +51,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -60,6 +63,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">f</span><span class="p">(</span><span class="nx">from</span> <span class="kt">string</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">f</span><span class="p">(</span><span class="nx">from</span> <span class="kt">string</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="p"><</span> <span class="mi">3</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
<span class="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">i</span> <span class="p"><</span> <span class="mi">3</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">from</span><span class="p">,</span> <span class="s">":"</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">from</span><span class="p">,</span> <span class="s">":"</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span>
|
||||||
@ -75,6 +79,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -89,6 +94,7 @@ synchronously.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">f</span><span class="p">(</span><span class="s">"direct"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">f</span><span class="p">(</span><span class="s">"direct"</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -103,6 +109,7 @@ concurrently with the calling one.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">go</span> <span class="nx">f</span><span class="p">(</span><span class="s">"goroutine"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="k">go</span> <span class="nx">f</span><span class="p">(</span><span class="s">"goroutine"</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -116,6 +123,7 @@ function call.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">go</span> <span class="kd">func</span><span class="p">(</span><span class="nx">msg</span> <span class="kt">string</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">go</span> <span class="kd">func</span><span class="p">(</span><span class="nx">msg</span> <span class="kt">string</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">msg</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">msg</span><span class="p">)</span>
|
||||||
<span class="p">}(</span><span class="s">"going"</span><span class="p">)</span>
|
<span class="p">}(</span><span class="s">"going"</span><span class="p">)</span>
|
||||||
@ -133,6 +141,7 @@ before the program exits.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">input</span> <span class="kt">string</span>
|
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">input</span> <span class="kt">string</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Scanln</span><span class="p">(</span><span class="o">&</span><span class="nx">input</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Scanln</span><span class="p">(</span><span class="o">&</span><span class="nx">input</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"done"</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"done"</span><span class="p">)</span>
|
||||||
@ -155,6 +164,7 @@ goroutines being run concurrently by the Go runtime.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run goroutines.go
|
<div class="highlight"><pre><span class="gp">$</span> go run goroutines.go
|
||||||
<span class="go">direct : 0</span>
|
<span class="go">direct : 0</span>
|
||||||
<span class="go">direct : 1</span>
|
<span class="go">direct : 1</span>
|
||||||
@ -177,6 +187,7 @@ concurrent Go programs: channels.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -30,6 +30,7 @@ message. Here’s the full source code.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/H8bxSpw9Jq"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -41,6 +42,7 @@ message. Here’s the full source code.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -52,6 +54,7 @@ message. Here’s the full source code.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"hello world"</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"hello world"</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -71,6 +74,7 @@ use <code>go run</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run hello-world.go
|
<div class="highlight"><pre><span class="gp">$</span> go run hello-world.go
|
||||||
<span class="go">hello world</span>
|
<span class="go">hello world</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -85,6 +89,7 @@ binaries. We can do this using <code>go build</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go build hello-world.go
|
<div class="highlight"><pre><span class="gp">$</span> go build hello-world.go
|
||||||
<span class="gp">$</span> ls
|
<span class="gp">$</span> ls
|
||||||
<span class="go">hello-world hello-world.go</span>
|
<span class="go">hello-world hello-world.go</span>
|
||||||
@ -99,6 +104,7 @@ binaries. We can do this using <code>go build</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> ./hello-world
|
<div class="highlight"><pre><span class="gp">$</span> ./hello-world
|
||||||
<span class="go">hello world</span>
|
<span class="go">hello world</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -113,6 +119,7 @@ learn more about the language.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -30,6 +30,7 @@ straight-forward.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -39,6 +40,7 @@ straight-forward.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/p_ykufAYRj"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -50,6 +52,7 @@ straight-forward.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -61,6 +64,7 @@ straight-forward.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -73,6 +77,7 @@ straight-forward.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">if</span> <span class="mi">7</span><span class="o">%</span><span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">if</span> <span class="mi">7</span><span class="o">%</span><span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"7 is even"</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"7 is even"</span><span class="p">)</span>
|
||||||
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
<span class="p">}</span> <span class="k">else</span> <span class="p">{</span>
|
||||||
@ -89,6 +94,7 @@ straight-forward.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">if</span> <span class="mi">8</span><span class="o">%</span><span class="mi">4</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">if</span> <span class="mi">8</span><span class="o">%</span><span class="mi">4</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"8 is divisible by 4"</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"8 is divisible by 4"</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -105,6 +111,7 @@ branches.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">if</span> <span class="nx">num</span> <span class="o">:=</span> <span class="mi">9</span><span class="p">;</span> <span class="nx">num</span> <span class="p"><</span> <span class="mi">0</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">if</span> <span class="nx">num</span> <span class="o">:=</span> <span class="mi">9</span><span class="p">;</span> <span class="nx">num</span> <span class="p"><</span> <span class="mi">0</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">num</span><span class="p">,</span> <span class="s">"is negative"</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">num</span><span class="p">,</span> <span class="s">"is negative"</span><span class="p">)</span>
|
||||||
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="nx">num</span> <span class="p"><</span> <span class="mi">10</span> <span class="p">{</span>
|
<span class="p">}</span> <span class="k">else</span> <span class="k">if</span> <span class="nx">num</span> <span class="p"><</span> <span class="mi">10</span> <span class="p">{</span>
|
||||||
@ -125,6 +132,7 @@ in Go, but that the brackets are required.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -138,6 +146,7 @@ in Go, but that the brackets are required.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run <span class="k">if</span>-else.go
|
<div class="highlight"><pre><span class="gp">$</span> go run <span class="k">if</span>-else.go
|
||||||
<span class="go">7 is odd</span>
|
<span class="go">7 is odd</span>
|
||||||
<span class="go">8 is divisible by 4</span>
|
<span class="go">8 is divisible by 4</span>
|
||||||
@ -155,6 +164,7 @@ for basic conditions.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -30,6 +30,7 @@ signatures.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -39,6 +40,7 @@ signatures.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/vx8bwC-Bmq"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -50,6 +52,7 @@ signatures.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
<span class="kn">import</span> <span class="s">"math"</span>
|
<span class="kn">import</span> <span class="s">"math"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -63,6 +66,7 @@ signatures.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">geometry</span> <span class="kd">interface</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">geometry</span> <span class="kd">interface</span> <span class="p">{</span>
|
||||||
<span class="nx">area</span><span class="p">()</span> <span class="kt">float64</span>
|
<span class="nx">area</span><span class="p">()</span> <span class="kt">float64</span>
|
||||||
<span class="nx">perim</span><span class="p">()</span> <span class="kt">float64</span>
|
<span class="nx">perim</span><span class="p">()</span> <span class="kt">float64</span>
|
||||||
@ -79,6 +83,7 @@ signatures.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">square</span> <span class="kd">struct</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">square</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||||
<span class="nx">width</span><span class="p">,</span> <span class="nx">height</span> <span class="kt">float64</span>
|
<span class="nx">width</span><span class="p">,</span> <span class="nx">height</span> <span class="kt">float64</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -98,6 +103,7 @@ implement <code>geometry</code> on <code>square</code>s.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">s</span> <span class="nx">square</span><span class="p">)</span> <span class="nx">area</span><span class="p">()</span> <span class="kt">float64</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">s</span> <span class="nx">square</span><span class="p">)</span> <span class="nx">area</span><span class="p">()</span> <span class="kt">float64</span> <span class="p">{</span>
|
||||||
<span class="k">return</span> <span class="nx">s</span><span class="p">.</span><span class="nx">width</span> <span class="o">*</span> <span class="nx">s</span><span class="p">.</span><span class="nx">height</span>
|
<span class="k">return</span> <span class="nx">s</span><span class="p">.</span><span class="nx">width</span> <span class="o">*</span> <span class="nx">s</span><span class="p">.</span><span class="nx">height</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -115,6 +121,7 @@ implement <code>geometry</code> on <code>square</code>s.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">c</span> <span class="nx">circle</span><span class="p">)</span> <span class="nx">area</span><span class="p">()</span> <span class="kt">float64</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">c</span> <span class="nx">circle</span><span class="p">)</span> <span class="nx">area</span><span class="p">()</span> <span class="kt">float64</span> <span class="p">{</span>
|
||||||
<span class="k">return</span> <span class="nx">math</span><span class="p">.</span><span class="nx">Pi</span> <span class="o">*</span> <span class="nx">c</span><span class="p">.</span><span class="nx">radius</span> <span class="o">*</span> <span class="nx">c</span><span class="p">.</span><span class="nx">radius</span>
|
<span class="k">return</span> <span class="nx">math</span><span class="p">.</span><span class="nx">Pi</span> <span class="o">*</span> <span class="nx">c</span><span class="p">.</span><span class="nx">radius</span> <span class="o">*</span> <span class="nx">c</span><span class="p">.</span><span class="nx">radius</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -135,6 +142,7 @@ to work on any <code>geometry</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">measure</span><span class="p">(</span><span class="nx">g</span> <span class="nx">geometry</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">measure</span><span class="p">(</span><span class="nx">g</span> <span class="nx">geometry</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">g</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">g</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">g</span><span class="p">.</span><span class="nx">area</span><span class="p">())</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">g</span><span class="p">.</span><span class="nx">area</span><span class="p">())</span>
|
||||||
@ -150,6 +158,7 @@ to work on any <code>geometry</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
<span class="nx">s</span> <span class="o">:=</span> <span class="nx">square</span><span class="p">{</span><span class="nx">width</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="nx">height</span><span class="p">:</span> <span class="mi">4</span><span class="p">}</span>
|
<span class="nx">s</span> <span class="o">:=</span> <span class="nx">square</span><span class="p">{</span><span class="nx">width</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="nx">height</span><span class="p">:</span> <span class="mi">4</span><span class="p">}</span>
|
||||||
<span class="nx">c</span> <span class="o">:=</span> <span class="nx">circle</span><span class="p">{</span><span class="nx">radius</span><span class="p">:</span> <span class="mi">5</span><span class="p">}</span>
|
<span class="nx">c</span> <span class="o">:=</span> <span class="nx">circle</span><span class="p">{</span><span class="nx">radius</span><span class="p">:</span> <span class="mi">5</span><span class="p">}</span>
|
||||||
@ -167,6 +176,7 @@ these structs as arguments to measure.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">measure</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">measure</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
||||||
<span class="nx">measure</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span>
|
<span class="nx">measure</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -184,6 +194,7 @@ these structs as arguments to measure.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run interfaces.go
|
<div class="highlight"><pre><span class="gp">$</span> go run interfaces.go
|
||||||
<span class="go">{3 4}</span>
|
<span class="go">{3 4}</span>
|
||||||
<span class="go">12</span>
|
<span class="go">12</span>
|
||||||
@ -203,6 +214,7 @@ these structs as arguments to measure.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
22
public/json
22
public/json
@ -31,6 +31,7 @@ data types.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -40,6 +41,7 @@ data types.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/4L2wMVv7tW"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -51,6 +53,7 @@ data types.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"encoding/json"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"encoding/json"</span>
|
||||||
<span class="kn">import</span> <span class="s">"fmt"</span>
|
<span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
<span class="kn">import</span> <span class="s">"os"</span>
|
<span class="kn">import</span> <span class="s">"os"</span>
|
||||||
@ -66,6 +69,7 @@ decoding of custom types below.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">Response1</span> <span class="kd">struct</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">Response1</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||||
<span class="nx">Page</span> <span class="kt">int</span>
|
<span class="nx">Page</span> <span class="kt">int</span>
|
||||||
<span class="nx">Fruits</span> <span class="p">[]</span><span class="kt">string</span>
|
<span class="nx">Fruits</span> <span class="p">[]</span><span class="kt">string</span>
|
||||||
@ -84,6 +88,7 @@ decoding of custom types below.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -98,6 +103,7 @@ values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">bolB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">bolB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">bolB</span><span class="p">))</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">bolB</span><span class="p">))</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -110,6 +116,7 @@ values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">intB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">intB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">intB</span><span class="p">))</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">intB</span><span class="p">))</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -122,6 +129,7 @@ values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fltB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="mf">2.34</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">fltB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="mf">2.34</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">fltB</span><span class="p">))</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">fltB</span><span class="p">))</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -134,6 +142,7 @@ values.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">strB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="s">"gopher"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">strB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="s">"gopher"</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">strB</span><span class="p">))</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">strB</span><span class="p">))</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -148,6 +157,7 @@ to JSON arrays and objects as you’d expect.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">slcD</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"apple"</span><span class="p">,</span> <span class="s">"peach"</span><span class="p">,</span> <span class="s">"pear"</span><span class="p">}</span>
|
<div class="highlight"><pre> <span class="nx">slcD</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"apple"</span><span class="p">,</span> <span class="s">"peach"</span><span class="p">,</span> <span class="s">"pear"</span><span class="p">}</span>
|
||||||
<span class="nx">slcB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="nx">slcD</span><span class="p">)</span>
|
<span class="nx">slcB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="nx">slcD</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">slcB</span><span class="p">))</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">slcB</span><span class="p">))</span>
|
||||||
@ -161,6 +171,7 @@ to JSON arrays and objects as you’d expect.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">mapD</span> <span class="o">:=</span> <span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="s">"apple"</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="s">"lettuce"</span><span class="p">:</span> <span class="mi">7</span><span class="p">}</span>
|
<div class="highlight"><pre> <span class="nx">mapD</span> <span class="o">:=</span> <span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="s">"apple"</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="s">"lettuce"</span><span class="p">:</span> <span class="mi">7</span><span class="p">}</span>
|
||||||
<span class="nx">mapB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="nx">mapD</span><span class="p">)</span>
|
<span class="nx">mapB</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Marshal</span><span class="p">(</span><span class="nx">mapD</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">mapB</span><span class="p">))</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">mapB</span><span class="p">))</span>
|
||||||
@ -178,6 +189,7 @@ use those names as the JSON keys.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">res1D</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Response1</span><span class="p">{</span>
|
<div class="highlight"><pre> <span class="nx">res1D</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Response1</span><span class="p">{</span>
|
||||||
<span class="nx">Page</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
<span class="nx">Page</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
||||||
<span class="nx">Fruits</span><span class="p">:</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"apple"</span><span class="p">,</span> <span class="s">"peach"</span><span class="p">,</span> <span class="s">"pear"</span><span class="p">}}</span>
|
<span class="nx">Fruits</span><span class="p">:</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"apple"</span><span class="p">,</span> <span class="s">"peach"</span><span class="p">,</span> <span class="s">"pear"</span><span class="p">}}</span>
|
||||||
@ -197,6 +209,7 @@ of such tags.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">res2D</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Response2</span><span class="p">{</span>
|
<div class="highlight"><pre> <span class="nx">res2D</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Response2</span><span class="p">{</span>
|
||||||
<span class="nx">Page</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
<span class="nx">Page</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span>
|
||||||
<span class="nx">Fruits</span><span class="p">:</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"apple"</span><span class="p">,</span> <span class="s">"peach"</span><span class="p">,</span> <span class="s">"pear"</span><span class="p">}}</span>
|
<span class="nx">Fruits</span><span class="p">:</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"apple"</span><span class="p">,</span> <span class="s">"peach"</span><span class="p">,</span> <span class="s">"pear"</span><span class="p">}}</span>
|
||||||
@ -215,6 +228,7 @@ structure.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">byt</span> <span class="o">:=</span> <span class="p">[]</span><span class="nb">byte</span><span class="p">(</span><span class="s">`{"num":6.0,"strs":["a","b"]}`</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">byt</span> <span class="o">:=</span> <span class="p">[]</span><span class="nb">byte</span><span class="p">(</span><span class="s">`{"num":6.0,"strs":["a","b"]}`</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -230,6 +244,7 @@ to arbitrary data types.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">dat</span> <span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kd">interface</span><span class="p">{}</span>
|
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">dat</span> <span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kd">interface</span><span class="p">{}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -243,6 +258,7 @@ associated errors.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Unmarshal</span><span class="p">(</span><span class="nx">byt</span><span class="p">,</span> <span class="o">&</span><span class="nx">dat</span><span class="p">);</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">Unmarshal</span><span class="p">(</span><span class="nx">byt</span><span class="p">,</span> <span class="o">&</span><span class="nx">dat</span><span class="p">);</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
||||||
<span class="nb">panic</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
<span class="nb">panic</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -261,6 +277,7 @@ the expected <code>float64</code> type.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">num</span> <span class="o">:=</span> <span class="nx">dat</span><span class="p">[</span><span class="s">"num"</span><span class="p">].(</span><span class="kt">float64</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">num</span> <span class="o">:=</span> <span class="nx">dat</span><span class="p">[</span><span class="s">"num"</span><span class="p">].(</span><span class="kt">float64</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">num</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">num</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -275,6 +292,7 @@ casts.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">strs</span> <span class="o">:=</span> <span class="nx">dat</span><span class="p">[</span><span class="s">"strs"</span><span class="p">].([]</span><span class="kd">interface</span><span class="p">{})</span>
|
<div class="highlight"><pre> <span class="nx">strs</span> <span class="o">:=</span> <span class="nx">dat</span><span class="p">[</span><span class="s">"strs"</span><span class="p">].([]</span><span class="kd">interface</span><span class="p">{})</span>
|
||||||
<span class="nx">str1</span> <span class="o">:=</span> <span class="nx">strs</span><span class="p">[</span><span class="mi">0</span><span class="p">].(</span><span class="kt">string</span><span class="p">)</span>
|
<span class="nx">str1</span> <span class="o">:=</span> <span class="nx">strs</span><span class="p">[</span><span class="mi">0</span><span class="p">].(</span><span class="kt">string</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">str1</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">str1</span><span class="p">)</span>
|
||||||
@ -293,6 +311,7 @@ data.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">str</span> <span class="o">:=</span> <span class="s">`{"page": 1, "fruits": ["apple", "peach"]}`</span>
|
<div class="highlight"><pre> <span class="nx">str</span> <span class="o">:=</span> <span class="s">`{"page": 1, "fruits": ["apple", "peach"]}`</span>
|
||||||
<span class="nx">res</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Response2</span><span class="p">{}</span>
|
<span class="nx">res</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Response2</span><span class="p">{}</span>
|
||||||
<span class="nx">json</span><span class="p">.</span><span class="nx">Unmarshal</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="nx">str</span><span class="p">),</span> <span class="o">&</span><span class="nx">res</span><span class="p">)</span>
|
<span class="nx">json</span><span class="p">.</span><span class="nx">Unmarshal</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="nx">str</span><span class="p">),</span> <span class="o">&</span><span class="nx">res</span><span class="p">)</span>
|
||||||
@ -313,6 +332,7 @@ stream JSON encodings directly to <code>os.Writer</code>s like
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">enc</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">NewEncoder</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stdout</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">enc</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nx">NewEncoder</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stdout</span><span class="p">)</span>
|
||||||
<span class="nx">d</span> <span class="o">:=</span> <span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="s">"apple"</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="s">"lettuce"</span><span class="p">:</span> <span class="mi">7</span><span class="p">}</span>
|
<span class="nx">d</span> <span class="o">:=</span> <span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="s">"apple"</span><span class="p">:</span> <span class="mi">5</span><span class="p">,</span> <span class="s">"lettuce"</span><span class="p">:</span> <span class="mi">7</span><span class="p">}</span>
|
||||||
<span class="nx">enc</span><span class="p">.</span><span class="nx">Encode</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span>
|
<span class="nx">enc</span><span class="p">.</span><span class="nx">Encode</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span>
|
||||||
@ -331,6 +351,7 @@ stream JSON encodings directly to <code>os.Writer</code>s like
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run json.go
|
<div class="highlight"><pre><span class="gp">$</span> go run json.go
|
||||||
<span class="go">true</span>
|
<span class="go">true</span>
|
||||||
<span class="go">1</span>
|
<span class="go">1</span>
|
||||||
@ -360,6 +381,7 @@ for more.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -32,6 +32,7 @@ line filters.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -44,6 +45,7 @@ pattern to write your own Go line filters.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/OSS71nSpkV"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -55,6 +57,7 @@ pattern to write your own Go line filters.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||||
<span class="s">"bufio"</span>
|
<span class="s">"bufio"</span>
|
||||||
<span class="s">"fmt"</span>
|
<span class="s">"fmt"</span>
|
||||||
@ -72,6 +75,7 @@ pattern to write your own Go line filters.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -86,6 +90,7 @@ that we’ll use to read input line-by-line.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">rdr</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nx">NewReader</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stdin</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">rdr</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nx">NewReader</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stdin</span><span class="p">)</span>
|
||||||
<span class="nx">out</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Stdout</span>
|
<span class="nx">out</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Stdout</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -102,6 +107,7 @@ successive input lines.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">for</span> <span class="p">{</span>
|
<div class="highlight"><pre> <span class="k">for</span> <span class="p">{</span>
|
||||||
<span class="k">switch</span> <span class="nx">line</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">rdr</span><span class="p">.</span><span class="nx">ReadString</span><span class="p">(</span><span class="sc">'\n'</span><span class="p">);</span> <span class="nx">err</span> <span class="p">{</span>
|
<span class="k">switch</span> <span class="nx">line</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">rdr</span><span class="p">.</span><span class="nx">ReadString</span><span class="p">(</span><span class="sc">'\n'</span><span class="p">);</span> <span class="nx">err</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -117,6 +123,7 @@ error on this write as we do on the read.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">case</span> <span class="kc">nil</span><span class="p">:</span>
|
<div class="highlight"><pre> <span class="k">case</span> <span class="kc">nil</span><span class="p">:</span>
|
||||||
<span class="nx">ucl</span> <span class="o">:=</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">ToUpper</span><span class="p">(</span><span class="nx">line</span><span class="p">)</span>
|
<span class="nx">ucl</span> <span class="o">:=</span> <span class="nx">strings</span><span class="p">.</span><span class="nx">ToUpper</span><span class="p">(</span><span class="nx">line</span><span class="p">)</span>
|
||||||
<span class="k">if</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">out</span><span class="p">.</span><span class="nx">WriteString</span><span class="p">(</span><span class="nx">ucl</span><span class="p">);</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
<span class="k">if</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">out</span><span class="p">.</span><span class="nx">WriteString</span><span class="p">(</span><span class="nx">ucl</span><span class="p">);</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
||||||
@ -135,6 +142,7 @@ end of input, so exit gracefully in that case.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">case</span> <span class="nx">io</span><span class="p">.</span><span class="nx">EOF</span><span class="p">:</span>
|
<div class="highlight"><pre> <span class="k">case</span> <span class="nx">io</span><span class="p">.</span><span class="nx">EOF</span><span class="p">:</span>
|
||||||
<span class="nx">os</span><span class="p">.</span><span class="nx">Exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
<span class="nx">os</span><span class="p">.</span><span class="nx">Exit</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -149,6 +157,7 @@ error and exit with non-zero status.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="k">default</span><span class="p">:</span>
|
<div class="highlight"><pre> <span class="k">default</span><span class="p">:</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="s">"error:"</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Fprintln</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stderr</span><span class="p">,</span> <span class="s">"error:"</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
|
||||||
<span class="nx">os</span><span class="p">.</span><span class="nx">Exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
<span class="nx">os</span><span class="p">.</span><span class="nx">Exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||||
@ -171,6 +180,7 @@ lowercase lines.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> <span class="nb">echo</span> <span class="s1">'hello'</span> > /tmp/lines
|
<div class="highlight"><pre><span class="gp">$</span> <span class="nb">echo</span> <span class="s1">'hello'</span> > /tmp/lines
|
||||||
<span class="gp">$</span> <span class="nb">echo</span> <span class="s1">'filter'</span> >> /tmp/lines
|
<span class="gp">$</span> <span class="nb">echo</span> <span class="s1">'filter'</span> >> /tmp/lines
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -184,6 +194,7 @@ lowercase lines.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> cat /tmp/lines | go run line-filters.go
|
<div class="highlight"><pre><span class="gp">$</span> cat /tmp/lines | go run line-filters.go
|
||||||
<span class="go">HELLO</span>
|
<span class="go">HELLO</span>
|
||||||
<span class="go">FILTER</span>
|
<span class="go">FILTER</span>
|
||||||
|
13
public/maps
13
public/maps
@ -30,6 +30,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -39,6 +40,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/D-F9YN_V8r"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -50,6 +52,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -61,6 +64,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -74,6 +78,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">m</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kt">int</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">m</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kt">int</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -87,6 +92,7 @@ syntax.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">m</span><span class="p">[</span><span class="s">"k1"</span><span class="p">]</span> <span class="p">=</span> <span class="mi">7</span>
|
<div class="highlight"><pre> <span class="nx">m</span><span class="p">[</span><span class="s">"k1"</span><span class="p">]</span> <span class="p">=</span> <span class="mi">7</span>
|
||||||
<span class="nx">m</span><span class="p">[</span><span class="s">"k2"</span><span class="p">]</span> <span class="p">=</span> <span class="mi">13</span>
|
<span class="nx">m</span><span class="p">[</span><span class="s">"k2"</span><span class="p">]</span> <span class="p">=</span> <span class="mi">13</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -101,6 +107,7 @@ its key/value pairs.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"map:"</span><span class="p">,</span> <span class="nx">m</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"map:"</span><span class="p">,</span> <span class="nx">m</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -113,6 +120,7 @@ its key/value pairs.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">v1</span> <span class="o">:=</span> <span class="nx">m</span><span class="p">[</span><span class="s">"k1"</span><span class="p">]</span>
|
<div class="highlight"><pre> <span class="nx">v1</span> <span class="o">:=</span> <span class="nx">m</span><span class="p">[</span><span class="s">"k1"</span><span class="p">]</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"v1: "</span><span class="p">,</span> <span class="nx">v1</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"v1: "</span><span class="p">,</span> <span class="nx">v1</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -127,6 +135,7 @@ pairs when called on a map.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"len:"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="nx">m</span><span class="p">))</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"len:"</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="nx">m</span><span class="p">))</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -140,6 +149,7 @@ a map.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nb">delete</span><span class="p">(</span><span class="nx">m</span><span class="p">,</span> <span class="s">"k2"</span><span class="p">)</span>
|
<div class="highlight"><pre> <span class="nb">delete</span><span class="p">(</span><span class="nx">m</span><span class="p">,</span> <span class="s">"k2"</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"map:"</span><span class="p">,</span> <span class="nx">m</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"map:"</span><span class="p">,</span> <span class="nx">m</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -157,6 +167,7 @@ like <code>0</code> or <code>""</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">_</span><span class="p">,</span> <span class="nx">prs</span> <span class="o">:=</span> <span class="nx">m</span><span class="p">[</span><span class="s">"k2"</span><span class="p">]</span>
|
<div class="highlight"><pre> <span class="nx">_</span><span class="p">,</span> <span class="nx">prs</span> <span class="o">:=</span> <span class="nx">m</span><span class="p">[</span><span class="s">"k2"</span><span class="p">]</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"prs:"</span><span class="p">,</span> <span class="nx">prs</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"prs:"</span><span class="p">,</span> <span class="nx">prs</span><span class="p">)</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -171,6 +182,7 @@ the same line with this syntax.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">n</span> <span class="o">:=</span> <span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="s">"foo"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s">"bar"</span><span class="p">:</span> <span class="mi">2</span><span class="p">}</span>
|
<div class="highlight"><pre> <span class="nx">n</span> <span class="o">:=</span> <span class="kd">map</span><span class="p">[</span><span class="kt">string</span><span class="p">]</span><span class="kt">int</span><span class="p">{</span><span class="s">"foo"</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s">"bar"</span><span class="p">:</span> <span class="mi">2</span><span class="p">}</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"map:"</span><span class="p">,</span> <span class="nx">n</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"map:"</span><span class="p">,</span> <span class="nx">n</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -190,6 +202,7 @@ printed with <code>fmt.Println</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run maps.go
|
<div class="highlight"><pre><span class="gp">$</span> go run maps.go
|
||||||
<span class="go">map: map[k1:7 k2:13]</span>
|
<span class="go">map: map[k1:7 k2:13]</span>
|
||||||
<span class="go">v1: 7</span>
|
<span class="go">v1: 7</span>
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -38,6 +39,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/254m_9Yjwa"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -49,6 +51,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -60,6 +63,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">rect</span> <span class="kd">struct</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">rect</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||||
<span class="nx">width</span><span class="p">,</span> <span class="nx">height</span> <span class="kt">int</span>
|
<span class="nx">width</span><span class="p">,</span> <span class="nx">height</span> <span class="kt">int</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -74,6 +78,7 @@
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">r</span> <span class="o">*</span><span class="nx">rect</span><span class="p">)</span> <span class="nx">area</span><span class="p">()</span> <span class="kt">int</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">r</span> <span class="o">*</span><span class="nx">rect</span><span class="p">)</span> <span class="nx">area</span><span class="p">()</span> <span class="kt">int</span> <span class="p">{</span>
|
||||||
<span class="k">return</span> <span class="nx">r</span><span class="p">.</span><span class="nx">width</span> <span class="o">*</span> <span class="nx">r</span><span class="p">.</span><span class="nx">height</span>
|
<span class="k">return</span> <span class="nx">r</span><span class="p">.</span><span class="nx">width</span> <span class="o">*</span> <span class="nx">r</span><span class="p">.</span><span class="nx">height</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -89,6 +94,7 @@ receiver types. Here’s an example of a value receiver.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">r</span> <span class="nx">rect</span><span class="p">)</span> <span class="nx">perim</span><span class="p">()</span> <span class="kt">int</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">r</span> <span class="nx">rect</span><span class="p">)</span> <span class="nx">perim</span><span class="p">()</span> <span class="kt">int</span> <span class="p">{</span>
|
||||||
<span class="k">return</span> <span class="mi">2</span><span class="o">*</span><span class="nx">r</span><span class="p">.</span><span class="nx">width</span> <span class="o">+</span> <span class="mi">2</span><span class="o">*</span><span class="nx">r</span><span class="p">.</span><span class="nx">height</span>
|
<span class="k">return</span> <span class="mi">2</span><span class="o">*</span><span class="nx">r</span><span class="p">.</span><span class="nx">width</span> <span class="o">+</span> <span class="mi">2</span><span class="o">*</span><span class="nx">r</span><span class="p">.</span><span class="nx">height</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -102,6 +108,7 @@ receiver types. Here’s an example of a value receiver.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
<span class="nx">r</span> <span class="o">:=</span> <span class="nx">rect</span><span class="p">{</span><span class="nx">width</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span> <span class="nx">height</span><span class="p">:</span> <span class="mi">5</span><span class="p">}</span>
|
<span class="nx">r</span> <span class="o">:=</span> <span class="nx">rect</span><span class="p">{</span><span class="nx">width</span><span class="p">:</span> <span class="mi">10</span><span class="p">,</span> <span class="nx">height</span><span class="p">:</span> <span class="mi">5</span><span class="p">}</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -115,6 +122,7 @@ receiver types. Here’s an example of a value receiver.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"area: "</span><span class="p">,</span> <span class="nx">r</span><span class="p">.</span><span class="nx">area</span><span class="p">())</span>
|
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"area: "</span><span class="p">,</span> <span class="nx">r</span><span class="p">.</span><span class="nx">area</span><span class="p">())</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"perim:"</span><span class="p">,</span> <span class="nx">r</span><span class="p">.</span><span class="nx">perim</span><span class="p">())</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"perim:"</span><span class="p">,</span> <span class="nx">r</span><span class="p">.</span><span class="nx">perim</span><span class="p">())</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
@ -132,6 +140,7 @@ receiving struct.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">rp</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">r</span>
|
<div class="highlight"><pre> <span class="nx">rp</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">r</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"area: "</span><span class="p">,</span> <span class="nx">rp</span><span class="p">.</span><span class="nx">area</span><span class="p">())</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"area: "</span><span class="p">,</span> <span class="nx">rp</span><span class="p">.</span><span class="nx">area</span><span class="p">())</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"perim:"</span><span class="p">,</span> <span class="nx">rp</span><span class="p">.</span><span class="nx">perim</span><span class="p">())</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"perim:"</span><span class="p">,</span> <span class="nx">rp</span><span class="p">.</span><span class="nx">perim</span><span class="p">())</span>
|
||||||
@ -150,6 +159,7 @@ receiving struct.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run methods.go
|
<div class="highlight"><pre><span class="gp">$</span> go run methods.go
|
||||||
<span class="go">area: 50</span>
|
<span class="go">area: 50</span>
|
||||||
<span class="go">perim: 30</span>
|
<span class="go">perim: 30</span>
|
||||||
@ -167,6 +177,7 @@ naming related sets of methods: interfaces.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -31,6 +31,7 @@ to return both result and error values from a function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty leading">
|
<td class="code empty leading">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -40,6 +41,7 @@ to return both result and error values from a function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
<a href="http://play.golang.org/p/LrDt1Wah0M"><img title="Run code" src="play.png" class="run" /></a>
|
||||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -51,6 +53,7 @@ to return both result and error values from a function.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -64,6 +67,7 @@ the function returns 2 <code>int</code>s.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">vals</span><span class="p">()</span> <span class="p">(</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">vals</span><span class="p">()</span> <span class="p">(</span><span class="kt">int</span><span class="p">,</span> <span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
||||||
<span class="k">return</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">7</span>
|
<span class="k">return</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">7</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -77,6 +81,7 @@ the function returns 2 <code>int</code>s.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">main</span><span class="p">()</span> <span class="p">{</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
|
||||||
@ -90,6 +95,7 @@ call with <em>multiple assignment</em>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">a</span><span class="p">,</span> <span class="nx">b</span> <span class="o">:=</span> <span class="nx">vals</span><span class="p">()</span>
|
<div class="highlight"><pre> <span class="nx">a</span><span class="p">,</span> <span class="nx">b</span> <span class="o">:=</span> <span class="nx">vals</span><span class="p">()</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">b</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">b</span><span class="p">)</span>
|
||||||
@ -105,6 +111,7 @@ use the blank identifier <code>_</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code">
|
<td class="code">
|
||||||
|
|
||||||
<div class="highlight"><pre> <span class="nx">_</span><span class="p">,</span> <span class="nx">c</span> <span class="o">:=</span> <span class="nx">vals</span><span class="p">()</span>
|
<div class="highlight"><pre> <span class="nx">_</span><span class="p">,</span> <span class="nx">c</span> <span class="o">:=</span> <span class="nx">vals</span><span class="p">()</span>
|
||||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span>
|
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span>
|
||||||
<span class="p">}</span>
|
<span class="p">}</span>
|
||||||
@ -122,6 +129,7 @@ use the blank identifier <code>_</code>.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code leading">
|
<td class="code leading">
|
||||||
|
|
||||||
<div class="highlight"><pre><span class="gp">$</span> go run multiple-return-values.go
|
<div class="highlight"><pre><span class="gp">$</span> go run multiple-return-values.go
|
||||||
<span class="go">3</span>
|
<span class="go">3</span>
|
||||||
<span class="go">7</span>
|
<span class="go">7</span>
|
||||||
@ -138,6 +146,7 @@ feature of Go functions; we’ll look at this next.</p>
|
|||||||
|
|
||||||
</td>
|
</td>
|
||||||
<td class="code empty">
|
<td class="code empty">
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user