Use chroma (#346)
Use Chroma for syntax highlighting and remove vendor'd Pygments
This commit is contained in:
parent
81ab859a7b
commit
58e66a8103
@ -4,9 +4,6 @@ go:
|
||||
- 1.16
|
||||
|
||||
before_install:
|
||||
# We need Python to run pygmentize for generating HTML.
|
||||
- sudo apt-get update
|
||||
- sudo apt-get install python
|
||||
|
||||
install:
|
||||
- go mod download
|
||||
|
@ -9,8 +9,8 @@ The Go by Example site is built by extracting code and
|
||||
comments from source files in `examples` and rendering
|
||||
them via the `templates` into a static `public`
|
||||
directory. The programs implementing this build process
|
||||
are in `tools`, along with some vendor'd dependencies
|
||||
in `vendor` and `third_party`.
|
||||
are in `tools`, along with dependencies specified in
|
||||
the `go.mod`file.
|
||||
|
||||
The built `public` directory can be served by any
|
||||
static content system. The production site uses S3 and
|
||||
@ -20,7 +20,7 @@ CloudFront, for example.
|
||||
|
||||
[](https://travis-ci.com/mmcgrana/gobyexample)
|
||||
|
||||
To build the site you'll need Go and Python installed. Run:
|
||||
To build the site you'll need Go installed. Run:
|
||||
|
||||
```console
|
||||
$ tools/build
|
||||
|
2
go.mod
2
go.mod
@ -3,6 +3,6 @@ module github.com/mmcgrana/gobyexample
|
||||
go 1.15
|
||||
|
||||
require (
|
||||
github.com/russross/blackfriday v1.6.0 // indirect
|
||||
github.com/alecthomas/chroma v0.8.2
|
||||
github.com/russross/blackfriday/v2 v2.1.0
|
||||
)
|
||||
|
35
go.sum
35
go.sum
@ -1,4 +1,35 @@
|
||||
github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww=
|
||||
github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY=
|
||||
github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38 h1:smF2tmSOzy2Mm+0dGI2AIUHY+w0BUc+4tn40djz7+6U=
|
||||
github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI=
|
||||
github.com/alecthomas/chroma v0.8.2 h1:x3zkuE2lUk/RIekyAJ3XRqSCP4zwWDfcw/YJCuCAACg=
|
||||
github.com/alecthomas/chroma v0.8.2/go.mod h1:sko8vR34/90zvl5QdcUdvzL3J8NKjAUx9va9jPuFNoM=
|
||||
github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721 h1:JHZL0hZKJ1VENNfmXvHbgYlbUOvpzYzvy2aZU5gXVeo=
|
||||
github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0=
|
||||
github.com/alecthomas/kong v0.2.4/go.mod h1:kQOmtJgV+Lb4aj+I2LEn40cbtawdWJ9Y8QLq+lElKxE=
|
||||
github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897 h1:p9Sln00KOTlrYkxI1zYWl1QLnEqAqEARBEYa8FQnQcY=
|
||||
github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ=
|
||||
github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ=
|
||||
github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk=
|
||||
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/dlclark/regexp2 v1.2.0 h1:8sAhBGEM0dRWogWqWyQeIJnxjWO6oIjl8FKqREDsGfk=
|
||||
github.com/dlclark/regexp2 v1.2.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
|
||||
github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
|
||||
github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
|
||||
github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/sergi/go-diff v1.0.0 h1:Kpca3qRNrduNnOQeazBd0ysaKrUJiIuISHxogkT9RPQ=
|
||||
github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
|
||||
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||
github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
|
||||
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
|
||||
golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20200413165638-669c56c373c4 h1:opSr2sbRXk5X5/givKrrKj9HXxFpW2sdCiP8MJSKLQY=
|
||||
golang.org/x/sys v0.0.0-20200413165638-669c56c373c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
|
72
public/arrays
generated
72
public/arrays
generated
@ -43,9 +43,8 @@ specific length.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/TaahifSGSwU"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,9 +54,8 @@ specific length.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -67,9 +65,8 @@ specific length.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -83,10 +80,10 @@ zero-valued, which for <code>int</code>s means <code>0</code>s.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -99,11 +96,11 @@ zero-valued, which for <code>int</code>s means <code>0</code>s.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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="nf">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="nf">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>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -114,9 +111,9 @@ zero-valued, which for <code>int</code>s means <code>0</code>s.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -128,10 +125,10 @@ in one line.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -144,16 +141,16 @@ structures.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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">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="nx">twoD</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">j</span><span class="p">]</span> <span class="p">=</span> <span class="nx">i</span> <span class="o">+</span> <span class="nx">j</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">"2d: "</span><span class="p">,</span> <span class="nx">twoD</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"2d: "</span><span class="p">,</span> <span class="nx">twoD</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -169,15 +166,14 @@ when printed with <code>fmt.Println</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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">set: [0 0 0 0 100]</span>
|
||||
<span class="go">get: 100</span>
|
||||
<span class="go">len: 5</span>
|
||||
<span class="go">dcl: [1 2 3 4 5]</span>
|
||||
<span class="go">2d: [[0 1 2] [1 2 3]]</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run arrays.go
|
||||
<span class="go">emp: [0 0 0 0 0]
|
||||
</span><span class="go">set: [0 0 0 0 100]
|
||||
</span><span class="go">get: 100
|
||||
</span><span class="go">len: 5
|
||||
</span><span class="go">dcl: [1 2 3 4 5]
|
||||
</span><span class="go">2d: [[0 1 2] [1 2 3]]</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
72
public/atomic-counters
generated
72
public/atomic-counters
generated
@ -47,9 +47,8 @@ counters</em> accessed by multiple goroutines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/j-14agntvEO"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -59,13 +58,12 @@ counters</em> accessed by multiple goroutines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"sync"</span>
|
||||
<span class="s">"sync/atomic"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"sync"</span>
|
||||
<span class="s">"sync/atomic"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -75,9 +73,8 @@ counters</em> accessed by multiple goroutines.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -89,9 +86,9 @@ counters</em> accessed by multiple goroutines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">ops</span> <span class="kt">uint64</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">ops</span> <span class="kt">uint64</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -103,9 +100,9 @@ to finish their work.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">wg</span> <span class="nx">sync</span><span class="p">.</span><span class="nx">WaitGroup</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">wg</span> <span class="nx">sync</span><span class="p">.</span><span class="nx">WaitGroup</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -117,10 +114,10 @@ counter exactly 1000 times.</p>
|
||||
</td>
|
||||
<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>
|
||||
<span class="nx">wg</span><span class="p">.</span><span class="nx">Add</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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="nx">wg</span><span class="p">.</span><span class="nf">Add</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -134,10 +131,9 @@ address of our <code>ops</code> counter with the
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"> <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="nx">c</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">c</span> <span class="p"><</span> <span class="mi">1000</span><span class="p">;</span> <span class="nx">c</span><span class="o">++</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -147,13 +143,12 @@ address of our <code>ops</code> counter with the
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"> <span class="nx">atomic</span><span class="p">.</span><span class="nf">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>
|
||||
<span class="p">}</span>
|
||||
<span class="nx">wg</span><span class="p">.</span><span class="nx">Done</span><span class="p">()</span>
|
||||
<span class="nx">wg</span><span class="p">.</span><span class="nf">Done</span><span class="p">()</span>
|
||||
<span class="p">}()</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -164,9 +159,9 @@ address of our <code>ops</code> counter with the
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">wg</span><span class="p">.</span><span class="nx">Wait</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">wg</span><span class="p">.</span><span class="nf">Wait</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -181,10 +176,10 @@ also possible, using functions like
|
||||
</td>
|
||||
<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">"ops:"</span><span class="p">,</span> <span class="nx">ops</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"ops:"</span><span class="p">,</span> <span class="nx">ops</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -204,10 +199,9 @@ when running with the <code>-race</code> flag.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run atomic-counters.go
|
||||
<span class="go">ops: 50000</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run atomic-counters.go
|
||||
<span class="go">ops: 50000</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
71
public/base64-encoding
generated
71
public/base64-encoding
generated
@ -43,9 +43,8 @@ encoding/decoding</a>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/S7ff3UgzNlG"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -58,12 +57,12 @@ save us some space below.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="nx">b64</span> <span class="s">"encoding/base64"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<pre class="chroma">
|
||||
<span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="nx">b64</span> <span class="s">"encoding/base64"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -73,9 +72,8 @@ save us some space below.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -86,9 +84,9 @@ save us some space below.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">data</span> <span class="o">:=</span> <span class="s">"abc123!?$*&()'-=@~"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">data</span> <span class="o">:=</span> <span class="s">"abc123!?$*&()'-=@~"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -102,10 +100,10 @@ convert our <code>string</code> to that type.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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="nf">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="nf">Println</span><span class="p">(</span><span class="nx">sEnc</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -118,11 +116,11 @@ well-formed.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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="nf">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="nf">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="nf">Println</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -134,13 +132,13 @@ format.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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">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">uDec</span><span class="p">))</span>
|
||||
<pre class="chroma">
|
||||
<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="nf">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="nf">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="nf">DecodeString</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="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">uDec</span><span class="p">))</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -157,11 +155,10 @@ but they both decode to the original string as desired.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run base64-encoding.go
|
||||
<span class="go">YWJjMTIzIT8kKiYoKSctPUB+</span>
|
||||
<span class="go">abc123!?$*&()'-=@~</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run base64-encoding.go
|
||||
<span class="go">YWJjMTIzIT8kKiYoKSctPUB+
|
||||
</span><span class="go">abc123!?$*&()'-=@~</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -171,10 +168,8 @@ but they both decode to the original string as desired.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="go">YWJjMTIzIT8kKiYoKSctPUB-</span>
|
||||
<span class="go">abc123!?$*&()'-=@~</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="go">YWJjMTIzIT8kKiYoKSctPUB-
|
||||
</span><span class="go">abc123!?$*&()'-=@~</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
45
public/channel-buffering
generated
45
public/channel-buffering
generated
@ -47,9 +47,8 @@ those values.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/3BRCdRnRszb"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -59,9 +58,8 @@ those values.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -71,9 +69,8 @@ those values.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -85,9 +82,9 @@ those values.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -100,10 +97,10 @@ concurrent receive.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -114,11 +111,11 @@ concurrent receive.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">Println</span><span class="p">(</span><span class="o"><-</span><span class="nx">messages</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -132,11 +129,9 @@ concurrent receive.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run channel-buffering.go
|
||||
<span class="go">buffered</span>
|
||||
<span class="go">channel</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run channel-buffering.go
|
||||
<span class="go">buffered
|
||||
</span><span class="go">channel</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
39
public/channel-directions
generated
39
public/channel-directions
generated
@ -45,9 +45,8 @@ the program.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/mjNJDHwUH4R"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,9 +56,8 @@ the program.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -72,11 +70,11 @@ receive on this channel.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -88,12 +86,12 @@ receive on this channel.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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">pongs</span> <span class="o"><-</span> <span class="nx">msg</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -103,15 +101,14 @@ receive on this channel.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">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">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">ping</span><span class="p">(</span><span class="nx">pings</span><span class="p">,</span> <span class="s">"passed message"</span><span class="p">)</span>
|
||||
<span class="nx">pong</span><span class="p">(</span><span class="nx">pings</span><span class="p">,</span> <span class="nx">pongs</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">pongs</span><span class="p">)</span>
|
||||
<span class="nf">ping</span><span class="p">(</span><span class="nx">pings</span><span class="p">,</span> <span class="s">"passed message"</span><span class="p">)</span>
|
||||
<span class="nf">pong</span><span class="p">(</span><span class="nx">pings</span><span class="p">,</span> <span class="nx">pongs</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="o"><-</span><span class="nx">pongs</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -125,10 +122,8 @@ receive on this channel.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run channel-directions.go
|
||||
<span class="go">passed message</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run channel-directions.go
|
||||
<span class="go">passed message</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
57
public/channel-synchronization
generated
57
public/channel-synchronization
generated
@ -46,9 +46,8 @@ you may prefer to use a <a href="waitgroups">WaitGroup</a>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/Nw-1DzIGk5f"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -58,12 +57,11 @@ you may prefer to use a <a href="waitgroups">WaitGroup</a>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -76,12 +74,12 @@ goroutine that this function’s work is done.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"done"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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="nf">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="nf">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">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"done"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -92,10 +90,10 @@ goroutine that this function’s work is done.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">done</span> <span class="o"><-</span> <span class="kc">true</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">done</span> <span class="o"><-</span> <span class="kc">true</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -105,9 +103,8 @@ goroutine that this function’s work is done.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -119,10 +116,10 @@ notify on.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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="nf">worker</span><span class="p">(</span><span class="nx">done</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -134,10 +131,10 @@ worker on the channel.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="o"><-</span><span class="nx">done</span>
|
||||
<pre class="chroma">
|
||||
<span class="o"><-</span><span class="nx">done</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -151,10 +148,8 @@ worker on the channel.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run channel-synchronization.go
|
||||
<span class="go">working...done </span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run channel-synchronization.go
|
||||
<span class="go">working...done </span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
42
public/channels
generated
42
public/channels
generated
@ -45,9 +45,8 @@ goroutine.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/MaLY7AiAkHM"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,9 +56,8 @@ goroutine.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -69,9 +67,8 @@ goroutine.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -83,9 +80,9 @@ Channels are typed by the values they convey.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -98,9 +95,9 @@ channel we made above, from a new goroutine.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -113,11 +110,11 @@ we sent above and print it out.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">Println</span><span class="p">(</span><span class="nx">msg</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -134,10 +131,9 @@ our channel.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run channels.go
|
||||
<span class="go">ping</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run channels.go
|
||||
<span class="go">ping</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
62
public/closing-channels
generated
62
public/closing-channels
generated
@ -44,9 +44,8 @@ completion to the channel’s receivers.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/vCvRjcMq7p3"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,9 +55,8 @@ completion to the channel’s receivers.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -72,11 +70,11 @@ the worker we’ll <code>close</code> the <code>jobs</code> channel.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -93,20 +91,20 @@ all our jobs.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="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="k">if</span> <span class="nx">more</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">"received 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="nf">Println</span><span class="p">(</span><span class="s">"received job"</span><span class="p">,</span> <span class="nx">j</span><span class="p">)</span>
|
||||
<span class="p">}</span> <span class="k">else</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">"received all jobs"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"received all jobs"</span><span class="p">)</span>
|
||||
<span class="nx">done</span> <span class="o"><-</span> <span class="kc">true</span>
|
||||
<span class="k">return</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}()</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -118,14 +116,14 @@ channel, then closes it.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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">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="nf">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="p">}</span>
|
||||
<span class="nb">close</span><span class="p">(</span><span class="nx">jobs</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 all jobs"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"sent all jobs"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -138,10 +136,10 @@ we saw earlier.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="o"><-</span><span class="nx">done</span>
|
||||
<pre class="chroma">
|
||||
<span class="o"><-</span><span class="nx">done</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -155,17 +153,15 @@ we saw earlier.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run closing-channels.go
|
||||
<span class="go">sent job 1</span>
|
||||
<span class="go">received job 1</span>
|
||||
<span class="go">sent job 2</span>
|
||||
<span class="go">received job 2</span>
|
||||
<span class="go">sent job 3</span>
|
||||
<span class="go">received job 3</span>
|
||||
<span class="go">sent all jobs</span>
|
||||
<span class="go">received all jobs</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run closing-channels.go
|
||||
<span class="go">sent job 1
|
||||
</span><span class="go">received job 1
|
||||
</span><span class="go">sent job 2
|
||||
</span><span class="go">received job 2
|
||||
</span><span class="go">sent job 3
|
||||
</span><span class="go">received job 3
|
||||
</span><span class="go">sent all jobs
|
||||
</span><span class="go">received all jobs</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
57
public/closures
generated
57
public/closures
generated
@ -45,9 +45,8 @@ a function inline without having to name it.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/66Lgw9iIIch"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,9 +56,8 @@ a function inline without having to name it.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -73,15 +71,15 @@ form a closure.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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="k">return</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="k">return</span> <span class="nx">i</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -91,9 +89,8 @@ form a closure.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -107,9 +104,9 @@ we call <code>nextInt</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">nextInt</span> <span class="o">:=</span> <span class="nf">intSeq</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -121,11 +118,11 @@ a few times.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">nextInt</span><span class="p">())</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">nextInt</span><span class="p">())</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">nextInt</span><span class="p">())</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -137,11 +134,11 @@ particular function, create and test a new one.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">newInts</span> <span class="o">:=</span> <span class="nf">intSeq</span><span class="p">()</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">newInts</span><span class="p">())</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -155,13 +152,11 @@ particular function, create and test a new one.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run closures.go
|
||||
<span class="go">1</span>
|
||||
<span class="go">2</span>
|
||||
<span class="go">3</span>
|
||||
<span class="go">1</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run closures.go
|
||||
<span class="go">1
|
||||
</span><span class="go">2
|
||||
</span><span class="go">3
|
||||
</span><span class="go">1</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
129
public/collection-functions
generated
129
public/collection-functions
generated
@ -76,9 +76,8 @@ helper function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/uKnePZM91WV"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -88,12 +87,11 @@ helper function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"strings"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"strings"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -105,7 +103,8 @@ helper function.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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">if</span> <span class="nx">v</span> <span class="o">==</span> <span class="nx">t</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nx">i</span>
|
||||
@ -113,8 +112,7 @@ helper function.</p>
|
||||
<span class="p">}</span>
|
||||
<span class="k">return</span> <span class="o">-</span><span class="mi">1</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -126,11 +124,11 @@ slice.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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="nf">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -142,16 +140,16 @@ satisfies the predicate <code>f</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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">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="nf">f</span><span class="p">(</span><span class="nx">v</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="kc">true</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="k">return</span> <span class="kc">false</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -163,16 +161,16 @@ satisfy the predicate <code>f</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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">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="nf">f</span><span class="p">(</span><span class="nx">v</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="kc">false</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="k">return</span> <span class="kc">true</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -184,17 +182,17 @@ slice that satisfy the predicate <code>f</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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="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="nf">f</span><span class="p">(</span><span class="nx">v</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">vsf</span> <span class="p">=</span> <span class="nb">append</span><span class="p">(</span><span class="nx">vsf</span><span class="p">,</span> <span class="nx">v</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="k">return</span> <span class="nx">vsf</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -206,15 +204,15 @@ the function <code>f</code> to each string in the original slice.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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="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="nx">vsm</span><span class="p">[</span><span class="nx">i</span><span class="p">]</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="nx">vsm</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="p">=</span> <span class="nf">f</span><span class="p">(</span><span class="nx">v</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="k">return</span> <span class="nx">vsm</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -224,9 +222,8 @@ the function <code>f</code> to each string in the original slice.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -237,9 +234,9 @@ the function <code>f</code> to each string in the original slice.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -249,9 +246,8 @@ the function <code>f</code> to each string in the original slice.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -261,9 +257,8 @@ the function <code>f</code> to each string in the original slice.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -273,11 +268,10 @@ the function <code>f</code> to each string in the original slice.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">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="nf">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -287,11 +281,10 @@ the function <code>f</code> to each string in the original slice.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">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="nf">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -301,11 +294,10 @@ the function <code>f</code> to each string in the original slice.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">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="nf">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -318,9 +310,9 @@ type.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -330,9 +322,8 @@ type.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="p">}</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -346,15 +337,13 @@ type.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run collection-functions.go
|
||||
<span class="go">2</span>
|
||||
<span class="go">false</span>
|
||||
<span class="go">true</span>
|
||||
<span class="go">false</span>
|
||||
<span class="go">[peach apple pear]</span>
|
||||
<span class="go">[PEACH APPLE PEAR PLUM]</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run collection-functions.go
|
||||
<span class="go">2
|
||||
</span><span class="go">false
|
||||
</span><span class="go">true
|
||||
</span><span class="go">false
|
||||
</span><span class="go">[peach apple pear]
|
||||
</span><span class="go">[PEACH APPLE PEAR PLUM]</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
51
public/command-line-arguments
generated
51
public/command-line-arguments
generated
@ -45,9 +45,8 @@ For example, <code>go run hello.go</code> uses <code>run</code> and
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/oSxtj7v_v1K"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,12 +56,11 @@ For example, <code>go run hello.go</code> uses <code>run</code> and
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -72,9 +70,8 @@ For example, <code>go run hello.go</code> uses <code>run</code> and
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -88,10 +85,10 @@ holds the arguments to the program.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -102,9 +99,9 @@ holds the arguments to the program.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -114,12 +111,11 @@ holds the arguments to the program.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">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="nf">Println</span><span class="p">(</span><span class="nx">arg</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -135,13 +131,12 @@ build a binary with <code>go build</code> first.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go build command-line-arguments.go
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go build command-line-arguments.go
|
||||
<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">[a b c d]</span>
|
||||
<span class="go">c</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="go">[./command-line-arguments a b c d]
|
||||
</span><span class="go">[a b c d]
|
||||
</span><span class="go">c</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
149
public/command-line-flags
generated
149
public/command-line-flags
generated
@ -45,9 +45,8 @@ command-line flag.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/fD0SmjD4GdZ"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -60,12 +59,12 @@ implement our example command-line program.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"flag"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<pre class="chroma">
|
||||
<span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"flag"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -75,9 +74,8 @@ implement our example command-line program.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -93,9 +91,9 @@ we’ll see how to use this pointer below.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">wordPtr</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -107,10 +105,10 @@ similar approach to the <code>word</code> flag.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<span class="nx">numbPtr</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nf">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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -124,10 +122,10 @@ declaration function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -139,9 +137,9 @@ to execute the command-line parsing.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">flag</span><span class="p">.</span><span class="nf">Parse</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -155,14 +153,14 @@ to get the actual option values.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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">"svar:"</span><span class="p">,</span> <span class="nx">svar</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">"tail:"</span><span class="p">,</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">Args</span><span class="p">())</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">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="nf">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="nf">Println</span><span class="p">(</span><span class="s">"svar:"</span><span class="p">,</span> <span class="nx">svar</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"tail:"</span><span class="p">,</span> <span class="nx">flag</span><span class="p">.</span><span class="nf">Args</span><span class="p">())</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -179,9 +177,8 @@ binary directly.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go build command-line-flags.go
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go build command-line-flags.go</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -193,14 +190,13 @@ all flags.</p>
|
||||
</td>
|
||||
<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><span class="m">7</span> -fork -svar<span class="o">=</span>flag
|
||||
<span class="go">word: opt</span>
|
||||
<span class="go">numb: 7</span>
|
||||
<span class="go">fork: true</span>
|
||||
<span class="go">svar: flag</span>
|
||||
<span class="go">tail: []</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> ./command-line-flags -word=opt -numb=7 -fork -svar=flag
|
||||
<span class="go">word: opt
|
||||
</span><span class="go">numb: 7
|
||||
</span><span class="go">fork: true
|
||||
</span><span class="go">svar: flag
|
||||
</span><span class="go">tail: []</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -212,14 +208,13 @@ their default values.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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">numb: 42</span>
|
||||
<span class="go">fork: false</span>
|
||||
<span class="go">svar: bar</span>
|
||||
<span class="go">tail: []</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> ./command-line-flags -word=opt
|
||||
<span class="go">word: opt
|
||||
</span><span class="go">numb: 42
|
||||
</span><span class="go">fork: false
|
||||
</span><span class="go">svar: bar
|
||||
</span><span class="go">tail: []</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -231,12 +226,11 @@ any flags.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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">...</span>
|
||||
<span class="go">tail: [a1 a2 a3]</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> ./command-line-flags -word=opt a1 a2 a3
|
||||
<span class="go">word: opt
|
||||
</span><span class="go">...
|
||||
</span><span class="go">tail: [a1 a2 a3]</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -249,14 +243,13 @@ will be interpreted as positional arguments).</p>
|
||||
</td>
|
||||
<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
|
||||
<span class="go">word: opt</span>
|
||||
<span class="go">numb: 42</span>
|
||||
<span class="go">fork: false</span>
|
||||
<span class="go">svar: bar</span>
|
||||
<span class="go">tail: [a1 a2 a3 -numb=7]</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> ./command-line-flags -word=opt a1 a2 a3 -numb=7
|
||||
<span class="go">word: opt
|
||||
</span><span class="go">numb: 42
|
||||
</span><span class="go">fork: false
|
||||
</span><span class="go">svar: bar
|
||||
</span><span class="go">tail: [a1 a2 a3 -numb=7]</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -268,14 +261,13 @@ generated help text for the command-line program.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> ./command-line-flags -h
|
||||
<span class="go">Usage of ./command-line-flags:</span>
|
||||
<span class="go"> -fork=false: a bool</span>
|
||||
<span class="go"> -numb=42: an int</span>
|
||||
<span class="go"> -svar="bar": a string var</span>
|
||||
<span class="go"> -word="foo": a string</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> ./command-line-flags -h
|
||||
<span class="go">Usage of ./command-line-flags:
|
||||
</span><span class="go"> -fork=false: a bool
|
||||
</span><span class="go"> -numb=42: an int
|
||||
</span><span class="go"> -svar="bar": a string var
|
||||
</span><span class="go"> -word="foo": a string</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -288,12 +280,11 @@ and show the help text again.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<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">Usage of ./command-line-flags:</span>
|
||||
<span class="go">...</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> ./command-line-flags -wat
|
||||
<span class="go">flag provided but not defined: -wat
|
||||
</span><span class="go">Usage of ./command-line-flags:
|
||||
</span><span class="go">...</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
126
public/command-line-subcommands
generated
126
public/command-line-subcommands
generated
@ -47,9 +47,8 @@ subcommands that have their own flags.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/DkvdHKK-XCv"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -59,13 +58,12 @@ subcommands that have their own flags.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"flag"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"flag"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -75,9 +73,8 @@ subcommands that have their own flags.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -90,11 +87,11 @@ for this subcommand.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fooCmd</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">NewFlagSet</span><span class="p">(</span><span class="s">"foo"</span><span class="p">,</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">ExitOnError</span><span class="p">)</span>
|
||||
<span class="nx">fooEnable</span> <span class="o">:=</span> <span class="nx">fooCmd</span><span class="p">.</span><span class="nx">Bool</span><span class="p">(</span><span class="s">"enable"</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="s">"enable"</span><span class="p">)</span>
|
||||
<span class="nx">fooName</span> <span class="o">:=</span> <span class="nx">fooCmd</span><span class="p">.</span><span class="nx">String</span><span class="p">(</span><span class="s">"name"</span><span class="p">,</span> <span class="s">""</span><span class="p">,</span> <span class="s">"name"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fooCmd</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nf">NewFlagSet</span><span class="p">(</span><span class="s">"foo"</span><span class="p">,</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">ExitOnError</span><span class="p">)</span>
|
||||
<span class="nx">fooEnable</span> <span class="o">:=</span> <span class="nx">fooCmd</span><span class="p">.</span><span class="nf">Bool</span><span class="p">(</span><span class="s">"enable"</span><span class="p">,</span> <span class="kc">false</span><span class="p">,</span> <span class="s">"enable"</span><span class="p">)</span>
|
||||
<span class="nx">fooName</span> <span class="o">:=</span> <span class="nx">fooCmd</span><span class="p">.</span><span class="nf">String</span><span class="p">(</span><span class="s">"name"</span><span class="p">,</span> <span class="s">""</span><span class="p">,</span> <span class="s">"name"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -106,10 +103,10 @@ supported flags.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">barCmd</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">NewFlagSet</span><span class="p">(</span><span class="s">"bar"</span><span class="p">,</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">ExitOnError</span><span class="p">)</span>
|
||||
<span class="nx">barLevel</span> <span class="o">:=</span> <span class="nx">barCmd</span><span class="p">.</span><span class="nx">Int</span><span class="p">(</span><span class="s">"level"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"level"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">barCmd</span> <span class="o">:=</span> <span class="nx">flag</span><span class="p">.</span><span class="nf">NewFlagSet</span><span class="p">(</span><span class="s">"bar"</span><span class="p">,</span> <span class="nx">flag</span><span class="p">.</span><span class="nx">ExitOnError</span><span class="p">)</span>
|
||||
<span class="nx">barLevel</span> <span class="o">:=</span> <span class="nx">barCmd</span><span class="p">.</span><span class="nf">Int</span><span class="p">(</span><span class="s">"level"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="s">"level"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -121,12 +118,12 @@ to the program.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Args</span><span class="p">)</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">"expected 'foo' or 'bar' subcommands"</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>
|
||||
<pre class="chroma">
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Args</span><span class="p">)</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="nf">Println</span><span class="p">(</span><span class="s">"expected 'foo' or 'bar' subcommands"</span><span class="p">)</span>
|
||||
<span class="nx">os</span><span class="p">.</span><span class="nf">Exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -137,9 +134,9 @@ to the program.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">switch</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="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="k">switch</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="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -151,24 +148,24 @@ have access to trailing positional arguments.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">case</span> <span class="s">"foo"</span><span class="p">:</span>
|
||||
<span class="nx">fooCmd</span><span class="p">.</span><span class="nx">Parse</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Args</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">"subcommand '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">" enable:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">fooEnable</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">" name:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">fooName</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">" tail:"</span><span class="p">,</span> <span class="nx">fooCmd</span><span class="p">.</span><span class="nx">Args</span><span class="p">())</span>
|
||||
<span class="k">case</span> <span class="s">"bar"</span><span class="p">:</span>
|
||||
<span class="nx">barCmd</span><span class="p">.</span><span class="nx">Parse</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Args</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">"subcommand '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">" level:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">barLevel</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">" tail:"</span><span class="p">,</span> <span class="nx">barCmd</span><span class="p">.</span><span class="nx">Args</span><span class="p">())</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">case</span> <span class="s">"foo"</span><span class="p">:</span>
|
||||
<span class="nx">fooCmd</span><span class="p">.</span><span class="nf">Parse</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Args</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="nf">Println</span><span class="p">(</span><span class="s">"subcommand 'foo'"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">" enable:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">fooEnable</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">" name:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">fooName</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">" tail:"</span><span class="p">,</span> <span class="nx">fooCmd</span><span class="p">.</span><span class="nf">Args</span><span class="p">())</span>
|
||||
<span class="k">case</span> <span class="s">"bar"</span><span class="p">:</span>
|
||||
<span class="nx">barCmd</span><span class="p">.</span><span class="nf">Parse</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Args</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="nf">Println</span><span class="p">(</span><span class="s">"subcommand 'bar'"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">" level:"</span><span class="p">,</span> <span class="o">*</span><span class="nx">barLevel</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">" tail:"</span><span class="p">,</span> <span class="nx">barCmd</span><span class="p">.</span><span class="nf">Args</span><span class="p">())</span>
|
||||
<span class="k">default</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">"expected 'foo' or 'bar' subcommands"</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">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"expected 'foo' or 'bar' subcommands"</span><span class="p">)</span>
|
||||
<span class="nx">os</span><span class="p">.</span><span class="nf">Exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -182,9 +179,7 @@ have access to trailing positional arguments.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go build command-line-subcommands.go
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go build command-line-subcommands.go </pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -195,13 +190,12 @@ have access to trailing positional arguments.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> ./command-line-subcommands foo -enable -name<span class="o">=</span>joe a1 a2
|
||||
<span class="go">subcommand 'foo'</span>
|
||||
<span class="go"> enable: true</span>
|
||||
<span class="go"> name: joe</span>
|
||||
<span class="go"> tail: [a1 a2]</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> ./command-line-subcommands foo -enable -name=joe a1 a2
|
||||
<span class="go">subcommand 'foo'
|
||||
</span><span class="go"> enable: true
|
||||
</span><span class="go"> name: joe
|
||||
</span><span class="go"> tail: [a1 a2]</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -212,12 +206,11 @@ have access to trailing positional arguments.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> ./command-line-subcommands bar -level <span class="m">8</span> a1
|
||||
<span class="go">subcommand 'bar'</span>
|
||||
<span class="go"> level: 8</span>
|
||||
<span class="go"> tail: [a1]</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> ./command-line-subcommands bar -level 8 a1
|
||||
<span class="go">subcommand 'bar'
|
||||
</span><span class="go"> level: 8
|
||||
</span><span class="go"> tail: [a1]</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -228,13 +221,12 @@ have access to trailing positional arguments.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> ./command-line-subcommands bar -enable a1
|
||||
<span class="go">flag provided but not defined: -enable</span>
|
||||
<span class="go">Usage of bar:</span>
|
||||
<span class="go"> -level int</span>
|
||||
<span class="go"> level</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> ./command-line-subcommands bar -enable a1
|
||||
<span class="go">flag provided but not defined: -enable
|
||||
</span><span class="go">Usage of bar:
|
||||
</span><span class="go"> -level int
|
||||
</span><span class="go"> level</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
65
public/constants
generated
65
public/constants
generated
@ -43,9 +43,8 @@ and numeric values.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/Vw-pXSfo9_b"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,12 +54,11 @@ and numeric values.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"math"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"math"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -71,9 +69,9 @@ and numeric values.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -83,10 +81,9 @@ and numeric values.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -98,9 +95,9 @@ statement can.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">const</span> <span class="nx">n</span> <span class="p">=</span> <span class="mi">500000000</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -112,10 +109,10 @@ arbitrary precision.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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="nf">Println</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -127,9 +124,9 @@ one, such as by an explicit conversion.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -143,10 +140,10 @@ assignment or function call. For example, here
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">math</span><span class="p">.</span><span class="nf">Sin</span><span class="p">(</span><span class="nx">n</span><span class="p">))</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -160,13 +157,11 @@ assignment or function call. For example, here
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run constant.go
|
||||
<span class="go">constant</span>
|
||||
<span class="go">6e+11</span>
|
||||
<span class="go">600000000000</span>
|
||||
<span class="go">-0.28470407323754404</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run constant.go
|
||||
<span class="go">constant
|
||||
</span><span class="go">6e+11
|
||||
</span><span class="go">600000000000
|
||||
</span><span class="go">-0.28470407323754404</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
85
public/context
generated
85
public/context
generated
@ -37,9 +37,9 @@ across API boundaries and goroutines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/0_bu1o8rIBO"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -49,13 +49,12 @@ across API boundaries and goroutines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"net/http"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"net/http"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -65,9 +64,8 @@ across API boundaries and goroutines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">hello</span><span class="p">(</span><span class="nx">w</span> <span class="nx">http</span><span class="p">.</span><span class="nx">ResponseWriter</span><span class="p">,</span> <span class="nx">req</span> <span class="o">*</span><span class="nx">http</span><span class="p">.</span><span class="nx">Request</span><span class="p">)</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">hello</span><span class="p">(</span><span class="nx">w</span> <span class="nx">http</span><span class="p">.</span><span class="nx">ResponseWriter</span><span class="p">,</span> <span class="nx">req</span> <span class="o">*</span><span class="nx">http</span><span class="p">.</span><span class="nx">Request</span><span class="p">)</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -80,11 +78,11 @@ the <code>Context()</code> method.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">ctx</span> <span class="o">:=</span> <span class="nx">req</span><span class="p">.</span><span class="nx">Context</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">"server: hello handler started"</span><span class="p">)</span>
|
||||
<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">"server: hello handler ended"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">ctx</span> <span class="o">:=</span> <span class="nx">req</span><span class="p">.</span><span class="nf">Context</span><span class="p">()</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"server: hello handler started"</span><span class="p">)</span>
|
||||
<span class="k">defer</span> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"server: hello handler ended"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -99,12 +97,12 @@ the work and return as soon as possible.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">select</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="o"><-</span><span class="nx">time</span><span class="p">.</span><span class="nx">After</span><span class="p">(</span><span class="mi">10</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">):</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Fprintf</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span> <span class="s">"hello\n"</span><span class="p">)</span>
|
||||
<span class="k">case</span> <span class="o"><-</span><span class="nx">ctx</span><span class="p">.</span><span class="nx">Done</span><span class="p">():</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="k">select</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="o"><-</span><span class="nx">time</span><span class="p">.</span><span class="nf">After</span><span class="p">(</span><span class="mi">10</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">):</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintf</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span> <span class="s">"hello\n"</span><span class="p">)</span>
|
||||
<span class="k">case</span> <span class="o"><-</span><span class="nx">ctx</span><span class="p">.</span><span class="nf">Done</span><span class="p">():</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -117,14 +115,14 @@ closed.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ctx</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">Println</span><span class="p">(</span><span class="s">"server:"</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">err</span> <span class="o">:=</span> <span class="nx">ctx</span><span class="p">.</span><span class="nf">Err</span><span class="p">()</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"server:"</span><span class="p">,</span> <span class="nx">err</span><span class="p">)</span>
|
||||
<span class="nx">internalError</span> <span class="o">:=</span> <span class="nx">http</span><span class="p">.</span><span class="nx">StatusInternalServerError</span>
|
||||
<span class="nx">http</span><span class="p">.</span><span class="nx">Error</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span> <span class="nx">err</span><span class="p">.</span><span class="nx">Error</span><span class="p">(),</span> <span class="nx">internalError</span><span class="p">)</span>
|
||||
<span class="nx">http</span><span class="p">.</span><span class="nf">Error</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span> <span class="nx">err</span><span class="p">.</span><span class="nf">Error</span><span class="p">(),</span> <span class="nx">internalError</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -134,9 +132,8 @@ closed.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -148,11 +145,11 @@ route, and start serving.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">http</span><span class="p">.</span><span class="nx">HandleFunc</span><span class="p">(</span><span class="s">"/hello"</span><span class="p">,</span> <span class="nx">hello</span><span class="p">)</span>
|
||||
<span class="nx">http</span><span class="p">.</span><span class="nx">ListenAndServe</span><span class="p">(</span><span class="s">":8090"</span><span class="p">,</span> <span class="kc">nil</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">http</span><span class="p">.</span><span class="nf">HandleFunc</span><span class="p">(</span><span class="s">"/hello"</span><span class="p">,</span> <span class="nx">hello</span><span class="p">)</span>
|
||||
<span class="nx">http</span><span class="p">.</span><span class="nf">ListenAndServe</span><span class="p">(</span><span class="s">":8090"</span><span class="p">,</span> <span class="kc">nil</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -167,9 +164,8 @@ route, and start serving.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run context-in-http-servers.go <span class="p">&</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run context-in-http-servers.go &</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -182,13 +178,12 @@ cancellation.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> curl localhost:8090/hello
|
||||
<span class="go">server: hello handler started</span>
|
||||
<span class="go">^C</span>
|
||||
<span class="go">server: context canceled</span>
|
||||
<span class="go">server: hello handler ended</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> curl localhost:8090/hello
|
||||
<span class="go">server: hello handler started
|
||||
</span><span class="go">^C
|
||||
</span><span class="go">server: context canceled
|
||||
</span><span class="go">server: hello handler ended</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
82
public/defer
generated
82
public/defer
generated
@ -45,9 +45,8 @@ purposes of cleanup. <code>defer</code> is often used where e.g.
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/5SDVfc_jxbg"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,12 +56,11 @@ purposes of cleanup. <code>defer</code> is often used where e.g.
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -75,9 +73,9 @@ do that with <code>defer</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -92,12 +90,12 @@ of the enclosing function (<code>main</code>), after
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">f</span> <span class="o">:=</span> <span class="nf">createFile</span><span class="p">(</span><span class="s">"/tmp/defer.txt"</span><span class="p">)</span>
|
||||
<span class="k">defer</span> <span class="nf">closeFile</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||
<span class="nf">writeFile</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -107,16 +105,15 @@ of the enclosing function (<code>main</code>), after
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">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="nf">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="nf">Create</span><span class="p">(</span><span class="nx">p</span><span class="p">)</span>
|
||||
<span class="k">if</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="p">}</span>
|
||||
<span class="k">return</span> <span class="nx">f</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -126,11 +123,10 @@ of the enclosing function (<code>main</code>), after
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">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="nf">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="nf">Fprintln</span><span class="p">(</span><span class="nx">f</span><span class="p">,</span> <span class="s">"data"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -140,9 +136,8 @@ of the enclosing function (<code>main</code>), after
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="p">}</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -154,11 +149,10 @@ file, even in a deferred function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">Close</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">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="nf">Println</span><span class="p">(</span><span class="s">"closing"</span><span class="p">)</span>
|
||||
<span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nf">Close</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -168,13 +162,12 @@ file, even in a deferred function.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">if</span> <span class="nx">err</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">Fprintf</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: %v\n"</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>
|
||||
<pre class="chroma"> <span class="k">if</span> <span class="nx">err</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="nf">Fprintf</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: %v\n"</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="nf">Exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -190,12 +183,11 @@ after being written.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run defer.go
|
||||
<span class="go">creating</span>
|
||||
<span class="go">writing</span>
|
||||
<span class="go">closing</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run defer.go
|
||||
<span class="go">creating
|
||||
</span><span class="go">writing
|
||||
</span><span class="go">closing</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
168
public/directories
generated
168
public/directories
generated
@ -43,9 +43,8 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/UaeLMS5VQVR"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,14 +54,13 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"path/filepath"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"path/filepath"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -72,13 +70,12 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">check</span><span class="p">(</span><span class="nx">e</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">check</span><span class="p">(</span><span class="nx">e</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="nx">e</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">e</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -88,9 +85,8 @@
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -102,10 +98,10 @@ directory.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Mkdir</span><span class="p">(</span><span class="s">"subdir"</span><span class="p">,</span> <span class="mo">0755</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">err</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nf">Mkdir</span><span class="p">(</span><span class="s">"subdir"</span><span class="p">,</span> <span class="mo">0755</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -119,9 +115,9 @@ will delete a whole directory tree (similarly to
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">defer</span> <span class="nx">os</span><span class="p">.</span><span class="nx">RemoveAll</span><span class="p">(</span><span class="s">"subdir"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="k">defer</span> <span class="nx">os</span><span class="p">.</span><span class="nf">RemoveAll</span><span class="p">(</span><span class="s">"subdir"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -132,12 +128,12 @@ will delete a whole directory tree (similarly to
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">createEmptyFile</span> <span class="o">:=</span> <span class="kd">func</span><span class="p">(</span><span class="nx">name</span> <span class="kt">string</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">d</span> <span class="o">:=</span> <span class="p">[]</span><span class="nb">byte</span><span class="p">(</span><span class="s">""</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">ioutil</span><span class="p">.</span><span class="nx">WriteFile</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="nx">d</span><span class="p">,</span> <span class="mo">0644</span><span class="p">))</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">createEmptyFile</span> <span class="o">:=</span> <span class="kd">func</span><span class="p">(</span><span class="nx">name</span> <span class="kt">string</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">d</span> <span class="o">:=</span> <span class="p">[]</span><span class="nb">byte</span><span class="p">(</span><span class="s">""</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">ioutil</span><span class="p">.</span><span class="nf">WriteFile</span><span class="p">(</span><span class="nx">name</span><span class="p">,</span> <span class="nx">d</span><span class="p">,</span> <span class="mo">0644</span><span class="p">))</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -147,9 +143,8 @@ will delete a whole directory tree (similarly to
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">createEmptyFile</span><span class="p">(</span><span class="s">"subdir/file1"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="nf">createEmptyFile</span><span class="p">(</span><span class="s">"subdir/file1"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -162,10 +157,10 @@ command-line <code>mkdir -p</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">err</span> <span class="p">=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">MkdirAll</span><span class="p">(</span><span class="s">"subdir/parent/child"</span><span class="p">,</span> <span class="mo">0755</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">err</span> <span class="p">=</span> <span class="nx">os</span><span class="p">.</span><span class="nf">MkdirAll</span><span class="p">(</span><span class="s">"subdir/parent/child"</span><span class="p">,</span> <span class="mo">0755</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -175,11 +170,10 @@ command-line <code>mkdir -p</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">createEmptyFile</span><span class="p">(</span><span class="s">"subdir/parent/file2"</span><span class="p">)</span>
|
||||
<span class="nx">createEmptyFile</span><span class="p">(</span><span class="s">"subdir/parent/file3"</span><span class="p">)</span>
|
||||
<span class="nx">createEmptyFile</span><span class="p">(</span><span class="s">"subdir/parent/child/file4"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="nf">createEmptyFile</span><span class="p">(</span><span class="s">"subdir/parent/file2"</span><span class="p">)</span>
|
||||
<span class="nf">createEmptyFile</span><span class="p">(</span><span class="s">"subdir/parent/file3"</span><span class="p">)</span>
|
||||
<span class="nf">createEmptyFile</span><span class="p">(</span><span class="s">"subdir/parent/child/file4"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -191,10 +185,10 @@ slice of <code>os.FileInfo</code> objects.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">c</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nx">ReadDir</span><span class="p">(</span><span class="s">"subdir/parent"</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">c</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nf">ReadDir</span><span class="p">(</span><span class="s">"subdir/parent"</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -204,12 +198,11 @@ slice of <code>os.FileInfo</code> objects.</p>
|
||||
</td>
|
||||
<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">"Listing subdir/parent"</span><span class="p">)</span>
|
||||
<pre class="chroma"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Listing subdir/parent"</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">entry</span> <span class="o">:=</span> <span class="k">range</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="s">" "</span><span class="p">,</span> <span class="nx">entry</span><span class="p">.</span><span class="nx">Name</span><span class="p">(),</span> <span class="nx">entry</span><span class="p">.</span><span class="nx">IsDir</span><span class="p">())</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">" "</span><span class="p">,</span> <span class="nx">entry</span><span class="p">.</span><span class="nf">Name</span><span class="p">(),</span> <span class="nx">entry</span><span class="p">.</span><span class="nf">IsDir</span><span class="p">())</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -221,10 +214,10 @@ similarly to <code>cd</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">err</span> <span class="p">=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Chdir</span><span class="p">(</span><span class="s">"subdir/parent/child"</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">err</span> <span class="p">=</span> <span class="nx">os</span><span class="p">.</span><span class="nf">Chdir</span><span class="p">(</span><span class="s">"subdir/parent/child"</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -236,10 +229,10 @@ when listing the <em>current</em> directory.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">c</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nx">ReadDir</span><span class="p">(</span><span class="s">"."</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">c</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nf">ReadDir</span><span class="p">(</span><span class="s">"."</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -249,12 +242,11 @@ when listing the <em>current</em> directory.</p>
|
||||
</td>
|
||||
<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">"Listing subdir/parent/child"</span><span class="p">)</span>
|
||||
<pre class="chroma"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Listing subdir/parent/child"</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">entry</span> <span class="o">:=</span> <span class="k">range</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="s">" "</span><span class="p">,</span> <span class="nx">entry</span><span class="p">.</span><span class="nx">Name</span><span class="p">(),</span> <span class="nx">entry</span><span class="p">.</span><span class="nx">IsDir</span><span class="p">())</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">" "</span><span class="p">,</span> <span class="nx">entry</span><span class="p">.</span><span class="nf">Name</span><span class="p">(),</span> <span class="nx">entry</span><span class="p">.</span><span class="nf">IsDir</span><span class="p">())</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -265,10 +257,10 @@ when listing the <em>current</em> directory.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">err</span> <span class="p">=</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Chdir</span><span class="p">(</span><span class="s">"../../.."</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">err</span> <span class="p">=</span> <span class="nx">os</span><span class="p">.</span><span class="nf">Chdir</span><span class="p">(</span><span class="s">"../../.."</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -282,11 +274,11 @@ directory visited.</p>
|
||||
</td>
|
||||
<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">"Visiting subdir"</span><span class="p">)</span>
|
||||
<span class="nx">err</span> <span class="p">=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nx">Walk</span><span class="p">(</span><span class="s">"subdir"</span><span class="p">,</span> <span class="nx">visit</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Visiting subdir"</span><span class="p">)</span>
|
||||
<span class="nx">err</span> <span class="p">=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nf">Walk</span><span class="p">(</span><span class="s">"subdir"</span><span class="p">,</span> <span class="nx">visit</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -298,15 +290,15 @@ recursively by <code>filepath.Walk</code>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">visit</span><span class="p">(</span><span class="nx">p</span> <span class="kt">string</span><span class="p">,</span> <span class="nx">info</span> <span class="nx">os</span><span class="p">.</span><span class="nx">FileInfo</span><span class="p">,</span> <span class="nx">err</span> <span class="kt">error</span><span class="p">)</span> <span class="kt">error</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">visit</span><span class="p">(</span><span class="nx">p</span> <span class="kt">string</span><span class="p">,</span> <span class="nx">info</span> <span class="nx">os</span><span class="p">.</span><span class="nx">FileInfo</span><span class="p">,</span> <span class="nx">err</span> <span class="kt">error</span><span class="p">)</span> <span class="kt">error</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nx">err</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">" "</span><span class="p">,</span> <span class="nx">p</span><span class="p">,</span> <span class="nx">info</span><span class="p">.</span><span class="nx">IsDir</span><span class="p">())</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">" "</span><span class="p">,</span> <span class="nx">p</span><span class="p">,</span> <span class="nx">info</span><span class="p">.</span><span class="nf">IsDir</span><span class="p">())</span>
|
||||
<span class="k">return</span> <span class="kc">nil</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -320,23 +312,21 @@ recursively by <code>filepath.Walk</code>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run directories.go
|
||||
<span class="go">Listing subdir/parent</span>
|
||||
<span class="go"> child true</span>
|
||||
<span class="go"> file2 false</span>
|
||||
<span class="go"> file3 false</span>
|
||||
<span class="go">Listing subdir/parent/child</span>
|
||||
<span class="go"> file4 false</span>
|
||||
<span class="go">Visiting subdir</span>
|
||||
<span class="go"> subdir true</span>
|
||||
<span class="go"> subdir/file1 false</span>
|
||||
<span class="go"> subdir/parent true</span>
|
||||
<span class="go"> subdir/parent/child true</span>
|
||||
<span class="go"> subdir/parent/child/file4 false</span>
|
||||
<span class="go"> subdir/parent/file2 false</span>
|
||||
<span class="go"> subdir/parent/file3 false</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run directories.go
|
||||
<span class="go">Listing subdir/parent
|
||||
</span><span class="go"> child true
|
||||
</span><span class="go"> file2 false
|
||||
</span><span class="go"> file3 false
|
||||
</span><span class="go">Listing subdir/parent/child
|
||||
</span><span class="go"> file4 false
|
||||
</span><span class="go">Visiting subdir
|
||||
</span><span class="go"> subdir true
|
||||
</span><span class="go"> subdir/file1 false
|
||||
</span><span class="go"> subdir/parent true
|
||||
</span><span class="go"> subdir/parent/child true
|
||||
</span><span class="go"> subdir/parent/child/file4 false
|
||||
</span><span class="go"> subdir/parent/file2 false
|
||||
</span><span class="go"> subdir/parent/file3 false</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
74
public/environment-variables
generated
74
public/environment-variables
generated
@ -45,9 +45,8 @@ Let’s look at how to set, get, and list environment variables.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/KuD8tDyB4lQ"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,13 +56,12 @@ Let’s look at how to set, get, and list environment variables.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"strings"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"strings"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -73,9 +71,8 @@ Let’s look at how to set, get, and list environment variables.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -89,11 +86,11 @@ environment.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">os</span><span class="p">.</span><span class="nf">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="nf">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="nf">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="nf">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="nf">Getenv</span><span class="p">(</span><span class="s">"BAR"</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -107,14 +104,14 @@ get the key and value. Here we print all the keys.</p>
|
||||
</td>
|
||||
<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="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">SplitN</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="s">"="</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="nx">pair</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">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="nf">SplitN</span><span class="p">(</span><span class="nx">e</span><span class="p">,</span> <span class="s">"="</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="nf">Println</span><span class="p">(</span><span class="nx">pair</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -131,11 +128,10 @@ for <code>FOO</code> that we set in the program, but that
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run environment-variables.go
|
||||
<span class="go">FOO: 1</span>
|
||||
<span class="go">BAR: </span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run environment-variables.go
|
||||
<span class="go">FOO: 1
|
||||
</span><span class="go">BAR: </span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -147,12 +143,11 @@ particular machine.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="go">TERM_PROGRAM</span>
|
||||
<span class="go">PATH</span>
|
||||
<span class="go">SHELL</span>
|
||||
<span class="go">...</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="go">TERM_PROGRAM
|
||||
</span><span class="go">PATH
|
||||
</span><span class="go">SHELL
|
||||
</span><span class="go">...</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -164,12 +159,11 @@ program picks that value up.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> <span class="nv">BAR</span><span class="o">=</span><span class="m">2</span> go run environment-variables.go
|
||||
<span class="go">FOO: 1</span>
|
||||
<span class="go">BAR: 2</span>
|
||||
<span class="go">...</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> BAR=2 go run environment-variables.go
|
||||
<span class="go">FOO: 1
|
||||
</span><span class="go">BAR: 2
|
||||
</span><span class="go">...</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
67
public/epoch
generated
67
public/epoch
generated
@ -45,9 +45,8 @@ Here’s how to do it in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/0ooeler0RfR"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,12 +56,11 @@ Here’s how to do it in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -72,9 +70,8 @@ Here’s how to do it in Go.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -87,12 +84,12 @@ nanoseconds, respectively.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">now</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">now</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">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="nf">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="nf">UnixNano</span><span class="p">()</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">now</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -105,12 +102,12 @@ divide from nanoseconds.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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">nanos</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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="nf">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="nf">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="nf">Println</span><span class="p">(</span><span class="nx">nanos</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -122,11 +119,11 @@ since the epoch into the corresponding <code>time</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nf">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="nf">Println</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nf">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -140,15 +137,13 @@ since the epoch into the corresponding <code>time</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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">1351700038</span>
|
||||
<span class="go">1351700038292</span>
|
||||
<span class="go">1351700038292387000</span>
|
||||
<span class="go">2012-10-31 16:13:58 +0000 UTC</span>
|
||||
<span class="go">2012-10-31 16:13:58.292387 +0000 UTC</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run epoch.go
|
||||
<span class="go">2012-10-31 16:13:58.292387 +0000 UTC
|
||||
</span><span class="go">1351700038
|
||||
</span><span class="go">1351700038292
|
||||
</span><span class="go">1351700038292387000
|
||||
</span><span class="go">2012-10-31 16:13:58 +0000 UTC
|
||||
</span><span class="go">2012-10-31 16:13:58.292387 +0000 UTC</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
110
public/errors
generated
110
public/errors
generated
@ -49,9 +49,8 @@ non-error tasks.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/NiJOpCPO3L0"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -61,12 +60,11 @@ non-error tasks.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"errors"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"errors"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -78,10 +76,10 @@ have type <code>error</code>, a built-in interface.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -93,9 +91,9 @@ with the given error message.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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="nf">New</span><span class="p">(</span><span class="s">"can't work with 42"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -105,9 +103,8 @@ with the given error message.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="p">}</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -119,10 +116,10 @@ there was no error.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -136,12 +133,12 @@ to explicitly represent an argument error.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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">prob</span> <span class="kt">string</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -151,11 +148,10 @@ to explicitly represent an argument error.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma"><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="nf">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="nf">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -165,10 +161,9 @@ to explicitly represent an argument error.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -181,12 +176,12 @@ fields <code>arg</code> and <code>prob</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -196,9 +191,8 @@ fields <code>arg</code> and <code>prob</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -212,22 +206,22 @@ idiom in Go code.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">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="nf">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="p">}</span> <span class="k">else</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 worked:"</span><span class="p">,</span> <span class="nx">r</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"f1 worked:"</span><span class="p">,</span> <span class="nx">r</span><span class="p">)</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">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">f2</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">"f2 failed:"</span><span class="p">,</span> <span class="nx">e</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="nf">f2</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="nf">Println</span><span class="p">(</span><span class="s">"f2 failed:"</span><span class="p">,</span> <span class="nx">e</span><span class="p">)</span>
|
||||
<span class="p">}</span> <span class="k">else</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">"f2 worked:"</span><span class="p">,</span> <span class="nx">r</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"f2 worked:"</span><span class="p">,</span> <span class="nx">r</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -241,14 +235,14 @@ assertion.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">_</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="nf">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="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">prob</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">Println</span><span class="p">(</span><span class="nx">ae</span><span class="p">.</span><span class="nx">prob</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -262,15 +256,13 @@ assertion.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run errors.go
|
||||
<span class="go">f1 worked: 10</span>
|
||||
<span class="go">f1 failed: can't work with 42</span>
|
||||
<span class="go">f2 worked: 10</span>
|
||||
<span class="go">f2 failed: 42 - can't work with it</span>
|
||||
<span class="go">42</span>
|
||||
<span class="go">can't work with it</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run errors.go
|
||||
<span class="go">f1 worked: 10
|
||||
</span><span class="go">f1 failed: can't work with 42
|
||||
</span><span class="go">f2 worked: 10
|
||||
</span><span class="go">f2 failed: 42 - can't work with it
|
||||
</span><span class="go">42
|
||||
</span><span class="go">can't work with it</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
58
public/execing-processes
generated
58
public/execing-processes
generated
@ -50,9 +50,8 @@ function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/nI-HMuCI2lG"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -62,13 +61,12 @@ function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"os/exec"</span>
|
||||
<span class="s">"syscall"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"os/exec"</span>
|
||||
<span class="s">"syscall"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -78,9 +76,8 @@ function.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -94,12 +91,12 @@ we’ll use <code>exec.LookPath</code> to find it (probably
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">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="nb">panic</span><span class="p">(</span><span class="nx">lookErr</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -113,9 +110,9 @@ be the program name.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -128,9 +125,9 @@ environment.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">env</span> <span class="o">:=</span> <span class="nx">os</span><span class="p">.</span><span class="nf">Environ</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -145,13 +142,13 @@ value.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">execErr</span> <span class="o">:=</span> <span class="nx">syscall</span><span class="p">.</span><span class="nf">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="nb">panic</span><span class="p">(</span><span class="nx">execErr</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -166,13 +163,12 @@ value.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run execing-processes.go
|
||||
<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 91 mark 3.0K Oct 3 12:50 ..</span>
|
||||
<span class="go">-rw-r--r-- 1 mark 1.3K Oct 3 16:28 execing-processes.go</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run execing-processes.go
|
||||
<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 91 mark 3.0K Oct 3 12:50 ..
|
||||
</span><span class="go">-rw-r--r-- 1 mark 1.3K Oct 3 16:28 execing-processes.go</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
47
public/exit
generated
47
public/exit
generated
@ -39,9 +39,8 @@ status.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/b9aYzlENkb__R"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -51,12 +50,11 @@ status.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -66,9 +64,8 @@ status.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -80,9 +77,9 @@ this <code>fmt.Println</code> will never be called.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="k">defer</span> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"!"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -93,10 +90,10 @@ this <code>fmt.Println</code> will never be called.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">os</span><span class="p">.</span><span class="nf">Exit</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -126,10 +123,9 @@ will be picked up by <code>go</code> and printed.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run exit.go
|
||||
<span class="go">exit status 3</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run exit.go
|
||||
<span class="go">exit status 3</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -141,12 +137,11 @@ the status in the terminal.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go build exit.go
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go build exit.go
|
||||
<span class="gp">$</span> ./exit
|
||||
<span class="gp">$</span> <span class="nb">echo</span> <span class="nv">$?</span>
|
||||
<span class="go">3</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="gp">$</span> echo $?
|
||||
<span class="go">3</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
114
public/file-paths
generated
114
public/file-paths
generated
@ -35,9 +35,9 @@ between operating systems; <code>dir/file</code> on Linux vs.
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/5h3lUytvmyO"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -47,13 +47,12 @@ between operating systems; <code>dir/file</code> on Linux vs.
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"path/filepath"</span>
|
||||
<span class="s">"strings"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"path/filepath"</span>
|
||||
<span class="s">"strings"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -63,9 +62,8 @@ between operating systems; <code>dir/file</code> on Linux vs.
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -78,10 +76,10 @@ and constructs a hierarchical path from them.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</span> <span class="o">:=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nx">Join</span><span class="p">(</span><span class="s">"dir1"</span><span class="p">,</span> <span class="s">"dir2"</span><span class="p">,</span> <span class="s">"filename"</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">"p:"</span><span class="p">,</span> <span class="nx">p</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">p</span> <span class="o">:=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nf">Join</span><span class="p">(</span><span class="s">"dir1"</span><span class="p">,</span> <span class="s">"dir2"</span><span class="p">,</span> <span class="s">"filename"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"p:"</span><span class="p">,</span> <span class="nx">p</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -96,10 +94,10 @@ and directory changes.</p>
|
||||
</td>
|
||||
<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">filepath</span><span class="p">.</span><span class="nx">Join</span><span class="p">(</span><span class="s">"dir1//"</span><span class="p">,</span> <span class="s">"filename"</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">filepath</span><span class="p">.</span><span class="nx">Join</span><span class="p">(</span><span class="s">"dir1/../dir1"</span><span class="p">,</span> <span class="s">"filename"</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">filepath</span><span class="p">.</span><span class="nf">Join</span><span class="p">(</span><span class="s">"dir1//"</span><span class="p">,</span> <span class="s">"filename"</span><span class="p">))</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">filepath</span><span class="p">.</span><span class="nf">Join</span><span class="p">(</span><span class="s">"dir1/../dir1"</span><span class="p">,</span> <span class="s">"filename"</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -112,10 +110,10 @@ return both in the same call.</p>
|
||||
</td>
|
||||
<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">"Dir(p):"</span><span class="p">,</span> <span class="nx">filepath</span><span class="p">.</span><span class="nx">Dir</span><span class="p">(</span><span class="nx">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">"Base(p):"</span><span class="p">,</span> <span class="nx">filepath</span><span class="p">.</span><span class="nx">Base</span><span class="p">(</span><span class="nx">p</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Dir(p):"</span><span class="p">,</span> <span class="nx">filepath</span><span class="p">.</span><span class="nf">Dir</span><span class="p">(</span><span class="nx">p</span><span class="p">))</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Base(p):"</span><span class="p">,</span> <span class="nx">filepath</span><span class="p">.</span><span class="nf">Base</span><span class="p">(</span><span class="nx">p</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -126,10 +124,10 @@ return both in the same call.</p>
|
||||
</td>
|
||||
<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">filepath</span><span class="p">.</span><span class="nx">IsAbs</span><span class="p">(</span><span class="s">"dir/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="nx">filepath</span><span class="p">.</span><span class="nx">IsAbs</span><span class="p">(</span><span class="s">"/dir/file"</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">filepath</span><span class="p">.</span><span class="nf">IsAbs</span><span class="p">(</span><span class="s">"dir/file"</span><span class="p">))</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">filepath</span><span class="p">.</span><span class="nf">IsAbs</span><span class="p">(</span><span class="s">"/dir/file"</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -139,9 +137,8 @@ return both in the same call.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">filename</span> <span class="o">:=</span> <span class="s">"config.json"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="nx">filename</span> <span class="o">:=</span> <span class="s">"config.json"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -153,10 +150,10 @@ can split the extension out of such names with <code>Ext</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">ext</span> <span class="o">:=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nx">Ext</span><span class="p">(</span><span class="nx">filename</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">ext</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">ext</span> <span class="o">:=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nf">Ext</span><span class="p">(</span><span class="nx">filename</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">ext</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -168,9 +165,9 @@ use <code>strings.TrimSuffix</code>.</p>
|
||||
</td>
|
||||
<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">strings</span><span class="p">.</span><span class="nx">TrimSuffix</span><span class="p">(</span><span class="nx">filename</span><span class="p">,</span> <span class="nx">ext</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">strings</span><span class="p">.</span><span class="nf">TrimSuffix</span><span class="p">(</span><span class="nx">filename</span><span class="p">,</span> <span class="nx">ext</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -183,13 +180,13 @@ be made relative to base.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">rel</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nx">Rel</span><span class="p">(</span><span class="s">"a/b"</span><span class="p">,</span> <span class="s">"a/b/t/file"</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">rel</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nf">Rel</span><span class="p">(</span><span class="s">"a/b"</span><span class="p">,</span> <span class="s">"a/b/t/file"</span><span class="p">)</span>
|
||||
<span class="k">if</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="p">}</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">rel</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">rel</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -199,14 +196,13 @@ be made relative to base.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">rel</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nx">Rel</span><span class="p">(</span><span class="s">"a/b"</span><span class="p">,</span> <span class="s">"a/c/t/file"</span><span class="p">)</span>
|
||||
<pre class="chroma"> <span class="nx">rel</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nf">Rel</span><span class="p">(</span><span class="s">"a/b"</span><span class="p">,</span> <span class="s">"a/c/t/file"</span><span class="p">)</span>
|
||||
<span class="k">if</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="p">}</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">rel</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">rel</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -220,20 +216,18 @@ be made relative to base.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run file-paths.go
|
||||
<span class="go">p: dir1/dir2/filename</span>
|
||||
<span class="go">dir1/filename</span>
|
||||
<span class="go">dir1/filename</span>
|
||||
<span class="go">Dir(p): dir1/dir2</span>
|
||||
<span class="go">Base(p): filename</span>
|
||||
<span class="go">false</span>
|
||||
<span class="go">true</span>
|
||||
<span class="go">.json</span>
|
||||
<span class="go">config</span>
|
||||
<span class="go">t/file</span>
|
||||
<span class="go">../c/t/file</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run file-paths.go
|
||||
<span class="go">p: dir1/dir2/filename
|
||||
</span><span class="go">dir1/filename
|
||||
</span><span class="go">dir1/filename
|
||||
</span><span class="go">Dir(p): dir1/dir2
|
||||
</span><span class="go">Base(p): filename
|
||||
</span><span class="go">false
|
||||
</span><span class="go">true
|
||||
</span><span class="go">.json
|
||||
</span><span class="go">config
|
||||
</span><span class="go">t/file
|
||||
</span><span class="go">../c/t/file</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
71
public/for
generated
71
public/for
generated
@ -43,9 +43,8 @@ some basic types of <code>for</code> loops.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/2-4H-ArwHHS"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,9 +54,8 @@ some basic types of <code>for</code> loops.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -67,9 +65,8 @@ some basic types of <code>for</code> loops.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -80,13 +77,13 @@ some basic types of <code>for</code> loops.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">1</span>
|
||||
<pre class="chroma">
|
||||
<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="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="nf">Println</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span>
|
||||
<span class="nx">i</span> <span class="p">=</span> <span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -97,11 +94,11 @@ some basic types of <code>for</code> loops.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">Println</span><span class="p">(</span><span class="nx">j</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -114,12 +111,12 @@ the enclosing function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="p">{</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"loop"</span><span class="p">)</span>
|
||||
<span class="k">break</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -131,15 +128,15 @@ the loop.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">n</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">n</span> <span class="o"><=</span> <span class="mi">5</span><span class="p">;</span> <span class="nx">n</span><span class="o">++</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">n</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">n</span> <span class="o"><=</span> <span class="mi">5</span><span class="p">;</span> <span class="nx">n</span><span class="o">++</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="nx">n</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="k">continue</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">n</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -153,19 +150,17 @@ the loop.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run <span class="k">for</span>.go
|
||||
<span class="go">1</span>
|
||||
<span class="go">2</span>
|
||||
<span class="go">3</span>
|
||||
<span class="go">7</span>
|
||||
<span class="go">8</span>
|
||||
<span class="go">9</span>
|
||||
<span class="go">loop</span>
|
||||
<span class="go">1</span>
|
||||
<span class="go">3</span>
|
||||
<span class="go">5</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run for.go
|
||||
<span class="go">1
|
||||
</span><span class="go">2
|
||||
</span><span class="go">3
|
||||
</span><span class="go">7
|
||||
</span><span class="go">8
|
||||
</span><span class="go">9
|
||||
</span><span class="go">loop
|
||||
</span><span class="go">1
|
||||
</span><span class="go">3
|
||||
</span><span class="go">5</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
56
public/functions
generated
56
public/functions
generated
@ -43,9 +43,8 @@ functions with a few different examples.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/-o49-dQfGbK"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,9 +54,8 @@ functions with a few different examples.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -69,9 +67,9 @@ their sum as an <code>int</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -84,10 +82,10 @@ expression.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="k">return</span> <span class="nx">a</span> <span class="o">+</span> <span class="nx">b</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -101,11 +99,11 @@ declares the type.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">plusPlus</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">c</span> <span class="kt">int</span><span class="p">)</span> <span class="kt">int</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">plusPlus</span><span class="p">(</span><span class="nx">a</span><span class="p">,</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">c</span> <span class="kt">int</span><span class="p">)</span> <span class="kt">int</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nx">a</span> <span class="o">+</span> <span class="nx">b</span> <span class="o">+</span> <span class="nx">c</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -115,9 +113,8 @@ declares the type.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -129,10 +126,10 @@ declares the type.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">res</span> <span class="o">:=</span> <span class="nf">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="nf">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>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -142,11 +139,10 @@ declares the type.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">res</span> <span class="p">=</span> <span class="nx">plusPlus</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="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"1+2+3 ="</span><span class="p">,</span> <span class="nx">res</span><span class="p">)</span>
|
||||
<pre class="chroma"> <span class="nx">res</span> <span class="p">=</span> <span class="nf">plusPlus</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="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"1+2+3 ="</span><span class="p">,</span> <span class="nx">res</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -160,11 +156,9 @@ declares the type.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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 = 6</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run functions.go
|
||||
<span class="go">1+2 = 3
|
||||
</span><span class="go">1+2+3 = 6</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
77
public/goroutines
generated
77
public/goroutines
generated
@ -42,9 +42,8 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/I7scqRijEJt"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -54,12 +53,11 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -69,13 +67,12 @@
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">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="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="nf">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="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -85,9 +82,8 @@
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -100,9 +96,9 @@ synchronously.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nf">f</span><span class="p">(</span><span class="s">"direct"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -115,9 +111,9 @@ concurrently with the calling one.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="k">go</span> <span class="nf">f</span><span class="p">(</span><span class="s">"goroutine"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -129,11 +125,11 @@ function call.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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="nf">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>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -146,11 +142,11 @@ separate goroutines now. Wait for them to finish
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">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">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"done"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -168,17 +164,16 @@ goroutines being run concurrently by the Go runtime.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run goroutines.go
|
||||
<span class="go">direct : 0</span>
|
||||
<span class="go">direct : 1</span>
|
||||
<span class="go">direct : 2</span>
|
||||
<span class="go">goroutine : 0</span>
|
||||
<span class="go">going</span>
|
||||
<span class="go">goroutine : 1</span>
|
||||
<span class="go">goroutine : 2</span>
|
||||
<span class="go">done</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run goroutines.go
|
||||
<span class="go">direct : 0
|
||||
</span><span class="go">direct : 1
|
||||
</span><span class="go">direct : 2
|
||||
</span><span class="go">goroutine : 0
|
||||
</span><span class="go">going
|
||||
</span><span class="go">goroutine : 1
|
||||
</span><span class="go">goroutine : 2
|
||||
</span><span class="go">done</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
39
public/hello-world
generated
39
public/hello-world
generated
@ -29,9 +29,9 @@ message. Here’s the full source code.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/NeviD0awXjt"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -41,9 +41,8 @@ message. Here’s the full source code.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -53,11 +52,10 @@ message. Here’s the full source code.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"hello world"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -73,10 +71,9 @@ use <code>go run</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run hello-world.go
|
||||
<span class="go">hello world</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run hello-world.go
|
||||
<span class="go">hello world</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -88,11 +85,10 @@ binaries. We can do this using <code>go build</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go build hello-world.go
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go build hello-world.go
|
||||
<span class="gp">$</span> ls
|
||||
<span class="go">hello-world hello-world.go</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="go">hello-world hello-world.go</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -103,10 +99,9 @@ binaries. We can do this using <code>go build</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> ./hello-world
|
||||
<span class="go">hello world</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> ./hello-world
|
||||
<span class="go">hello world</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
67
public/http-clients
generated
67
public/http-clients
generated
@ -35,9 +35,9 @@ HTTP requests.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/kHCcVLoz7nd"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -47,13 +47,12 @@ HTTP requests.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"bufio"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"net/http"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"bufio"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"net/http"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -63,9 +62,8 @@ HTTP requests.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -80,13 +78,13 @@ settings.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">resp</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">http</span><span class="p">.</span><span class="nx">Get</span><span class="p">(</span><span class="s">"http://gobyexample.com"</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">resp</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">http</span><span class="p">.</span><span class="nf">Get</span><span class="p">(</span><span class="s">"http://gobyexample.com"</span><span class="p">)</span>
|
||||
<span class="k">if</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="p">}</span>
|
||||
<span class="k">defer</span> <span class="nx">resp</span><span class="p">.</span><span class="nx">Body</span><span class="p">.</span><span class="nx">Close</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="k">defer</span> <span class="nx">resp</span><span class="p">.</span><span class="nx">Body</span><span class="p">.</span><span class="nf">Close</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -97,9 +95,9 @@ settings.</p>
|
||||
</td>
|
||||
<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">"Response status:"</span><span class="p">,</span> <span class="nx">resp</span><span class="p">.</span><span class="nx">Status</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Response status:"</span><span class="p">,</span> <span class="nx">resp</span><span class="p">.</span><span class="nx">Status</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -110,12 +108,12 @@ settings.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">scanner</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nx">NewScanner</span><span class="p">(</span><span class="nx">resp</span><span class="p">.</span><span class="nx">Body</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">scanner</span><span class="p">.</span><span class="nx">Scan</span><span class="p">()</span> <span class="o">&&</span> <span class="nx">i</span> <span class="p"><</span> <span class="mi">5</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">scanner</span><span class="p">.</span><span class="nx">Text</span><span class="p">())</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">scanner</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nf">NewScanner</span><span class="p">(</span><span class="nx">resp</span><span class="p">.</span><span class="nx">Body</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">scanner</span><span class="p">.</span><span class="nf">Scan</span><span class="p">()</span> <span class="o">&&</span> <span class="nx">i</span> <span class="p"><</span> <span class="mi">5</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="nf">Println</span><span class="p">(</span><span class="nx">scanner</span><span class="p">.</span><span class="nf">Text</span><span class="p">())</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -125,12 +123,11 @@ settings.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">scanner</span><span class="p">.</span><span class="nx">Err</span><span class="p">();</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
||||
<pre class="chroma"> <span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">scanner</span><span class="p">.</span><span class="nf">Err</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="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -144,15 +141,13 @@ settings.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run http-clients.go
|
||||
<span class="go">Response status: 200 OK</span>
|
||||
<span class="go"><!DOCTYPE html></span>
|
||||
<span class="go"><html></span>
|
||||
<span class="go"> <head></span>
|
||||
<span class="go"> <meta charset="utf-8"></span>
|
||||
<span class="go"> <title>Go by Example</title></span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run http-clients.go
|
||||
<span class="go">Response status: 200 OK
|
||||
</span><span class="go"><!DOCTYPE html>
|
||||
</span><span class="go"><html>
|
||||
</span><span class="go"> <head>
|
||||
</span><span class="go"> <meta charset="utf-8">
|
||||
</span><span class="go"> <title>Go by Example</title></span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
71
public/http-servers
generated
71
public/http-servers
generated
@ -33,9 +33,9 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/s3xMMt9Ytry"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -45,12 +45,11 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"net/http"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"net/http"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -65,9 +64,9 @@ on functions with the appropriate signature.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">hello</span><span class="p">(</span><span class="nx">w</span> <span class="nx">http</span><span class="p">.</span><span class="nx">ResponseWriter</span><span class="p">,</span> <span class="nx">req</span> <span class="o">*</span><span class="nx">http</span><span class="p">.</span><span class="nx">Request</span><span class="p">)</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">hello</span><span class="p">(</span><span class="nx">w</span> <span class="nx">http</span><span class="p">.</span><span class="nx">ResponseWriter</span><span class="p">,</span> <span class="nx">req</span> <span class="o">*</span><span class="nx">http</span><span class="p">.</span><span class="nx">Request</span><span class="p">)</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -82,10 +81,10 @@ HTTP response. Here our simple response is just
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Fprintf</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span> <span class="s">"hello\n"</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintf</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span> <span class="s">"hello\n"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -95,9 +94,8 @@ HTTP response. Here our simple response is just
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">headers</span><span class="p">(</span><span class="nx">w</span> <span class="nx">http</span><span class="p">.</span><span class="nx">ResponseWriter</span><span class="p">,</span> <span class="nx">req</span> <span class="o">*</span><span class="nx">http</span><span class="p">.</span><span class="nx">Request</span><span class="p">)</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">headers</span><span class="p">(</span><span class="nx">w</span> <span class="nx">http</span><span class="p">.</span><span class="nx">ResponseWriter</span><span class="p">,</span> <span class="nx">req</span> <span class="o">*</span><span class="nx">http</span><span class="p">.</span><span class="nx">Request</span><span class="p">)</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -110,14 +108,14 @@ headers and echoing them into the response body.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">name</span><span class="p">,</span> <span class="nx">headers</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">req</span><span class="p">.</span><span class="nx">Header</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">name</span><span class="p">,</span> <span class="nx">headers</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">req</span><span class="p">.</span><span class="nx">Header</span> <span class="p">{</span>
|
||||
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">h</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">headers</span> <span class="p">{</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Fprintf</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span> <span class="s">"%v: %v\n"</span><span class="p">,</span> <span class="nx">name</span><span class="p">,</span> <span class="nx">h</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintf</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span> <span class="s">"%v: %v\n"</span><span class="p">,</span> <span class="nx">name</span><span class="p">,</span> <span class="nx">h</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -127,9 +125,8 @@ headers and echoing them into the response body.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -143,10 +140,10 @@ takes a function as an argument.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">http</span><span class="p">.</span><span class="nx">HandleFunc</span><span class="p">(</span><span class="s">"/hello"</span><span class="p">,</span> <span class="nx">hello</span><span class="p">)</span>
|
||||
<span class="nx">http</span><span class="p">.</span><span class="nx">HandleFunc</span><span class="p">(</span><span class="s">"/headers"</span><span class="p">,</span> <span class="nx">headers</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">http</span><span class="p">.</span><span class="nf">HandleFunc</span><span class="p">(</span><span class="s">"/hello"</span><span class="p">,</span> <span class="nx">hello</span><span class="p">)</span>
|
||||
<span class="nx">http</span><span class="p">.</span><span class="nf">HandleFunc</span><span class="p">(</span><span class="s">"/headers"</span><span class="p">,</span> <span class="nx">headers</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -159,10 +156,10 @@ router we’ve just set up.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">http</span><span class="p">.</span><span class="nx">ListenAndServe</span><span class="p">(</span><span class="s">":8090"</span><span class="p">,</span> <span class="kc">nil</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">http</span><span class="p">.</span><span class="nf">ListenAndServe</span><span class="p">(</span><span class="s">":8090"</span><span class="p">,</span> <span class="kc">nil</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -177,9 +174,8 @@ router we’ve just set up.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run http-servers.go <span class="p">&</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run http-servers.go &</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -190,10 +186,9 @@ router we’ve just set up.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> curl localhost:8090/hello
|
||||
<span class="go">hello</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> curl localhost:8090/hello
|
||||
<span class="go">hello</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
55
public/if-else
generated
55
public/if-else
generated
@ -43,9 +43,8 @@ straight-forward.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/QlMkcwHvmns"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,9 +54,8 @@ straight-forward.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -67,9 +65,8 @@ straight-forward.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -80,13 +77,13 @@ straight-forward.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">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="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"7 is odd"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"7 is odd"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -97,11 +94,11 @@ straight-forward.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">Println</span><span class="p">(</span><span class="s">"8 is divisible by 4"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -114,16 +111,16 @@ branches.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">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="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">"has 1 digit"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">num</span><span class="p">,</span> <span class="s">"has 1 digit"</span><span class="p">)</span>
|
||||
<span class="p">}</span> <span class="k">else</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">"has multiple digits"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">num</span><span class="p">,</span> <span class="s">"has multiple digits"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -149,12 +146,10 @@ in Go, but that the braces are required.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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">8 is divisible by 4</span>
|
||||
<span class="go">9 has 1 digit</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run if-else.go
|
||||
<span class="go">7 is odd
|
||||
</span><span class="go">8 is divisible by 4
|
||||
</span><span class="go">9 has 1 digit</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
87
public/interfaces
generated
87
public/interfaces
generated
@ -43,9 +43,8 @@ signatures.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/XJASG4MxBQr"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,12 +54,11 @@ signatures.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"math"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"math"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -71,12 +69,12 @@ signatures.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">type</span> <span class="nx">geometry</span> <span class="kd">interface</span> <span class="p">{</span>
|
||||
<span class="nf">area</span><span class="p">()</span> <span class="kt">float64</span>
|
||||
<span class="nf">perim</span><span class="p">()</span> <span class="kt">float64</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -88,14 +86,14 @@ signatures.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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">float64</span>
|
||||
<span class="p">}</span>
|
||||
<span class="kd">type</span> <span class="nx">circle</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">radius</span> <span class="kt">float64</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -108,14 +106,14 @@ implement <code>geometry</code> on <code>rect</code>s.</p>
|
||||
</td>
|
||||
<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">area</span><span class="p">()</span> <span class="kt">float64</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<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="nf">area</span><span class="p">()</span> <span class="kt">float64</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="p">}</span>
|
||||
<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">float64</span> <span class="p">{</span>
|
||||
<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="nf">perim</span><span class="p">()</span> <span class="kt">float64</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="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -126,14 +124,14 @@ implement <code>geometry</code> on <code>rect</code>s.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">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="p">}</span>
|
||||
<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">perim</span><span class="p">()</span> <span class="kt">float64</span> <span class="p">{</span>
|
||||
<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="nf">perim</span><span class="p">()</span> <span class="kt">float64</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="mi">2</span> <span class="o">*</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="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -147,13 +145,13 @@ to work on any <code>geometry</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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">perim</span><span class="p">())</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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="nf">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="nf">Println</span><span class="p">(</span><span class="nx">g</span><span class="p">.</span><span class="nf">area</span><span class="p">())</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">g</span><span class="p">.</span><span class="nf">perim</span><span class="p">())</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -163,11 +161,10 @@ to work on any <code>geometry</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">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">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -181,11 +178,11 @@ these structs as arguments to <code>measure</code>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">measure</span><span class="p">(</span><span class="nx">r</span><span class="p">)</span>
|
||||
<span class="nx">measure</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nf">measure</span><span class="p">(</span><span class="nx">r</span><span class="p">)</span>
|
||||
<span class="nf">measure</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -199,15 +196,13 @@ these structs as arguments to <code>measure</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run interfaces.go
|
||||
<span class="go">{3 4}</span>
|
||||
<span class="go">12</span>
|
||||
<span class="go">14</span>
|
||||
<span class="go">{5}</span>
|
||||
<span class="go">78.53981633974483</span>
|
||||
<span class="go">31.41592653589793</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run interfaces.go
|
||||
<span class="go">{3 4}
|
||||
</span><span class="go">12
|
||||
</span><span class="go">14
|
||||
</span><span class="go">{5}
|
||||
</span><span class="go">78.53981633974483
|
||||
</span><span class="go">31.41592653589793</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
199
public/json
generated
199
public/json
generated
@ -44,9 +44,8 @@ data types.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/JOQpRGJWAxR"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,13 +55,12 @@ data types.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"encoding/json"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"encoding/json"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -74,12 +72,12 @@ decoding of custom types below.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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">Fruits</span> <span class="p">[]</span><span class="kt">string</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -91,12 +89,12 @@ Fields must start with capital letters to be exported.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">response2</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">Page</span> <span class="kt">int</span> <span class="s">`json:"page"`</span>
|
||||
<span class="nx">Fruits</span> <span class="p">[]</span><span class="kt">string</span> <span class="s">`json:"fruits"`</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">type</span> <span class="nx">response2</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">Page</span> <span class="kt">int</span> <span class="s">`json:"page"`</span>
|
||||
<span class="nx">Fruits</span> <span class="p">[]</span><span class="kt">string</span> <span class="s">`json:"fruits"`</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -106,9 +104,8 @@ Fields must start with capital letters to be exported.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -121,10 +118,10 @@ values.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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="nf">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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -134,10 +131,9 @@ values.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma"> <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="nf">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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -147,10 +143,9 @@ values.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma"> <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="nf">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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -160,10 +155,9 @@ values.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma"> <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="nf">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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -175,11 +169,11 @@ to JSON arrays and objects as you’d expect.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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="nf">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="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">slcB</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -189,11 +183,10 @@ to JSON arrays and objects as you’d expect.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <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="nf">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="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">mapB</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -207,13 +200,13 @@ use those names as the JSON keys.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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">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">res1B</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">res1D</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">res1B</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<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">res1B</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nf">Marshal</span><span class="p">(</span><span class="nx">res1D</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">res1B</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -227,13 +220,13 @@ of such tags.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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">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">res2B</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">res2D</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">res2B</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<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">res2B</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nf">Marshal</span><span class="p">(</span><span class="nx">res2D</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">res2B</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -246,9 +239,9 @@ structure.</p>
|
||||
</td>
|
||||
<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.13,"strs":["a","b"]}`</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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.13,"strs":["a","b"]}`</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -262,9 +255,9 @@ to arbitrary data types.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -276,12 +269,12 @@ associated errors.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">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="p">}</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">dat</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">dat</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -295,10 +288,10 @@ the expected <code>float64</code> type.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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="nf">Println</span><span class="p">(</span><span class="nx">num</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -310,11 +303,11 @@ conversions.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">str1</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">str1</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -329,13 +322,13 @@ data.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="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">fmt</span><span class="p">.</span><span class="nx">Println</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="nx">res</span><span class="p">.</span><span class="nx">Fruits</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">json</span><span class="p">.</span><span class="nf">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">fmt</span><span class="p">.</span><span class="nf">Println</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="nf">Println</span><span class="p">(</span><span class="nx">res</span><span class="p">.</span><span class="nx">Fruits</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -350,12 +343,12 @@ stream JSON encodings directly to <code>os.Writer</code>s like
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">enc</span> <span class="o">:=</span> <span class="nx">json</span><span class="p">.</span><span class="nf">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">enc</span><span class="p">.</span><span class="nf">Encode</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -369,23 +362,21 @@ stream JSON encodings directly to <code>os.Writer</code>s like
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run json.go
|
||||
<span class="go">true</span>
|
||||
<span class="go">1</span>
|
||||
<span class="go">2.34</span>
|
||||
<span class="go">"gopher"</span>
|
||||
<span class="go">["apple","peach","pear"]</span>
|
||||
<span class="go">{"apple":5,"lettuce":7}</span>
|
||||
<span class="go">{"Page":1,"Fruits":["apple","peach","pear"]}</span>
|
||||
<span class="go">{"page":1,"fruits":["apple","peach","pear"]}</span>
|
||||
<span class="go">map[num:6.13 strs:[a b]]</span>
|
||||
<span class="go">6.13</span>
|
||||
<span class="go">a</span>
|
||||
<span class="go">{1 [apple peach]}</span>
|
||||
<span class="go">apple</span>
|
||||
<span class="go">{"apple":5,"lettuce":7}</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run json.go
|
||||
<span class="go">true
|
||||
</span><span class="go">1
|
||||
</span><span class="go">2.34
|
||||
</span><span class="go">"gopher"
|
||||
</span><span class="go">["apple","peach","pear"]
|
||||
</span><span class="go">{"apple":5,"lettuce":7}
|
||||
</span><span class="go">{"Page":1,"Fruits":["apple","peach","pear"]}
|
||||
</span><span class="go">{"page":1,"fruits":["apple","peach","pear"]}
|
||||
</span><span class="go">map[num:6.13 strs:[a b]]
|
||||
</span><span class="go">6.13
|
||||
</span><span class="go">a
|
||||
</span><span class="go">{1 [apple peach]}
|
||||
</span><span class="go">apple
|
||||
</span><span class="go">{"apple":5,"lettuce":7}</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
72
public/line-filters
generated
72
public/line-filters
generated
@ -48,9 +48,9 @@ pattern to write your own Go line filters.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/kNcupWRsYPP"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -60,14 +60,13 @@ pattern to write your own Go line filters.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"bufio"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"strings"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"bufio"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"strings"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -77,9 +76,8 @@ pattern to write your own Go line filters.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -93,9 +91,9 @@ the next line in the default scanner.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">scanner</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nx">NewScanner</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stdin</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">scanner</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nf">NewScanner</span><span class="p">(</span><span class="nx">os</span><span class="p">.</span><span class="nx">Stdin</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -107,9 +105,8 @@ from the input.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">scanner</span><span class="p">.</span><span class="nx">Scan</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="k">for</span> <span class="nx">scanner</span><span class="p">.</span><span class="nf">Scan</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -119,9 +116,8 @@ from the input.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <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">scanner</span><span class="p">.</span><span class="nx">Text</span><span class="p">())</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="nx">ucl</span> <span class="o">:=</span> <span class="nx">strings</span><span class="p">.</span><span class="nf">ToUpper</span><span class="p">(</span><span class="nx">scanner</span><span class="p">.</span><span class="nf">Text</span><span class="p">())</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -132,10 +128,10 @@ from the input.</p>
|
||||
</td>
|
||||
<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">ucl</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">ucl</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -147,13 +143,13 @@ expected and not reported by <code>Scan</code> as an error.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">scanner</span><span class="p">.</span><span class="nx">Err</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="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>
|
||||
<pre class="chroma">
|
||||
<span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">scanner</span><span class="p">.</span><span class="nf">Err</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="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">Exit</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -169,10 +165,9 @@ lowercase lines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<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
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> echo 'hello' > /tmp/lines
|
||||
<span class="gp">$</span> echo 'filter' >> /tmp/lines</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -183,11 +178,10 @@ lowercase lines.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> cat /tmp/lines <span class="p">|</span> go run line-filters.go
|
||||
<span class="go">HELLO</span>
|
||||
<span class="go">FILTER</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> cat /tmp/lines | go run line-filters.go
|
||||
<span class="go">HELLO
|
||||
</span><span class="go">FILTER</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
90
public/maps
generated
90
public/maps
generated
@ -43,9 +43,8 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/agK2Ro2i-Lu"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,9 +54,8 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -67,9 +65,8 @@
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -81,9 +78,9 @@
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -95,10 +92,10 @@ syntax.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -110,9 +107,9 @@ its key/value pairs.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -123,10 +120,10 @@ its key/value pairs.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -138,9 +135,9 @@ pairs when called on a map.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -152,10 +149,10 @@ a map.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -172,10 +169,10 @@ itself, so we ignored it with the <em>blank identifier</em>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<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="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -187,11 +184,11 @@ the same line with this syntax.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -207,15 +204,14 @@ printed with <code>fmt.Println</code>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<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">v1: 7</span>
|
||||
<span class="go">len: 2</span>
|
||||
<span class="go">map: map[k1:7]</span>
|
||||
<span class="go">prs: false</span>
|
||||
<span class="go">map: map[bar:2 foo:1]</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run maps.go
|
||||
<span class="go">map: map[k1:7 k2:13]
|
||||
</span><span class="go">v1: 7
|
||||
</span><span class="go">len: 2
|
||||
</span><span class="go">map: map[k1:7]
|
||||
</span><span class="go">prs: false
|
||||
</span><span class="go">map: map[bar:2 foo:1]</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
62
public/methods
generated
62
public/methods
generated
@ -42,9 +42,8 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/4wmDCAydC1e"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -54,9 +53,8 @@
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -66,11 +64,10 @@
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"><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="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -81,11 +78,11 @@
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">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="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -97,11 +94,11 @@ receiver types. Here’s an example of a value receiver.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">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="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -111,10 +108,9 @@ receiver types. Here’s an example of a value receiver.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -125,10 +121,10 @@ receiver types. Here’s an example of a value receiver.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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 class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">area</span><span class="p">())</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">perim</span><span class="p">())</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -143,12 +139,12 @@ receiving struct.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<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="nf">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="nf">area</span><span class="p">())</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">perim</span><span class="p">())</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -162,13 +158,11 @@ receiving struct.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run methods.go
|
||||
<span class="go">area: 50</span>
|
||||
<span class="go">perim: 30</span>
|
||||
<span class="go">area: 50</span>
|
||||
<span class="go">perim: 30</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run methods.go
|
||||
<span class="go">area: 50
|
||||
</span><span class="go">perim: 30
|
||||
</span><span class="go">area: 50
|
||||
</span><span class="go">perim: 30</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
49
public/multiple-return-values
generated
49
public/multiple-return-values
generated
@ -44,9 +44,8 @@ to return both result and error values from a function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/vZdUvLB1WbK"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,9 +55,8 @@ to return both result and error values from a function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -70,11 +68,11 @@ the function returns 2 <code>int</code>s.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">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="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -84,9 +82,8 @@ the function returns 2 <code>int</code>s.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -98,11 +95,11 @@ call with <em>multiple assignment</em>.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">a</span><span class="p">,</span> <span class="nx">b</span> <span class="o">:=</span> <span class="nf">vals</span><span class="p">()</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">Println</span><span class="p">(</span><span class="nx">b</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -114,11 +111,11 @@ use the blank identifier <code>_</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">_</span><span class="p">,</span> <span class="nx">c</span> <span class="o">:=</span> <span class="nf">vals</span><span class="p">()</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">c</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -132,12 +129,10 @@ use the blank identifier <code>_</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run multiple-return-values.go
|
||||
<span class="go">3</span>
|
||||
<span class="go">7</span>
|
||||
<span class="go">7</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run multiple-return-values.go
|
||||
<span class="go">3
|
||||
</span><span class="go">7
|
||||
</span><span class="go">7</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
124
public/mutexes
generated
124
public/mutexes
generated
@ -45,9 +45,8 @@ to safely access data across multiple goroutines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/CHCDredHCOz"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,15 +56,14 @@ to safely access data across multiple goroutines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"math/rand"</span>
|
||||
<span class="s">"sync"</span>
|
||||
<span class="s">"sync/atomic"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"math/rand"</span>
|
||||
<span class="s">"sync"</span>
|
||||
<span class="s">"sync/atomic"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -75,9 +73,8 @@ to safely access data across multiple goroutines.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -88,9 +85,9 @@ to safely access data across multiple goroutines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">state</span> <span class="p">=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">map</span><span class="p">[</span><span class="kt">int</span><span class="p">]</span><span class="kt">int</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">state</span> <span class="p">=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">map</span><span class="p">[</span><span class="kt">int</span><span class="p">]</span><span class="kt">int</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -101,9 +98,9 @@ to safely access data across multiple goroutines.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">mutex</span> <span class="p">=</span> <span class="o">&</span><span class="nx">sync</span><span class="p">.</span><span class="nx">Mutex</span><span class="p">{}</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">mutex</span> <span class="p">=</span> <span class="o">&</span><span class="nx">sync</span><span class="p">.</span><span class="nx">Mutex</span><span class="p">{}</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -115,10 +112,10 @@ operations we do.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">readOps</span> <span class="kt">uint64</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">readOps</span> <span class="kt">uint64</span>
|
||||
<span class="kd">var</span> <span class="nx">writeOps</span> <span class="kt">uint64</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -131,12 +128,12 @@ each goroutine.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">r</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">r</span> <span class="p"><</span> <span class="mi">100</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">r</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">r</span> <span class="p"><</span> <span class="mi">100</span><span class="p">;</span> <span class="nx">r</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="nx">total</span> <span class="o">:=</span> <span class="mi">0</span>
|
||||
<span class="k">for</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -152,13 +149,13 @@ the <code>readOps</code> count.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">key</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nx">Lock</span><span class="p">()</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">key</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nf">Lock</span><span class="p">()</span>
|
||||
<span class="nx">total</span> <span class="o">+=</span> <span class="nx">state</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span>
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nx">Unlock</span><span class="p">()</span>
|
||||
<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">readOps</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nf">Unlock</span><span class="p">()</span>
|
||||
<span class="nx">atomic</span><span class="p">.</span><span class="nf">AddUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">readOps</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -169,12 +166,12 @@ the <code>readOps</code> count.</p>
|
||||
</td>
|
||||
<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">Millisecond</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}()</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -186,21 +183,21 @@ using the same pattern we did for reads.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">w</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">w</span> <span class="p"><</span> <span class="mi">10</span><span class="p">;</span> <span class="nx">w</span><span class="o">++</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">w</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">w</span> <span class="p"><</span> <span class="mi">10</span><span class="p">;</span> <span class="nx">w</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">for</span> <span class="p">{</span>
|
||||
<span class="nx">key</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
|
||||
<span class="nx">val</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nx">Lock</span><span class="p">()</span>
|
||||
<span class="nx">key</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
|
||||
<span class="nx">val</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">)</span>
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nf">Lock</span><span class="p">()</span>
|
||||
<span class="nx">state</span><span class="p">[</span><span class="nx">key</span><span class="p">]</span> <span class="p">=</span> <span class="nx">val</span>
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nx">Unlock</span><span class="p">()</span>
|
||||
<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">writeOps</span><span class="p">,</span> <span class="mi">1</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">Millisecond</span><span class="p">)</span>
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nf">Unlock</span><span class="p">()</span>
|
||||
<span class="nx">atomic</span><span class="p">.</span><span class="nf">AddUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">writeOps</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}()</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -212,9 +209,9 @@ using the same pattern we did for reads.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -225,12 +222,12 @@ using the same pattern we did for reads.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">readOpsFinal</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">readOps</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">"readOps:"</span><span class="p">,</span> <span class="nx">readOpsFinal</span><span class="p">)</span>
|
||||
<span class="nx">writeOpsFinal</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">writeOps</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">"writeOps:"</span><span class="p">,</span> <span class="nx">writeOpsFinal</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">readOpsFinal</span> <span class="o">:=</span> <span class="nx">atomic</span><span class="p">.</span><span class="nf">LoadUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">readOps</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"readOps:"</span><span class="p">,</span> <span class="nx">readOpsFinal</span><span class="p">)</span>
|
||||
<span class="nx">writeOpsFinal</span> <span class="o">:=</span> <span class="nx">atomic</span><span class="p">.</span><span class="nf">LoadUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">writeOps</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"writeOps:"</span><span class="p">,</span> <span class="nx">writeOpsFinal</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -241,12 +238,12 @@ using the same pattern we did for reads.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">mutex</span><span class="p">.</span><span class="nx">Lock</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">"state:"</span><span class="p">,</span> <span class="nx">state</span><span class="p">)</span>
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nx">Unlock</span><span class="p">()</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nf">Lock</span><span class="p">()</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"state:"</span><span class="p">,</span> <span class="nx">state</span><span class="p">)</span>
|
||||
<span class="nx">mutex</span><span class="p">.</span><span class="nf">Unlock</span><span class="p">()</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -263,12 +260,11 @@ using the same pattern we did for reads.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run mutexes.go
|
||||
<span class="go">readOps: 83285</span>
|
||||
<span class="go">writeOps: 8320</span>
|
||||
<span class="go">state: map[1:97 4:53 0:33 2:15 3:2]</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run mutexes.go
|
||||
<span class="go">readOps: 83285
|
||||
</span><span class="go">writeOps: 8320
|
||||
</span><span class="go">state: map[1:97 4:53 0:33 2:15 3:2]</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
57
public/non-blocking-channel-operations
generated
57
public/non-blocking-channel-operations
generated
@ -45,9 +45,8 @@ non-blocking multi-way <code>select</code>s.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/TFv6-7OVNVq"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,9 +56,8 @@ non-blocking multi-way <code>select</code>s.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -69,11 +67,10 @@ non-blocking multi-way <code>select</code>s.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
<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="nx">signals</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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -87,14 +84,14 @@ it will immediately take the <code>default</code> case.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">select</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">select</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="nx">msg</span> <span class="o">:=</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="s">"received message"</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="nf">Println</span><span class="p">(</span><span class="s">"received message"</span><span class="p">,</span> <span class="nx">msg</span><span class="p">)</span>
|
||||
<span class="k">default</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">"no message received"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"no message received"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -108,15 +105,15 @@ Therefore the <code>default</code> case is selected.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">msg</span> <span class="o">:=</span> <span class="s">"hi"</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">msg</span> <span class="o">:=</span> <span class="s">"hi"</span>
|
||||
<span class="k">select</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="nx">messages</span> <span class="o"><-</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="s">"sent message"</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="nf">Println</span><span class="p">(</span><span class="s">"sent message"</span><span class="p">,</span> <span class="nx">msg</span><span class="p">)</span>
|
||||
<span class="k">default</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">"no message sent"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"no message sent"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -130,17 +127,17 @@ on both <code>messages</code> and <code>signals</code>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">select</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">select</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="nx">msg</span> <span class="o">:=</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="s">"received message"</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="nf">Println</span><span class="p">(</span><span class="s">"received message"</span><span class="p">,</span> <span class="nx">msg</span><span class="p">)</span>
|
||||
<span class="k">case</span> <span class="nx">sig</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">signals</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">"received signal"</span><span class="p">,</span> <span class="nx">sig</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"received signal"</span><span class="p">,</span> <span class="nx">sig</span><span class="p">)</span>
|
||||
<span class="k">default</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">"no activity"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"no activity"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -154,12 +151,10 @@ on both <code>messages</code> and <code>signals</code>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run non-blocking-channel-operations.go
|
||||
<span class="go">no message received</span>
|
||||
<span class="go">no message sent</span>
|
||||
<span class="go">no activity</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run non-blocking-channel-operations.go
|
||||
<span class="go">no message received
|
||||
</span><span class="go">no message sent
|
||||
</span><span class="go">no activity</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
84
public/number-parsing
generated
84
public/number-parsing
generated
@ -43,9 +43,8 @@ in many programs; here’s how to do it in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/ZAMEid6Fpmu"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,12 +56,12 @@ parsing.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"strconv"</span>
|
||||
<pre class="chroma">
|
||||
<span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"strconv"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -72,9 +71,8 @@ parsing.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -86,10 +84,10 @@ precision to parse.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">f</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nx">ParseFloat</span><span class="p">(</span><span class="s">"1.234"</span><span class="p">,</span> <span class="mi">64</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">f</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">f</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nf">ParseFloat</span><span class="p">(</span><span class="s">"1.234"</span><span class="p">,</span> <span class="mi">64</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -102,10 +100,10 @@ bits.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">i</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nx">ParseInt</span><span class="p">(</span><span class="s">"123"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">64</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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">i</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nf">ParseInt</span><span class="p">(</span><span class="s">"123"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">64</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">i</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -116,10 +114,10 @@ bits.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">d</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nx">ParseInt</span><span class="p">(</span><span class="s">"0x1c8"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">64</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 class="chroma">
|
||||
<span class="nx">d</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nf">ParseInt</span><span class="p">(</span><span class="s">"0x1c8"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">64</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -130,10 +128,10 @@ bits.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">u</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nx">ParseUint</span><span class="p">(</span><span class="s">"789"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">64</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">u</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">u</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nf">ParseUint</span><span class="p">(</span><span class="s">"789"</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">64</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">u</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -145,10 +143,10 @@ bits.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">k</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nx">Atoi</span><span class="p">(</span><span class="s">"135"</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">k</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">k</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nf">Atoi</span><span class="p">(</span><span class="s">"135"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">k</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -159,11 +157,11 @@ bits.</p>
|
||||
</td>
|
||||
<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">strconv</span><span class="p">.</span><span class="nx">Atoi</span><span class="p">(</span><span class="s">"wat"</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">e</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">_</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="nx">strconv</span><span class="p">.</span><span class="nf">Atoi</span><span class="p">(</span><span class="s">"wat"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -177,15 +175,13 @@ bits.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run number-parsing.go
|
||||
<span class="go">1.234</span>
|
||||
<span class="go">123</span>
|
||||
<span class="go">456</span>
|
||||
<span class="go">789</span>
|
||||
<span class="go">135</span>
|
||||
<span class="go">strconv.ParseInt: parsing "wat": invalid syntax</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run number-parsing.go
|
||||
<span class="go">1.234
|
||||
</span><span class="go">123
|
||||
</span><span class="go">456
|
||||
</span><span class="go">789
|
||||
</span><span class="go">135
|
||||
</span><span class="go">strconv.ParseInt: parsing "wat": invalid syntax</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
46
public/panic
generated
46
public/panic
generated
@ -45,9 +45,8 @@ aren’t prepared to handle gracefully.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/9-2vCvRuhmE"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,9 +56,8 @@ aren’t prepared to handle gracefully.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"os"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"os"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -69,9 +67,8 @@ aren’t prepared to handle gracefully.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -84,9 +81,9 @@ site designed to panic.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nb">panic</span><span class="p">(</span><span class="s">"a problem"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nb">panic</span><span class="p">(</span><span class="s">"a problem"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -100,13 +97,13 @@ returns an error value that we don’t know how to
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">_</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="s">"/tmp/file"</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">_</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="nf">Create</span><span class="p">(</span><span class="s">"/tmp/file"</span><span class="p">)</span>
|
||||
<span class="k">if</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="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -123,10 +120,9 @@ a non-zero status.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run panic.go
|
||||
<span class="go">panic: a problem</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run panic.go
|
||||
<span class="go">panic: a problem</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -136,13 +132,11 @@ a non-zero status.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="go">goroutine 1 [running]:</span>
|
||||
<span class="go">main.main()</span>
|
||||
<span class="go"> /.../panic.go:12 +0x47</span>
|
||||
<span class="go">...</span>
|
||||
<span class="go">exit status 2</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="go">goroutine 1 [running]:
|
||||
</span><span class="go">main.main()
|
||||
</span><span class="go"> /.../panic.go:12 +0x47
|
||||
</span><span class="go">...
|
||||
</span><span class="go">exit status 2</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
63
public/pointers
generated
63
public/pointers
generated
@ -44,9 +44,8 @@ within your program.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/oimmXypnAcs"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,9 +55,8 @@ within your program.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -73,11 +71,11 @@ from the one in the calling function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">zeroval</span><span class="p">(</span><span class="nx">ival</span> <span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">zeroval</span><span class="p">(</span><span class="nx">ival</span> <span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">ival</span> <span class="p">=</span> <span class="mi">0</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -93,11 +91,11 @@ value at the referenced address.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">zeroptr</span><span class="p">(</span><span class="nx">iptr</span> <span class="o">*</span><span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">zeroptr</span><span class="p">(</span><span class="nx">iptr</span> <span class="o">*</span><span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="o">*</span><span class="nx">iptr</span> <span class="p">=</span> <span class="mi">0</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -107,11 +105,10 @@ value at the referenced address.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">i</span> <span class="o">:=</span> <span class="mi">1</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"initial:"</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"initial:"</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -121,10 +118,9 @@ value at the referenced address.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">zeroval</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="s">"zeroval:"</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="nf">zeroval</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="nf">Println</span><span class="p">(</span><span class="s">"zeroval:"</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -136,10 +132,10 @@ i.e. a pointer to <code>i</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">zeroptr</span><span class="p">(</span><span class="o">&</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="s">"zeroptr:"</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nf">zeroptr</span><span class="p">(</span><span class="o">&</span><span class="nx">i</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"zeroptr:"</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -150,10 +146,10 @@ i.e. a pointer to <code>i</code>.</p>
|
||||
</td>
|
||||
<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">"pointer:"</span><span class="p">,</span> <span class="o">&</span><span class="nx">i</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"pointer:"</span><span class="p">,</span> <span class="o">&</span><span class="nx">i</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -170,13 +166,12 @@ the memory address for that variable.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run pointers.go
|
||||
<span class="go">initial: 1</span>
|
||||
<span class="go">zeroval: 1</span>
|
||||
<span class="go">zeroptr: 0</span>
|
||||
<span class="go">pointer: 0x42131100</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run pointers.go
|
||||
<span class="go">initial: 1
|
||||
</span><span class="go">zeroval: 1
|
||||
</span><span class="go">zeroptr: 0
|
||||
</span><span class="go">pointer: 0x42131100</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
103
public/random-numbers
generated
103
public/random-numbers
generated
@ -44,9 +44,8 @@ generation.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/PGklfJzErTN"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,13 +55,12 @@ generation.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"math/rand"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"math/rand"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -72,9 +70,8 @@ generation.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -86,11 +83,11 @@ generation.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="nx">rand</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">","</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="nx">rand</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">(</span><span class="nx">rand</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">","</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">(</span><span class="nx">rand</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -102,9 +99,9 @@ generation.</p>
|
||||
</td>
|
||||
<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">rand</span><span class="p">.</span><span class="nx">Float64</span><span class="p">())</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">rand</span><span class="p">.</span><span class="nf">Float64</span><span class="p">())</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -116,11 +113,11 @@ other ranges, for example <code>5.0 <= f' < 10.0</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">((</span><span class="nx">rand</span><span class="p">.</span><span class="nx">Float64</span><span class="p">()</span><span class="o">*</span><span class="mi">5</span><span class="p">)</span><span class="o">+</span><span class="mi">5</span><span class="p">,</span> <span class="s">","</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="nx">rand</span><span class="p">.</span><span class="nx">Float64</span><span class="p">()</span> <span class="o">*</span> <span class="mi">5</span><span class="p">)</span> <span class="o">+</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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">((</span><span class="nx">rand</span><span class="p">.</span><span class="nf">Float64</span><span class="p">()</span><span class="o">*</span><span class="mi">5</span><span class="p">)</span><span class="o">+</span><span class="mi">5</span><span class="p">,</span> <span class="s">","</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">((</span><span class="nx">rand</span><span class="p">.</span><span class="nf">Float64</span><span class="p">()</span> <span class="o">*</span> <span class="mi">5</span><span class="p">)</span> <span class="o">+</span> <span class="mi">5</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -135,10 +132,10 @@ intend to be secret, use <code>crypto/rand</code> for those.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">s1</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">NewSource</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Now</span><span class="p">().</span><span class="nx">UnixNano</span><span class="p">())</span>
|
||||
<span class="nx">r1</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">New</span><span class="p">(</span><span class="nx">s1</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">s1</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">NewSource</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nf">Now</span><span class="p">().</span><span class="nf">UnixNano</span><span class="p">())</span>
|
||||
<span class="nx">r1</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">New</span><span class="p">(</span><span class="nx">s1</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -150,11 +147,11 @@ functions on the <code>rand</code> package.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="nx">r1</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">","</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="nx">r1</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">(</span><span class="nx">r1</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">","</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">(</span><span class="nx">r1</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -166,18 +163,18 @@ produces the same sequence of random numbers.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">s2</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">NewSource</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
||||
<span class="nx">r2</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">New</span><span class="p">(</span><span class="nx">s2</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="nx">r2</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">","</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="nx">r2</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</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">s3</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">NewSource</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
||||
<span class="nx">r3</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">New</span><span class="p">(</span><span class="nx">s3</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="nx">r3</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">","</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="nx">r3</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">s2</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">NewSource</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
||||
<span class="nx">r2</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">New</span><span class="p">(</span><span class="nx">s2</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">(</span><span class="nx">r2</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">","</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">(</span><span class="nx">r2</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">()</span>
|
||||
<span class="nx">s3</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">NewSource</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
|
||||
<span class="nx">r3</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">New</span><span class="p">(</span><span class="nx">s3</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">(</span><span class="nx">r3</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">","</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">(</span><span class="nx">r3</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -191,15 +188,13 @@ produces the same sequence of random numbers.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run random-numbers.go
|
||||
<span class="go">81,87</span>
|
||||
<span class="go">0.6645600532184904</span>
|
||||
<span class="go">7.123187485356329,8.434115364335547</span>
|
||||
<span class="go">0,28</span>
|
||||
<span class="go">5,87</span>
|
||||
<span class="go">5,87</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run random-numbers.go
|
||||
<span class="go">81,87
|
||||
</span><span class="go">0.6645600532184904
|
||||
</span><span class="go">7.123187485356329,8.434115364335547
|
||||
</span><span class="go">0,28
|
||||
</span><span class="go">5,87
|
||||
</span><span class="go">5,87</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
75
public/range
generated
75
public/range
generated
@ -44,9 +44,8 @@ of the data structures we’ve already learned.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/pdZOtv4g-7J"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,9 +55,8 @@ of the data structures we’ve already learned.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -68,9 +66,8 @@ of the data structures we’ve already learned.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -82,14 +79,14 @@ Arrays work like this too.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">nums</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">int</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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">nums</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">int</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="nx">sum</span> <span class="o">:=</span> <span class="mi">0</span>
|
||||
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">num</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">nums</span> <span class="p">{</span>
|
||||
<span class="nx">sum</span> <span class="o">+=</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="s">"sum:"</span><span class="p">,</span> <span class="nx">sum</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"sum:"</span><span class="p">,</span> <span class="nx">sum</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -104,13 +101,13 @@ the indexes though.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">num</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">nums</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">num</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">nums</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="nx">num</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="s">"index:"</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="nf">Println</span><span class="p">(</span><span class="s">"index:"</span><span class="p">,</span> <span class="nx">i</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -121,12 +118,12 @@ the indexes though.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">kvs</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">string</span><span class="p">{</span><span class="s">"a"</span><span class="p">:</span> <span class="s">"apple"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">:</span> <span class="s">"banana"</span><span class="p">}</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">kvs</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">string</span><span class="p">{</span><span class="s">"a"</span><span class="p">:</span> <span class="s">"apple"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">:</span> <span class="s">"banana"</span><span class="p">}</span>
|
||||
<span class="k">for</span> <span class="nx">k</span><span class="p">,</span> <span class="nx">v</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">kvs</span> <span class="p">{</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%s -> %s\n"</span><span class="p">,</span> <span class="nx">k</span><span class="p">,</span> <span class="nx">v</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%s -> %s\n"</span><span class="p">,</span> <span class="nx">k</span><span class="p">,</span> <span class="nx">v</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -137,11 +134,11 @@ the indexes though.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">k</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">kvs</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">"key:"</span><span class="p">,</span> <span class="nx">k</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">k</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">kvs</span> <span class="p">{</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"key:"</span><span class="p">,</span> <span class="nx">k</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -154,12 +151,12 @@ of the <code>rune</code> and the second the <code>rune</code> itself.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">c</span> <span class="o">:=</span> <span class="k">range</span> <span class="s">"go"</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">c</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">i</span><span class="p">,</span> <span class="nx">c</span> <span class="o">:=</span> <span class="k">range</span> <span class="s">"go"</span> <span class="p">{</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">c</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -173,17 +170,15 @@ of the <code>rune</code> and the second the <code>rune</code> itself.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run range.go
|
||||
<span class="go">sum: 9</span>
|
||||
<span class="go">index: 1</span>
|
||||
<span class="go">a -> apple</span>
|
||||
<span class="go">b -> banana</span>
|
||||
<span class="go">key: a</span>
|
||||
<span class="go">key: b</span>
|
||||
<span class="go">0 103</span>
|
||||
<span class="go">1 111</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run range.go
|
||||
<span class="go">sum: 9
|
||||
</span><span class="go">index: 1
|
||||
</span><span class="go">a -> apple
|
||||
</span><span class="go">b -> banana
|
||||
</span><span class="go">key: a
|
||||
</span><span class="go">key: b
|
||||
</span><span class="go">0 103
|
||||
</span><span class="go">1 111</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
41
public/range-over-channels
generated
41
public/range-over-channels
generated
@ -45,9 +45,8 @@ values received from a channel.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/yQMclmwOYs9"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,9 +56,8 @@ values received from a channel.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -69,9 +67,8 @@ values received from a channel.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -82,12 +79,12 @@ values received from a channel.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">queue</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>
|
||||
<span class="nx">queue</span> <span class="o"><-</span> <span class="s">"one"</span>
|
||||
<span class="nx">queue</span> <span class="o"><-</span> <span class="s">"two"</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">queue</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>
|
||||
<span class="nx">queue</span> <span class="o"><-</span> <span class="s">"one"</span>
|
||||
<span class="nx">queue</span> <span class="o"><-</span> <span class="s">"two"</span>
|
||||
<span class="nb">close</span><span class="p">(</span><span class="nx">queue</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -101,12 +98,12 @@ receiving the 2 elements.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">elem</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">queue</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">elem</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">elem</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">queue</span> <span class="p">{</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">elem</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -120,11 +117,9 @@ receiving the 2 elements.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run range-over-channels.go
|
||||
<span class="go">one</span>
|
||||
<span class="go">two</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run range-over-channels.go
|
||||
<span class="go">one
|
||||
</span><span class="go">two</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
97
public/rate-limiting
generated
97
public/rate-limiting
generated
@ -46,9 +46,8 @@ channels, and <a href="tickers">tickers</a>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/GXjXHfnKFXg"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -58,12 +57,11 @@ channels, and <a href="tickers">tickers</a>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -73,9 +71,8 @@ channels, and <a href="tickers">tickers</a>.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -89,13 +86,13 @@ same name.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">requests</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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">requests</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="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><=</span> <span class="mi">5</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
||||
<span class="nx">requests</span> <span class="o"><-</span> <span class="nx">i</span>
|
||||
<span class="p">}</span>
|
||||
<span class="nb">close</span><span class="p">(</span><span class="nx">requests</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -108,9 +105,9 @@ our rate limiting scheme.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">limiter</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Tick</span><span class="p">(</span><span class="mi">200</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">limiter</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Tick</span><span class="p">(</span><span class="mi">200</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -123,12 +120,12 @@ before serving each request, we limit ourselves to
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">req</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">requests</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">req</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">requests</span> <span class="p">{</span>
|
||||
<span class="o"><-</span><span class="nx">limiter</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"request"</span><span class="p">,</span> <span class="nx">req</span><span class="p">,</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Now</span><span class="p">())</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"request"</span><span class="p">,</span> <span class="nx">req</span><span class="p">,</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Now</span><span class="p">())</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -143,9 +140,9 @@ channel will allow bursts of up to 3 events.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">burstyLimiter</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Time</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">burstyLimiter</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Time</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -156,11 +153,11 @@ channel will allow bursts of up to 3 events.</p>
|
||||
</td>
|
||||
<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">3</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
||||
<span class="nx">burstyLimiter</span> <span class="o"><-</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Now</span><span class="p">()</span>
|
||||
<pre class="chroma">
|
||||
<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">burstyLimiter</span> <span class="o"><-</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Now</span><span class="p">()</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -172,13 +169,13 @@ value to <code>burstyLimiter</code>, up to its limit of 3.</p>
|
||||
</td>
|
||||
<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="k">for</span> <span class="nx">t</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Tick</span><span class="p">(</span><span class="mi">200</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<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="nx">t</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Tick</span><span class="p">(</span><span class="mi">200</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">burstyLimiter</span> <span class="o"><-</span> <span class="nx">t</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}()</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -191,18 +188,18 @@ of <code>burstyLimiter</code>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">burstyRequests</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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">burstyRequests</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="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><=</span> <span class="mi">5</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
||||
<span class="nx">burstyRequests</span> <span class="o"><-</span> <span class="nx">i</span>
|
||||
<span class="p">}</span>
|
||||
<span class="nb">close</span><span class="p">(</span><span class="nx">burstyRequests</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="nx">req</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">burstyRequests</span> <span class="p">{</span>
|
||||
<span class="o"><-</span><span class="nx">burstyLimiter</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"request"</span><span class="p">,</span> <span class="nx">req</span><span class="p">,</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Now</span><span class="p">())</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"request"</span><span class="p">,</span> <span class="nx">req</span><span class="p">,</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Now</span><span class="p">())</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -218,14 +215,13 @@ handled once every ~200 milliseconds as desired.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run rate-limiting.go
|
||||
<span class="go">request 1 2012-10-19 00:38:18.687438 +0000 UTC</span>
|
||||
<span class="go">request 2 2012-10-19 00:38:18.887471 +0000 UTC</span>
|
||||
<span class="go">request 3 2012-10-19 00:38:19.087238 +0000 UTC</span>
|
||||
<span class="go">request 4 2012-10-19 00:38:19.287338 +0000 UTC</span>
|
||||
<span class="go">request 5 2012-10-19 00:38:19.487331 +0000 UTC</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run rate-limiting.go
|
||||
<span class="go">request 1 2012-10-19 00:38:18.687438 +0000 UTC
|
||||
</span><span class="go">request 2 2012-10-19 00:38:18.887471 +0000 UTC
|
||||
</span><span class="go">request 3 2012-10-19 00:38:19.087238 +0000 UTC
|
||||
</span><span class="go">request 4 2012-10-19 00:38:19.287338 +0000 UTC
|
||||
</span><span class="go">request 5 2012-10-19 00:38:19.487331 +0000 UTC</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -238,13 +234,12 @@ then serve the remaining 2 with ~200ms delays each.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="go">request 1 2012-10-19 00:38:20.487578 +0000 UTC</span>
|
||||
<span class="go">request 2 2012-10-19 00:38:20.487645 +0000 UTC</span>
|
||||
<span class="go">request 3 2012-10-19 00:38:20.487676 +0000 UTC</span>
|
||||
<span class="go">request 4 2012-10-19 00:38:20.687483 +0000 UTC</span>
|
||||
<span class="go">request 5 2012-10-19 00:38:20.887542 +0000 UTC</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="go">request 1 2012-10-19 00:38:20.487578 +0000 UTC
|
||||
</span><span class="go">request 2 2012-10-19 00:38:20.487645 +0000 UTC
|
||||
</span><span class="go">request 3 2012-10-19 00:38:20.487676 +0000 UTC
|
||||
</span><span class="go">request 4 2012-10-19 00:38:20.687483 +0000 UTC
|
||||
</span><span class="go">request 5 2012-10-19 00:38:20.887542 +0000 UTC</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
135
public/reading-files
generated
135
public/reading-files
generated
@ -44,9 +44,8 @@ reading files.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/kF0cDC0drsX"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,15 +55,14 @@ reading files.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"bufio"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"bufio"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -76,13 +74,13 @@ This helper will streamline our error checks below.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">check</span><span class="p">(</span><span class="nx">e</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">check</span><span class="p">(</span><span class="nx">e</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="nx">e</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">e</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -92,9 +90,8 @@ This helper will streamline our error checks below.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -106,11 +103,11 @@ slurping a file’s entire contents into memory.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">dat</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nx">ReadFile</span><span class="p">(</span><span class="s">"/tmp/dat"</span><span class="p">)</span>
|
||||
<span class="nx">check</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">Print</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">dat</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">dat</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nf">ReadFile</span><span class="p">(</span><span class="s">"/tmp/dat"</span><span class="p">)</span>
|
||||
<span class="nf">check</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="nf">Print</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">dat</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -123,10 +120,10 @@ by <code>Open</code>ing a file to obtain an <code>os.File</code> value.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <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">Open</span><span class="p">(</span><span class="s">"/tmp/dat"</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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="nf">Open</span><span class="p">(</span><span class="s">"/tmp/dat"</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -139,12 +136,12 @@ actually were read.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">b1</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([]</span><span class="kt">byte</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
|
||||
<span class="nx">n1</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">Read</span><span class="p">(</span><span class="nx">b1</span><span class="p">)</span>
|
||||
<span class="nx">check</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">Printf</span><span class="p">(</span><span class="s">"%d bytes: %s\n"</span><span class="p">,</span> <span class="nx">n1</span><span class="p">,</span> <span class="nb">string</span><span class="p">(</span><span class="nx">b1</span><span class="p">[:</span><span class="nx">n1</span><span class="p">]))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">b1</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([]</span><span class="kt">byte</span><span class="p">,</span> <span class="mi">5</span><span class="p">)</span>
|
||||
<span class="nx">n1</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nf">Read</span><span class="p">(</span><span class="nx">b1</span><span class="p">)</span>
|
||||
<span class="nf">check</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="nf">Printf</span><span class="p">(</span><span class="s">"%d bytes: %s\n"</span><span class="p">,</span> <span class="nx">n1</span><span class="p">,</span> <span class="nb">string</span><span class="p">(</span><span class="nx">b1</span><span class="p">[:</span><span class="nx">n1</span><span class="p">]))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -156,15 +153,15 @@ and <code>Read</code> from there.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">o2</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">Seek</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">o2</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nf">Seek</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
<span class="nx">b2</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([]</span><span class="kt">byte</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<span class="nx">n2</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">Read</span><span class="p">(</span><span class="nx">b2</span><span class="p">)</span>
|
||||
<span class="nx">check</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">Printf</span><span class="p">(</span><span class="s">"%d bytes @ %d: "</span><span class="p">,</span> <span class="nx">n2</span><span class="p">,</span> <span class="nx">o2</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%v\n"</span><span class="p">,</span> <span class="nb">string</span><span class="p">(</span><span class="nx">b2</span><span class="p">[:</span><span class="nx">n2</span><span class="p">]))</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">n2</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nf">Read</span><span class="p">(</span><span class="nx">b2</span><span class="p">)</span>
|
||||
<span class="nf">check</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="nf">Printf</span><span class="p">(</span><span class="s">"%d bytes @ %d: "</span><span class="p">,</span> <span class="nx">n2</span><span class="p">,</span> <span class="nx">o2</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%v\n"</span><span class="p">,</span> <span class="nb">string</span><span class="p">(</span><span class="nx">b2</span><span class="p">[:</span><span class="nx">n2</span><span class="p">]))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -178,14 +175,14 @@ implemented with <code>ReadAtLeast</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">o3</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">Seek</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">o3</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nf">Seek</span><span class="p">(</span><span class="mi">6</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
<span class="nx">b3</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([]</span><span class="kt">byte</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<span class="nx">n3</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">io</span><span class="p">.</span><span class="nx">ReadAtLeast</span><span class="p">(</span><span class="nx">f</span><span class="p">,</span> <span class="nx">b3</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<span class="nx">check</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">Printf</span><span class="p">(</span><span class="s">"%d bytes @ %d: %s\n"</span><span class="p">,</span> <span class="nx">n3</span><span class="p">,</span> <span class="nx">o3</span><span class="p">,</span> <span class="nb">string</span><span class="p">(</span><span class="nx">b3</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">n3</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">io</span><span class="p">.</span><span class="nf">ReadAtLeast</span><span class="p">(</span><span class="nx">f</span><span class="p">,</span> <span class="nx">b3</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
|
||||
<span class="nf">check</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="nf">Printf</span><span class="p">(</span><span class="s">"%d bytes @ %d: %s\n"</span><span class="p">,</span> <span class="nx">n3</span><span class="p">,</span> <span class="nx">o3</span><span class="p">,</span> <span class="nb">string</span><span class="p">(</span><span class="nx">b3</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -197,10 +194,10 @@ accomplishes this.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">_</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">Seek</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">_</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">f</span><span class="p">.</span><span class="nf">Seek</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -214,12 +211,12 @@ reading methods it provides.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">r4</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">f</span><span class="p">)</span>
|
||||
<span class="nx">b4</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">r4</span><span class="p">.</span><span class="nx">Peek</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
|
||||
<span class="nx">check</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">Printf</span><span class="p">(</span><span class="s">"5 bytes: %s\n"</span><span class="p">,</span> <span class="nb">string</span><span class="p">(</span><span class="nx">b4</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">r4</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nf">NewReader</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||
<span class="nx">b4</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">r4</span><span class="p">.</span><span class="nf">Peek</span><span class="p">(</span><span class="mi">5</span><span class="p">)</span>
|
||||
<span class="nf">check</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="nf">Printf</span><span class="p">(</span><span class="s">"5 bytes: %s\n"</span><span class="p">,</span> <span class="nb">string</span><span class="p">(</span><span class="nx">b4</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -232,10 +229,10 @@ be scheduled immediately after <code>Open</code>ing with
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">f</span><span class="p">.</span><span class="nx">Close</span><span class="p">()</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">f</span><span class="p">.</span><span class="nf">Close</span><span class="p">()</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -249,17 +246,15 @@ be scheduled immediately after <code>Open</code>ing with
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> <span class="nb">echo</span> <span class="s2">"hello"</span> > /tmp/dat
|
||||
<span class="gp">$</span> <span class="nb">echo</span> <span class="s2">"go"</span> >> /tmp/dat
|
||||
<pre class="chroma"><span class="gp">$</span> echo "hello" > /tmp/dat
|
||||
<span class="gp">$</span> echo "go" >> /tmp/dat
|
||||
<span class="gp">$</span> go run reading-files.go
|
||||
<span class="go">hello</span>
|
||||
<span class="go">go</span>
|
||||
<span class="go">5 bytes: hello</span>
|
||||
<span class="go">2 bytes @ 6: go</span>
|
||||
<span class="go">2 bytes @ 6: go</span>
|
||||
<span class="go">5 bytes: hello</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="go">hello
|
||||
</span><span class="go">go
|
||||
</span><span class="go">5 bytes: hello
|
||||
</span><span class="go">2 bytes @ 6: go
|
||||
</span><span class="go">2 bytes @ 6: go
|
||||
</span><span class="go">5 bytes: hello</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
31
public/recursion
generated
31
public/recursion
generated
@ -44,9 +44,8 @@ Here’s a classic factorial example.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/smWim1q9ofu"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,9 +55,8 @@ Here’s a classic factorial example.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -70,14 +68,14 @@ base case of <code>fact(0)</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">fact</span><span class="p">(</span><span class="nx">n</span> <span class="kt">int</span><span class="p">)</span> <span class="kt">int</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">fact</span><span class="p">(</span><span class="nx">n</span> <span class="kt">int</span><span class="p">)</span> <span class="kt">int</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="nx">n</span> <span class="o">==</span> <span class="mi">0</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="mi">1</span>
|
||||
<span class="p">}</span>
|
||||
<span class="k">return</span> <span class="nx">n</span> <span class="o">*</span> <span class="nx">fact</span><span class="p">(</span><span class="nx">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="nx">n</span> <span class="o">*</span> <span class="nf">fact</span><span class="p">(</span><span class="nx">n</span><span class="o">-</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -87,11 +85,10 @@ base case of <code>fact(0)</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">fact</span><span class="p">(</span><span class="mi">7</span><span class="p">))</span>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">fact</span><span class="p">(</span><span class="mi">7</span><span class="p">))</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -105,10 +102,8 @@ base case of <code>fact(0)</code>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run recursion.go
|
||||
<span class="go">5040</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run recursion.go
|
||||
<span class="go">5040</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
145
public/regular-expressions
generated
145
public/regular-expressions
generated
@ -44,9 +44,8 @@ in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/LEKGY_d3Nu_P"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,13 +55,12 @@ in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"bytes"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"regexp"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"bytes"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"regexp"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -72,9 +70,8 @@ in Go.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -85,10 +82,10 @@ in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">match</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">regexp</span><span class="p">.</span><span class="nx">MatchString</span><span class="p">(</span><span class="s">"p([a-z]+)ch"</span><span class="p">,</span> <span class="s">"peach"</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">match</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">match</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">regexp</span><span class="p">.</span><span class="nf">MatchString</span><span class="p">(</span><span class="s">"p([a-z]+)ch"</span><span class="p">,</span> <span class="s">"peach"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">match</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -101,9 +98,9 @@ optimized <code>Regexp</code> struct.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">r</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">regexp</span><span class="p">.</span><span class="nx">Compile</span><span class="p">(</span><span class="s">"p([a-z]+)ch"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">r</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">regexp</span><span class="p">.</span><span class="nf">Compile</span><span class="p">(</span><span class="s">"p([a-z]+)ch"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -115,9 +112,9 @@ a match test like we saw earlier.</p>
|
||||
</td>
|
||||
<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">r</span><span class="p">.</span><span class="nx">MatchString</span><span class="p">(</span><span class="s">"peach"</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">MatchString</span><span class="p">(</span><span class="s">"peach"</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -128,9 +125,9 @@ a match test like we saw earlier.</p>
|
||||
</td>
|
||||
<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">r</span><span class="p">.</span><span class="nx">FindString</span><span class="p">(</span><span class="s">"peach punch"</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">FindString</span><span class="p">(</span><span class="s">"peach punch"</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -143,9 +140,9 @@ matching text.</p>
|
||||
</td>
|
||||
<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">r</span><span class="p">.</span><span class="nx">FindStringIndex</span><span class="p">(</span><span class="s">"peach punch"</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">FindStringIndex</span><span class="p">(</span><span class="s">"peach punch"</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -159,9 +156,9 @@ information for both <code>p([a-z]+)ch</code> and <code>([a-z]+)</code>.</p>
|
||||
</td>
|
||||
<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">r</span><span class="p">.</span><span class="nx">FindStringSubmatch</span><span class="p">(</span><span class="s">"peach punch"</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">FindStringSubmatch</span><span class="p">(</span><span class="s">"peach punch"</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -173,9 +170,9 @@ indexes of matches and submatches.</p>
|
||||
</td>
|
||||
<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">r</span><span class="p">.</span><span class="nx">FindStringSubmatchIndex</span><span class="p">(</span><span class="s">"peach punch"</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">FindStringSubmatchIndex</span><span class="p">(</span><span class="s">"peach punch"</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -188,9 +185,9 @@ example to find all matches for a regexp.</p>
|
||||
</td>
|
||||
<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">r</span><span class="p">.</span><span class="nx">FindAllString</span><span class="p">(</span><span class="s">"peach punch pinch"</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">FindAllString</span><span class="p">(</span><span class="s">"peach punch pinch"</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -202,10 +199,10 @@ functions we saw above as well.</p>
|
||||
</td>
|
||||
<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">r</span><span class="p">.</span><span class="nx">FindAllStringSubmatchIndex</span><span class="p">(</span>
|
||||
<span class="s">"peach punch pinch"</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">FindAllStringSubmatchIndex</span><span class="p">(</span>
|
||||
<span class="s">"peach punch pinch"</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -218,9 +215,9 @@ of matches.</p>
|
||||
</td>
|
||||
<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">r</span><span class="p">.</span><span class="nx">FindAllString</span><span class="p">(</span><span class="s">"peach punch pinch"</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">FindAllString</span><span class="p">(</span><span class="s">"peach punch pinch"</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -234,9 +231,9 @@ function name.</p>
|
||||
</td>
|
||||
<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">r</span><span class="p">.</span><span class="nx">Match</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="s">"peach"</span><span class="p">)))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">Match</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="s">"peach"</span><span class="p">)))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -251,10 +248,10 @@ global variables.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">r</span> <span class="p">=</span> <span class="nx">regexp</span><span class="p">.</span><span class="nx">MustCompile</span><span class="p">(</span><span class="s">"p([a-z]+)ch"</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">r</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">r</span> <span class="p">=</span> <span class="nx">regexp</span><span class="p">.</span><span class="nf">MustCompile</span><span class="p">(</span><span class="s">"p([a-z]+)ch"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -266,9 +263,9 @@ subsets of strings with other values.</p>
|
||||
</td>
|
||||
<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">r</span><span class="p">.</span><span class="nx">ReplaceAllString</span><span class="p">(</span><span class="s">"a peach"</span><span class="p">,</span> <span class="s">"<fruit>"</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">r</span><span class="p">.</span><span class="nf">ReplaceAllString</span><span class="p">(</span><span class="s">"a peach"</span><span class="p">,</span> <span class="s">"<fruit>"</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -280,12 +277,12 @@ text with a given function.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">in</span> <span class="o">:=</span> <span class="p">[]</span><span class="nb">byte</span><span class="p">(</span><span class="s">"a peach"</span><span class="p">)</span>
|
||||
<span class="nx">out</span> <span class="o">:=</span> <span class="nx">r</span><span class="p">.</span><span class="nx">ReplaceAllFunc</span><span class="p">(</span><span class="nx">in</span><span class="p">,</span> <span class="nx">bytes</span><span class="p">.</span><span class="nx">ToUpper</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">out</span><span class="p">))</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">in</span> <span class="o">:=</span> <span class="p">[]</span><span class="nb">byte</span><span class="p">(</span><span class="s">"a peach"</span><span class="p">)</span>
|
||||
<span class="nx">out</span> <span class="o">:=</span> <span class="nx">r</span><span class="p">.</span><span class="nf">ReplaceAllFunc</span><span class="p">(</span><span class="nx">in</span><span class="p">,</span> <span class="nx">bytes</span><span class="p">.</span><span class="nx">ToUpper</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">out</span><span class="p">))</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -299,22 +296,20 @@ text with a given function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run regular-expressions.go
|
||||
<span class="go">true</span>
|
||||
<span class="go">true</span>
|
||||
<span class="go">peach</span>
|
||||
<span class="go">[0 5]</span>
|
||||
<span class="go">[peach ea]</span>
|
||||
<span class="go">[0 5 1 3]</span>
|
||||
<span class="go">[peach punch pinch]</span>
|
||||
<span class="go">[[0 5 1 3] [6 11 7 9] [12 17 13 15]]</span>
|
||||
<span class="go">[peach punch]</span>
|
||||
<span class="go">true</span>
|
||||
<span class="go">p([a-z]+)ch</span>
|
||||
<span class="go">a <fruit></span>
|
||||
<span class="go">a PEACH</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run regular-expressions.go
|
||||
<span class="go">true
|
||||
</span><span class="go">true
|
||||
</span><span class="go">peach
|
||||
</span><span class="go">[0 5]
|
||||
</span><span class="go">[peach ea]
|
||||
</span><span class="go">[0 5 1 3]
|
||||
</span><span class="go">[peach punch pinch]
|
||||
</span><span class="go">[[0 5 1 3] [6 11 7 9] [12 17 13 15]]
|
||||
</span><span class="go">[peach punch]
|
||||
</span><span class="go">true
|
||||
</span><span class="go">p([a-z]+)ch
|
||||
</span><span class="go">a <fruit>
|
||||
</span><span class="go">a PEACH</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
63
public/select
generated
63
public/select
generated
@ -44,9 +44,8 @@ select is a powerful feature of Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/FzONhs4-tae"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,12 +55,11 @@ select is a powerful feature of Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -71,9 +69,8 @@ select is a powerful feature of Go.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -84,10 +81,10 @@ select is a powerful feature of Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">c1</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 class="chroma">
|
||||
<span class="nx">c1</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="nx">c2</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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -100,16 +97,16 @@ executing in concurrent goroutines.</p>
|
||||
</td>
|
||||
<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">time</span><span class="p">.</span><span class="nx">Sleep</span><span class="p">(</span><span class="mi">1</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<span class="nx">c1</span> <span class="o"><-</span> <span class="s">"one"</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="mi">1</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<span class="nx">c1</span> <span class="o"><-</span> <span class="s">"one"</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="nx">time</span><span class="p">.</span><span class="nx">Sleep</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<span class="nx">c2</span> <span class="o"><-</span> <span class="s">"two"</span>
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<span class="nx">c2</span> <span class="o"><-</span> <span class="s">"two"</span>
|
||||
<span class="p">}()</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -121,17 +118,17 @@ simultaneously, printing each one as it arrives.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<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">2</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<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">select</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="nx">msg1</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">c1</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">"received"</span><span class="p">,</span> <span class="nx">msg1</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"received"</span><span class="p">,</span> <span class="nx">msg1</span><span class="p">)</span>
|
||||
<span class="k">case</span> <span class="nx">msg2</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">c2</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">"received"</span><span class="p">,</span> <span class="nx">msg2</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"received"</span><span class="p">,</span> <span class="nx">msg2</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -147,11 +144,10 @@ expected.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> <span class="nb">time</span> go run <span class="k">select</span>.go
|
||||
<span class="go">received one</span>
|
||||
<span class="go">received two</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> time go run select.go
|
||||
<span class="go">received one
|
||||
</span><span class="go">received two</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -164,9 +160,8 @@ concurrently.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="go">real 0m2.245s</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="go">real 0m2.245s</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
57
public/sha1-hashes
generated
57
public/sha1-hashes
generated
@ -47,9 +47,8 @@ compute SHA1 hashes in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/XLftf8Gvj4y"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -61,12 +60,12 @@ compute SHA1 hashes in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"crypto/sha1"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<pre class="chroma">
|
||||
<span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"crypto/sha1"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -76,10 +75,9 @@ compute SHA1 hashes in Go.</p>
|
||||
</td>
|
||||
<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>
|
||||
<span class="nx">s</span> <span class="o">:=</span> <span class="s">"sha1 this string"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">s</span> <span class="o">:=</span> <span class="s">"sha1 this string"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -92,9 +90,9 @@ Here we start with a new hash.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">h</span> <span class="o">:=</span> <span class="nx">sha1</span><span class="p">.</span><span class="nx">New</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">h</span> <span class="o">:=</span> <span class="nx">sha1</span><span class="p">.</span><span class="nf">New</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -106,9 +104,9 @@ use <code>[]byte(s)</code> to coerce it to bytes.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">h</span><span class="p">.</span><span class="nx">Write</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="nx">s</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">h</span><span class="p">.</span><span class="nf">Write</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="nx">s</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -121,9 +119,9 @@ to an existing byte slice: it usually isn’t needed.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">bs</span> <span class="o">:=</span> <span class="nx">h</span><span class="p">.</span><span class="nx">Sum</span><span class="p">(</span><span class="kc">nil</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">bs</span> <span class="o">:=</span> <span class="nx">h</span><span class="p">.</span><span class="nf">Sum</span><span class="p">(</span><span class="kc">nil</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -136,11 +134,11 @@ a hash results to a hex string.</p>
|
||||
</td>
|
||||
<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">s</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%x\n"</span><span class="p">,</span> <span class="nx">bs</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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="nf">Printf</span><span class="p">(</span><span class="s">"%x\n"</span><span class="p">,</span> <span class="nx">bs</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -156,11 +154,10 @@ a human-readable hex format.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run sha1-hashes.go
|
||||
<span class="go">sha1 this string</span>
|
||||
<span class="go">cf23df2207d99a74fbe169e3eba035e633b65d94</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run sha1-hashes.go
|
||||
<span class="go">sha1 this string
|
||||
</span><span class="go">cf23df2207d99a74fbe169e3eba035e633b65d94</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
66
public/signals
generated
66
public/signals
generated
@ -47,9 +47,8 @@ Here’s how to handle signals in Go with channels.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/YRV64KEXJW1"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -59,14 +58,13 @@ Here’s how to handle signals in Go with channels.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"os/signal"</span>
|
||||
<span class="s">"syscall"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"os/signal"</span>
|
||||
<span class="s">"syscall"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -76,9 +74,8 @@ Here’s how to handle signals in Go with channels.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -92,10 +89,10 @@ notify us when the program can exit).</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">sigs</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Signal</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">sigs</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Signal</span><span class="p">,</span> <span class="mi">1</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="mi">1</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -107,9 +104,9 @@ receive notifications of the specified signals.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">signal</span><span class="p">.</span><span class="nx">Notify</span><span class="p">(</span><span class="nx">sigs</span><span class="p">,</span> <span class="nx">syscall</span><span class="p">.</span><span class="nx">SIGINT</span><span class="p">,</span> <span class="nx">syscall</span><span class="p">.</span><span class="nx">SIGTERM</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">signal</span><span class="p">.</span><span class="nf">Notify</span><span class="p">(</span><span class="nx">sigs</span><span class="p">,</span> <span class="nx">syscall</span><span class="p">.</span><span class="nx">SIGINT</span><span class="p">,</span> <span class="nx">syscall</span><span class="p">.</span><span class="nx">SIGTERM</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -122,14 +119,14 @@ and then notify the program that it can finish.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">sig</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">sigs</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><span class="nx">sig</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">()</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">sig</span><span class="p">)</span>
|
||||
<span class="nx">done</span> <span class="o"><-</span> <span class="kc">true</span>
|
||||
<span class="p">}()</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -142,12 +139,12 @@ above sending a value on <code>done</code>) and then exit.</p>
|
||||
</td>
|
||||
<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">"awaiting signal"</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"awaiting signal"</span><span class="p">)</span>
|
||||
<span class="o"><-</span><span class="nx">done</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"exiting"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"exiting"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -165,13 +162,12 @@ causing the program to print <code>interrupt</code> and then exit.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run signals.go
|
||||
<span class="go">awaiting signal</span>
|
||||
<span class="go">^C</span>
|
||||
<span class="go">interrupt</span>
|
||||
<span class="go">exiting</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run signals.go
|
||||
<span class="go">awaiting signal
|
||||
</span><span class="go">^C
|
||||
</span><span class="go">interrupt
|
||||
</span><span class="go">exiting</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
2
public/site.css
generated
2
public/site.css
generated
@ -183,7 +183,7 @@ body .no { color: #880000 } /* Name.Constant */
|
||||
body .nd { color: #AA22FF } /* Name.Decorator */
|
||||
body .ni { color: #999999; font-weight: bold } /* Name.Entity */
|
||||
body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
||||
body .nf { color: #0000FF } /* Name.Function */
|
||||
body .nf { } /* Name.Function */
|
||||
body .nl { color: #A0A000 } /* Name.Label */
|
||||
body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
||||
body .nt { color: #954121; font-weight: bold } /* Name.Tag */
|
||||
|
128
public/slices
generated
128
public/slices
generated
@ -43,9 +43,8 @@ powerful interface to sequences than arrays.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/iLnoIEIxeQ1"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,9 +54,8 @@ powerful interface to sequences than arrays.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -67,9 +65,8 @@ powerful interface to sequences than arrays.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -84,10 +81,10 @@ the builtin <code>make</code>. Here we make a slice of
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">s</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">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="s">"emp:"</span><span class="p">,</span> <span class="nx">s</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">s</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">3</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"emp:"</span><span class="p">,</span> <span class="nx">s</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -98,13 +95,13 @@ the builtin <code>make</code>. Here we make a slice of
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">s</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">=</span> <span class="s">"a"</span>
|
||||
<span class="nx">s</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">=</span> <span class="s">"b"</span>
|
||||
<span class="nx">s</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="p">=</span> <span class="s">"c"</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">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="s">"get:"</span><span class="p">,</span> <span class="nx">s</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">s</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="p">=</span> <span class="s">"a"</span>
|
||||
<span class="nx">s</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="p">=</span> <span class="s">"b"</span>
|
||||
<span class="nx">s</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="p">=</span> <span class="s">"c"</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"set:"</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="nf">Println</span><span class="p">(</span><span class="s">"get:"</span><span class="p">,</span> <span class="nx">s</span><span class="p">[</span><span class="mi">2</span><span class="p">])</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -115,9 +112,9 @@ the builtin <code>make</code>. Here we make a slice of
|
||||
</td>
|
||||
<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">s</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">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">s</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -133,11 +130,11 @@ Note that we need to accept a return value from
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">s</span> <span class="p">=</span> <span class="nb">append</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span> <span class="s">"d"</span><span class="p">)</span>
|
||||
<span class="nx">s</span> <span class="p">=</span> <span class="nb">append</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span> <span class="s">"e"</span><span class="p">,</span> <span class="s">"f"</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">"apd:"</span><span class="p">,</span> <span class="nx">s</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">s</span> <span class="p">=</span> <span class="nb">append</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span> <span class="s">"d"</span><span class="p">)</span>
|
||||
<span class="nx">s</span> <span class="p">=</span> <span class="nb">append</span><span class="p">(</span><span class="nx">s</span><span class="p">,</span> <span class="s">"e"</span><span class="p">,</span> <span class="s">"f"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"apd:"</span><span class="p">,</span> <span class="nx">s</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -150,11 +147,11 @@ into <code>c</code> from <code>s</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">c</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">s</span><span class="p">))</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">c</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">s</span><span class="p">))</span>
|
||||
<span class="nb">copy</span><span class="p">(</span><span class="nx">c</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="s">"cpy:"</span><span class="p">,</span> <span class="nx">c</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"cpy:"</span><span class="p">,</span> <span class="nx">c</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -167,10 +164,10 @@ of the elements <code>s[2]</code>, <code>s[3]</code>, and <code>s[4]</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">l</span> <span class="o">:=</span> <span class="nx">s</span><span class="p">[</span><span class="mi">2</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">"sl1:"</span><span class="p">,</span> <span class="nx">l</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">l</span> <span class="o">:=</span> <span class="nx">s</span><span class="p">[</span><span class="mi">2</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="nf">Println</span><span class="p">(</span><span class="s">"sl1:"</span><span class="p">,</span> <span class="nx">l</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -181,10 +178,10 @@ of the elements <code>s[2]</code>, <code>s[3]</code>, and <code>s[4]</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">l</span> <span class="p">=</span> <span class="nx">s</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">"sl2:"</span><span class="p">,</span> <span class="nx">l</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">l</span> <span class="p">=</span> <span class="nx">s</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="nf">Println</span><span class="p">(</span><span class="s">"sl2:"</span><span class="p">,</span> <span class="nx">l</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -195,10 +192,10 @@ of the elements <code>s[2]</code>, <code>s[3]</code>, and <code>s[4]</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">l</span> <span class="p">=</span> <span class="nx">s</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">"sl3:"</span><span class="p">,</span> <span class="nx">l</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">l</span> <span class="p">=</span> <span class="nx">s</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="nf">Println</span><span class="p">(</span><span class="s">"sl3:"</span><span class="p">,</span> <span class="nx">l</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -210,10 +207,10 @@ in a single line as well.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">t</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"g"</span><span class="p">,</span> <span class="s">"h"</span><span class="p">,</span> <span class="s">"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="s">"dcl:"</span><span class="p">,</span> <span class="nx">t</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">t</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"g"</span><span class="p">,</span> <span class="s">"h"</span><span class="p">,</span> <span class="s">"i"</span><span class="p">}</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"dcl:"</span><span class="p">,</span> <span class="nx">t</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -226,7 +223,8 @@ vary, unlike with multi-dimensional arrays.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">twoD</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([][]</span><span class="kt">int</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">twoD</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">([][]</span><span class="kt">int</span><span class="p">,</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">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">innerLen</span> <span class="o">:=</span> <span class="nx">i</span> <span class="o">+</span> <span class="mi">1</span>
|
||||
<span class="nx">twoD</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span> <span class="p">=</span> <span class="nb">make</span><span class="p">([]</span><span class="kt">int</span><span class="p">,</span> <span class="nx">innerLen</span><span class="p">)</span>
|
||||
@ -234,10 +232,9 @@ vary, unlike with multi-dimensional arrays.</p>
|
||||
<span class="nx">twoD</span><span class="p">[</span><span class="nx">i</span><span class="p">][</span><span class="nx">j</span><span class="p">]</span> <span class="p">=</span> <span class="nx">i</span> <span class="o">+</span> <span class="nx">j</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">"2d: "</span><span class="p">,</span> <span class="nx">twoD</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"2d: "</span><span class="p">,</span> <span class="nx">twoD</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -253,20 +250,19 @@ they are rendered similarly by <code>fmt.Println</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run slices.go
|
||||
<span class="go">emp: [ ]</span>
|
||||
<span class="go">set: [a b c]</span>
|
||||
<span class="go">get: c</span>
|
||||
<span class="go">len: 3</span>
|
||||
<span class="go">apd: [a b c d e f]</span>
|
||||
<span class="go">cpy: [a b c d e f]</span>
|
||||
<span class="go">sl1: [c d e]</span>
|
||||
<span class="go">sl2: [a b c d e]</span>
|
||||
<span class="go">sl3: [c d e f]</span>
|
||||
<span class="go">dcl: [g h i]</span>
|
||||
<span class="go">2d: [[0] [1 2] [2 3 4]]</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run slices.go
|
||||
<span class="go">emp: [ ]
|
||||
</span><span class="go">set: [a b c]
|
||||
</span><span class="go">get: c
|
||||
</span><span class="go">len: 3
|
||||
</span><span class="go">apd: [a b c d e f]
|
||||
</span><span class="go">cpy: [a b c d e f]
|
||||
</span><span class="go">sl1: [c d e]
|
||||
</span><span class="go">sl2: [a b c d e]
|
||||
</span><span class="go">sl3: [c d e f]
|
||||
</span><span class="go">dcl: [g h i]
|
||||
</span><span class="go">2d: [[0] [1 2] [2 3 4]]</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
58
public/sorting
generated
58
public/sorting
generated
@ -44,9 +44,8 @@ builtins first.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/_gY0tANzJ4l"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,12 +55,11 @@ builtins first.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"sort"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"sort"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -71,9 +69,8 @@ builtins first.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -87,11 +84,11 @@ return a new one.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">strs</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"c"</span><span class="p">,</span> <span class="s">"a"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">}</span>
|
||||
<span class="nx">sort</span><span class="p">.</span><span class="nx">Strings</span><span class="p">(</span><span class="nx">strs</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">"Strings:"</span><span class="p">,</span> <span class="nx">strs</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">strs</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"c"</span><span class="p">,</span> <span class="s">"a"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">}</span>
|
||||
<span class="nx">sort</span><span class="p">.</span><span class="nf">Strings</span><span class="p">(</span><span class="nx">strs</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Strings:"</span><span class="p">,</span> <span class="nx">strs</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -102,11 +99,11 @@ return a new one.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">ints</span> <span class="o">:=</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">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">}</span>
|
||||
<span class="nx">sort</span><span class="p">.</span><span class="nx">Ints</span><span class="p">(</span><span class="nx">ints</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">"Ints: "</span><span class="p">,</span> <span class="nx">ints</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">ints</span> <span class="o">:=</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">2</span><span class="p">,</span> <span class="mi">4</span><span class="p">}</span>
|
||||
<span class="nx">sort</span><span class="p">.</span><span class="nf">Ints</span><span class="p">(</span><span class="nx">ints</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Ints: "</span><span class="p">,</span> <span class="nx">ints</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -118,11 +115,11 @@ already in sorted order.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">s</span> <span class="o">:=</span> <span class="nx">sort</span><span class="p">.</span><span class="nx">IntsAreSorted</span><span class="p">(</span><span class="nx">ints</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">"Sorted: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">s</span> <span class="o">:=</span> <span class="nx">sort</span><span class="p">.</span><span class="nf">IntsAreSorted</span><span class="p">(</span><span class="nx">ints</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Sorted: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -138,12 +135,11 @@ slices and <code>true</code> as the result of our <code>AreSorted</code> test.</
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run sorting.go
|
||||
<span class="go">Strings: [a b c]</span>
|
||||
<span class="go">Ints: [2 4 7]</span>
|
||||
<span class="go">Sorted: true</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run sorting.go
|
||||
<span class="go">Strings: [a b c]
|
||||
</span><span class="go">Ints: [2 4 7]
|
||||
</span><span class="go">Sorted: true</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
49
public/sorting-by-functions
generated
49
public/sorting-by-functions
generated
@ -46,9 +46,8 @@ in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/h4g4vaLBtkw"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -58,12 +57,11 @@ in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"sort"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"sort"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -77,9 +75,9 @@ type.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">byLength</span> <span class="p">[]</span><span class="kt">string</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">type</span> <span class="nx">byLength</span> <span class="p">[]</span><span class="kt">string</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -96,17 +94,17 @@ we use <code>len(s[i])</code> and <code>len(s[j])</code> here.</p>
|
||||
</td>
|
||||
<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">byLength</span><span class="p">)</span> <span class="nx">Len</span><span class="p">()</span> <span class="kt">int</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="p">(</span><span class="nx">s</span> <span class="nx">byLength</span><span class="p">)</span> <span class="nf">Len</span><span class="p">()</span> <span class="kt">int</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="kd">func</span> <span class="p">(</span><span class="nx">s</span> <span class="nx">byLength</span><span class="p">)</span> <span class="nx">Swap</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">j</span> <span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="kd">func</span> <span class="p">(</span><span class="nx">s</span> <span class="nx">byLength</span><span class="p">)</span> <span class="nf">Swap</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">j</span> <span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">s</span><span class="p">[</span><span class="nx">i</span><span class="p">],</span> <span class="nx">s</span><span class="p">[</span><span class="nx">j</span><span class="p">]</span> <span class="p">=</span> <span class="nx">s</span><span class="p">[</span><span class="nx">j</span><span class="p">],</span> <span class="nx">s</span><span class="p">[</span><span class="nx">i</span><span class="p">]</span>
|
||||
<span class="p">}</span>
|
||||
<span class="kd">func</span> <span class="p">(</span><span class="nx">s</span> <span class="nx">byLength</span><span class="p">)</span> <span class="nx">Less</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">j</span> <span class="kt">int</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
||||
<span class="kd">func</span> <span class="p">(</span><span class="nx">s</span> <span class="nx">byLength</span><span class="p">)</span> <span class="nf">Less</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="nx">j</span> <span class="kt">int</span><span class="p">)</span> <span class="kt">bool</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nb">len</span><span class="p">(</span><span class="nx">s</span><span class="p">[</span><span class="nx">i</span><span class="p">])</span> <span class="p"><</span> <span class="nb">len</span><span class="p">(</span><span class="nx">s</span><span class="p">[</span><span class="nx">j</span><span class="p">])</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -120,13 +118,13 @@ slice.</p>
|
||||
</td>
|
||||
<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>
|
||||
<span class="nx">fruits</span> <span class="o">:=</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">"banana"</span><span class="p">,</span> <span class="s">"kiwi"</span><span class="p">}</span>
|
||||
<span class="nx">sort</span><span class="p">.</span><span class="nx">Sort</span><span class="p">(</span><span class="nx">byLength</span><span class="p">(</span><span class="nx">fruits</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">fruits</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">fruits</span> <span class="o">:=</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">"banana"</span><span class="p">,</span> <span class="s">"kiwi"</span><span class="p">}</span>
|
||||
<span class="nx">sort</span><span class="p">.</span><span class="nf">Sort</span><span class="p">(</span><span class="nf">byLength</span><span class="p">(</span><span class="nx">fruits</span><span class="p">))</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">fruits</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -142,10 +140,9 @@ length, as desired.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run sorting-by-functions.go
|
||||
<span class="go">[kiwi peach banana]</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run sorting-by-functions.go
|
||||
<span class="go">[kiwi peach banana]</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
104
public/spawning-processes
generated
104
public/spawning-processes
generated
@ -47,9 +47,8 @@ of spawning processes from Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/m2CpSlHPEVq"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -59,13 +58,12 @@ of spawning processes from Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os/exec"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os/exec"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -75,9 +73,8 @@ of spawning processes from Go.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -91,9 +88,9 @@ to represent this external process.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">dateCmd</span> <span class="o">:=</span> <span class="nx">exec</span><span class="p">.</span><span class="nx">Command</span><span class="p">(</span><span class="s">"date"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">dateCmd</span> <span class="o">:=</span> <span class="nx">exec</span><span class="p">.</span><span class="nf">Command</span><span class="p">(</span><span class="s">"date"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -107,14 +104,14 @@ and collecting its output. If there were no errors,
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">dateOut</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">dateCmd</span><span class="p">.</span><span class="nx">Output</span><span class="p">()</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">dateOut</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">dateCmd</span><span class="p">.</span><span class="nf">Output</span><span class="p">()</span>
|
||||
<span class="k">if</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="p">}</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"> date"</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">dateOut</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"> date"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">dateOut</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -127,9 +124,9 @@ where we pipe data to the external process on its
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">grepCmd</span> <span class="o">:=</span> <span class="nx">exec</span><span class="p">.</span><span class="nx">Command</span><span class="p">(</span><span class="s">"grep"</span><span class="p">,</span> <span class="s">"hello"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">grepCmd</span> <span class="o">:=</span> <span class="nx">exec</span><span class="p">.</span><span class="nf">Command</span><span class="p">(</span><span class="s">"grep"</span><span class="p">,</span> <span class="s">"hello"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -143,15 +140,15 @@ to exit.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">grepIn</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">grepCmd</span><span class="p">.</span><span class="nx">StdinPipe</span><span class="p">()</span>
|
||||
<span class="nx">grepOut</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">grepCmd</span><span class="p">.</span><span class="nx">StdoutPipe</span><span class="p">()</span>
|
||||
<span class="nx">grepCmd</span><span class="p">.</span><span class="nx">Start</span><span class="p">()</span>
|
||||
<span class="nx">grepIn</span><span class="p">.</span><span class="nx">Write</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="s">"hello grep\ngoodbye grep"</span><span class="p">))</span>
|
||||
<span class="nx">grepIn</span><span class="p">.</span><span class="nx">Close</span><span class="p">()</span>
|
||||
<span class="nx">grepBytes</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nx">ReadAll</span><span class="p">(</span><span class="nx">grepOut</span><span class="p">)</span>
|
||||
<span class="nx">grepCmd</span><span class="p">.</span><span class="nx">Wait</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">grepIn</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">grepCmd</span><span class="p">.</span><span class="nf">StdinPipe</span><span class="p">()</span>
|
||||
<span class="nx">grepOut</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">grepCmd</span><span class="p">.</span><span class="nf">StdoutPipe</span><span class="p">()</span>
|
||||
<span class="nx">grepCmd</span><span class="p">.</span><span class="nf">Start</span><span class="p">()</span>
|
||||
<span class="nx">grepIn</span><span class="p">.</span><span class="nf">Write</span><span class="p">([]</span><span class="nb">byte</span><span class="p">(</span><span class="s">"hello grep\ngoodbye grep"</span><span class="p">))</span>
|
||||
<span class="nx">grepIn</span><span class="p">.</span><span class="nf">Close</span><span class="p">()</span>
|
||||
<span class="nx">grepBytes</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nf">ReadAll</span><span class="p">(</span><span class="nx">grepOut</span><span class="p">)</span>
|
||||
<span class="nx">grepCmd</span><span class="p">.</span><span class="nf">Wait</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -166,10 +163,10 @@ exactly the same way.</p>
|
||||
</td>
|
||||
<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">"> grep hello"</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">grepBytes</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"> grep hello"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">grepBytes</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -185,16 +182,16 @@ option:</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">lsCmd</span> <span class="o">:=</span> <span class="nx">exec</span><span class="p">.</span><span class="nx">Command</span><span class="p">(</span><span class="s">"bash"</span><span class="p">,</span> <span class="s">"-c"</span><span class="p">,</span> <span class="s">"ls -a -l -h"</span><span class="p">)</span>
|
||||
<span class="nx">lsOut</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">lsCmd</span><span class="p">.</span><span class="nx">Output</span><span class="p">()</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">lsCmd</span> <span class="o">:=</span> <span class="nx">exec</span><span class="p">.</span><span class="nf">Command</span><span class="p">(</span><span class="s">"bash"</span><span class="p">,</span> <span class="s">"-c"</span><span class="p">,</span> <span class="s">"ls -a -l -h"</span><span class="p">)</span>
|
||||
<span class="nx">lsOut</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">lsCmd</span><span class="p">.</span><span class="nf">Output</span><span class="p">()</span>
|
||||
<span class="k">if</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="p">}</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"> ls -a -l -h"</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">lsOut</span><span class="p">))</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"> ls -a -l -h"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">lsOut</span><span class="p">))</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -210,11 +207,10 @@ as if we had run them directly from the command-line.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run spawning-processes.go
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run spawning-processes.go
|
||||
<span class="gp">></span> date
|
||||
<span class="go">Wed Oct 10 09:53:11 PDT 2012</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="go">Wed Oct 10 09:53:11 PDT 2012</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -224,10 +220,8 @@ as if we had run them directly from the command-line.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">></span> grep hello
|
||||
<span class="go">hello grep</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">></span> grep hello
|
||||
<span class="go">hello grep</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -237,12 +231,10 @@ as if we had run them directly from the command-line.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">></span> ls -a -l -h
|
||||
<span class="go">drwxr-xr-x 4 mark 136B Oct 3 16:29 .</span>
|
||||
<span class="go">drwxr-xr-x 91 mark 3.0K Oct 3 12:50 ..</span>
|
||||
<span class="go">-rw-r--r-- 1 mark 1.3K Oct 3 16:28 spawning-processes.go</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">></span> ls -a -l -h
|
||||
<span class="go">drwxr-xr-x 4 mark 136B Oct 3 16:29 .
|
||||
</span><span class="go">drwxr-xr-x 91 mark 3.0K Oct 3 12:50 ..
|
||||
</span><span class="go">-rw-r--r-- 1 mark 1.3K Oct 3 16:28 spawning-processes.go</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
100
public/stateful-goroutines
generated
100
public/stateful-goroutines
generated
@ -49,9 +49,8 @@ by exactly 1 goroutine.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/5mf_P9xqBzk"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -61,14 +60,13 @@ by exactly 1 goroutine.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"math/rand"</span>
|
||||
<span class="s">"sync/atomic"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"math/rand"</span>
|
||||
<span class="s">"sync/atomic"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -86,7 +84,8 @@ goroutine to respond.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">readOp</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">type</span> <span class="nx">readOp</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">key</span> <span class="kt">int</span>
|
||||
<span class="nx">resp</span> <span class="kd">chan</span> <span class="kt">int</span>
|
||||
<span class="p">}</span>
|
||||
@ -95,8 +94,7 @@ goroutine to respond.</p>
|
||||
<span class="nx">val</span> <span class="kt">int</span>
|
||||
<span class="nx">resp</span> <span class="kd">chan</span> <span class="kt">bool</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -106,9 +104,8 @@ goroutine to respond.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -119,10 +116,10 @@ goroutine to respond.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">readOps</span> <span class="kt">uint64</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">readOps</span> <span class="kt">uint64</span>
|
||||
<span class="kd">var</span> <span class="nx">writeOps</span> <span class="kt">uint64</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -135,10 +132,10 @@ respectively.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">reads</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="nx">readOp</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">reads</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="nx">readOp</span><span class="p">)</span>
|
||||
<span class="nx">writes</span> <span class="o">:=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">chan</span> <span class="nx">writeOp</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -157,7 +154,8 @@ value in the case of <code>reads</code>).</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma">
|
||||
<span class="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">state</span> <span class="p">=</span> <span class="nb">make</span><span class="p">(</span><span class="kd">map</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="k">for</span> <span class="p">{</span>
|
||||
<span class="k">select</span> <span class="p">{</span>
|
||||
@ -169,8 +167,7 @@ value in the case of <code>reads</code>).</p>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}()</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -185,21 +182,21 @@ result over the provided <code>resp</code> channel.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">r</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">r</span> <span class="p"><</span> <span class="mi">100</span><span class="p">;</span> <span class="nx">r</span><span class="o">++</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">r</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">r</span> <span class="p"><</span> <span class="mi">100</span><span class="p">;</span> <span class="nx">r</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">for</span> <span class="p">{</span>
|
||||
<span class="nx">read</span> <span class="o">:=</span> <span class="nx">readOp</span><span class="p">{</span>
|
||||
<span class="nx">key</span><span class="p">:</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">5</span><span class="p">),</span>
|
||||
<span class="nx">key</span><span class="p">:</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">5</span><span class="p">),</span>
|
||||
<span class="nx">resp</span><span class="p">:</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="nx">reads</span> <span class="o"><-</span> <span class="nx">read</span>
|
||||
<span class="o"><-</span><span class="nx">read</span><span class="p">.</span><span class="nx">resp</span>
|
||||
<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">readOps</span><span class="p">,</span> <span class="mi">1</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">Millisecond</span><span class="p">)</span>
|
||||
<span class="nx">atomic</span><span class="p">.</span><span class="nf">AddUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">readOps</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}()</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -211,22 +208,22 @@ approach.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">w</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">w</span> <span class="p"><</span> <span class="mi">10</span><span class="p">;</span> <span class="nx">w</span><span class="o">++</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">w</span> <span class="o">:=</span> <span class="mi">0</span><span class="p">;</span> <span class="nx">w</span> <span class="p"><</span> <span class="mi">10</span><span class="p">;</span> <span class="nx">w</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">for</span> <span class="p">{</span>
|
||||
<span class="nx">write</span> <span class="o">:=</span> <span class="nx">writeOp</span><span class="p">{</span>
|
||||
<span class="nx">key</span><span class="p">:</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">5</span><span class="p">),</span>
|
||||
<span class="nx">val</span><span class="p">:</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span>
|
||||
<span class="nx">key</span><span class="p">:</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">5</span><span class="p">),</span>
|
||||
<span class="nx">val</span><span class="p">:</span> <span class="nx">rand</span><span class="p">.</span><span class="nf">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span>
|
||||
<span class="nx">resp</span><span class="p">:</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">writes</span> <span class="o"><-</span> <span class="nx">write</span>
|
||||
<span class="o"><-</span><span class="nx">write</span><span class="p">.</span><span class="nx">resp</span>
|
||||
<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">writeOps</span><span class="p">,</span> <span class="mi">1</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">Millisecond</span><span class="p">)</span>
|
||||
<span class="nx">atomic</span><span class="p">.</span><span class="nf">AddUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">writeOps</span><span class="p">,</span> <span class="mi">1</span><span class="p">)</span>
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}()</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -237,9 +234,9 @@ approach.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">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>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -250,13 +247,13 @@ approach.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">readOpsFinal</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">readOps</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">"readOps:"</span><span class="p">,</span> <span class="nx">readOpsFinal</span><span class="p">)</span>
|
||||
<span class="nx">writeOpsFinal</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">writeOps</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">"writeOps:"</span><span class="p">,</span> <span class="nx">writeOpsFinal</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">readOpsFinal</span> <span class="o">:=</span> <span class="nx">atomic</span><span class="p">.</span><span class="nf">LoadUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">readOps</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"readOps:"</span><span class="p">,</span> <span class="nx">readOpsFinal</span><span class="p">)</span>
|
||||
<span class="nx">writeOpsFinal</span> <span class="o">:=</span> <span class="nx">atomic</span><span class="p">.</span><span class="nf">LoadUint64</span><span class="p">(</span><span class="o">&</span><span class="nx">writeOps</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"writeOps:"</span><span class="p">,</span> <span class="nx">writeOpsFinal</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -273,11 +270,10 @@ total operations.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run stateful-goroutines.go
|
||||
<span class="go">readOps: 71708</span>
|
||||
<span class="go">writeOps: 7177</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run stateful-goroutines.go
|
||||
<span class="go">readOps: 71708
|
||||
</span><span class="go">writeOps: 7177</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
212
public/string-formatting
generated
212
public/string-formatting
generated
@ -44,9 +44,8 @@ common string formatting tasks.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/L6BkGeaN_p4"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,12 +55,11 @@ common string formatting tasks.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -71,11 +69,10 @@ common string formatting tasks.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">point</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<pre class="chroma"><span class="kd">type</span> <span class="nx">point</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">x</span><span class="p">,</span> <span class="nx">y</span> <span class="kt">int</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -85,9 +82,8 @@ common string formatting tasks.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -100,10 +96,10 @@ an instance of our <code>point</code> struct.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</span> <span class="o">:=</span> <span class="nx">point</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">Printf</span><span class="p">(</span><span class="s">"%v\n"</span><span class="p">,</span> <span class="nx">p</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">p</span> <span class="o">:=</span> <span class="nx">point</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="nf">Printf</span><span class="p">(</span><span class="s">"%v\n"</span><span class="p">,</span> <span class="nx">p</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -115,9 +111,9 @@ include the struct’s field names.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%+v\n"</span><span class="p">,</span> <span class="nx">p</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%+v\n"</span><span class="p">,</span> <span class="nx">p</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -130,9 +126,9 @@ would produce that value.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%#v\n"</span><span class="p">,</span> <span class="nx">p</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%#v\n"</span><span class="p">,</span> <span class="nx">p</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -143,9 +139,9 @@ would produce that value.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%T\n"</span><span class="p">,</span> <span class="nx">p</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%T\n"</span><span class="p">,</span> <span class="nx">p</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -156,9 +152,9 @@ would produce that value.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%t\n"</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%t\n"</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -170,9 +166,9 @@ Use <code>%d</code> for standard, base-10 formatting.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%d\n"</span><span class="p">,</span> <span class="mi">123</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%d\n"</span><span class="p">,</span> <span class="mi">123</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -183,9 +179,9 @@ Use <code>%d</code> for standard, base-10 formatting.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%b\n"</span><span class="p">,</span> <span class="mi">14</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%b\n"</span><span class="p">,</span> <span class="mi">14</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -197,9 +193,9 @@ given integer.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%c\n"</span><span class="p">,</span> <span class="mi">33</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%c\n"</span><span class="p">,</span> <span class="mi">33</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -210,9 +206,9 @@ given integer.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%x\n"</span><span class="p">,</span> <span class="mi">456</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%x\n"</span><span class="p">,</span> <span class="mi">456</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -224,9 +220,9 @@ floats. For basic decimal formatting use <code>%f</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%f\n"</span><span class="p">,</span> <span class="mf">78.9</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%f\n"</span><span class="p">,</span> <span class="mf">78.9</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -238,10 +234,10 @@ different versions of) scientific notation.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%e\n"</span><span class="p">,</span> <span class="mf">123400000.0</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%E\n"</span><span class="p">,</span> <span class="mf">123400000.0</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%e\n"</span><span class="p">,</span> <span class="mf">123400000.0</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%E\n"</span><span class="p">,</span> <span class="mf">123400000.0</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -252,9 +248,9 @@ different versions of) scientific notation.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%s\n"</span><span class="p">,</span> <span class="s">"\"string\""</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%s\n"</span><span class="p">,</span> <span class="s">"\"string\""</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -265,9 +261,9 @@ different versions of) scientific notation.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%q\n"</span><span class="p">,</span> <span class="s">"\"string\""</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%q\n"</span><span class="p">,</span> <span class="s">"\"string\""</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -280,9 +276,9 @@ per byte of input.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%x\n"</span><span class="p">,</span> <span class="s">"hex this"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%x\n"</span><span class="p">,</span> <span class="s">"hex this"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -293,9 +289,9 @@ per byte of input.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%p\n"</span><span class="p">,</span> <span class="o">&</span><span class="nx">p</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%p\n"</span><span class="p">,</span> <span class="o">&</span><span class="nx">p</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -311,9 +307,9 @@ spaces.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"|%6d|%6d|\n"</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">345</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"|%6d|%6d|\n"</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">345</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -327,9 +323,9 @@ width.precision syntax.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"|%6.2f|%6.2f|\n"</span><span class="p">,</span> <span class="mf">1.2</span><span class="p">,</span> <span class="mf">3.45</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"|%6.2f|%6.2f|\n"</span><span class="p">,</span> <span class="mf">1.2</span><span class="p">,</span> <span class="mf">3.45</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -340,9 +336,9 @@ width.precision syntax.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"|%-6.2f|%-6.2f|\n"</span><span class="p">,</span> <span class="mf">1.2</span><span class="p">,</span> <span class="mf">3.45</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"|%-6.2f|%-6.2f|\n"</span><span class="p">,</span> <span class="mf">1.2</span><span class="p">,</span> <span class="mf">3.45</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -355,9 +351,9 @@ table-like output. For basic right-justified width.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"|%6s|%6s|\n"</span><span class="p">,</span> <span class="s">"foo"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"|%6s|%6s|\n"</span><span class="p">,</span> <span class="s">"foo"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -368,9 +364,9 @@ table-like output. For basic right-justified width.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"|%-6s|%-6s|\n"</span><span class="p">,</span> <span class="s">"foo"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"|%-6s|%-6s|\n"</span><span class="p">,</span> <span class="s">"foo"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -383,10 +379,10 @@ and returns a string without printing it anywhere.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">s</span> <span class="o">:=</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Sprintf</span><span class="p">(</span><span class="s">"a %s"</span><span class="p">,</span> <span class="s">"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">s</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">s</span> <span class="o">:=</span> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Sprintf</span><span class="p">(</span><span class="s">"a %s"</span><span class="p">,</span> <span class="s">"string"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -398,10 +394,10 @@ and returns a string without printing it anywhere.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Fprintf</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">"an %s\n"</span><span class="p">,</span> <span class="s">"error"</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Fprintf</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">"an %s\n"</span><span class="p">,</span> <span class="s">"error"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -415,32 +411,30 @@ and returns a string without printing it anywhere.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run string-formatting.go
|
||||
<span class="go">{1 2}</span>
|
||||
<span class="go">{x:1 y:2}</span>
|
||||
<span class="go">main.point{x:1, y:2}</span>
|
||||
<span class="go">main.point</span>
|
||||
<span class="go">true</span>
|
||||
<span class="go">123</span>
|
||||
<span class="go">1110</span>
|
||||
<span class="go">!</span>
|
||||
<span class="go">1c8</span>
|
||||
<span class="go">78.900000</span>
|
||||
<span class="go">1.234000e+08</span>
|
||||
<span class="go">1.234000E+08</span>
|
||||
<span class="go">"string"</span>
|
||||
<span class="go">"\"string\""</span>
|
||||
<span class="go">6865782074686973</span>
|
||||
<span class="go">0x42135100</span>
|
||||
<span class="go">| 12| 345|</span>
|
||||
<span class="go">| 1.20| 3.45|</span>
|
||||
<span class="go">|1.20 |3.45 |</span>
|
||||
<span class="go">| foo| b|</span>
|
||||
<span class="go">|foo |b |</span>
|
||||
<span class="go">a string</span>
|
||||
<span class="go">an error</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run string-formatting.go
|
||||
<span class="go">{1 2}
|
||||
</span><span class="go">{x:1 y:2}
|
||||
</span><span class="go">main.point{x:1, y:2}
|
||||
</span><span class="go">main.point
|
||||
</span><span class="go">true
|
||||
</span><span class="go">123
|
||||
</span><span class="go">1110
|
||||
</span><span class="go">!
|
||||
</span><span class="go">1c8
|
||||
</span><span class="go">78.900000
|
||||
</span><span class="go">1.234000e+08
|
||||
</span><span class="go">1.234000E+08
|
||||
</span><span class="go">"string"
|
||||
</span><span class="go">"\"string\""
|
||||
</span><span class="go">6865782074686973
|
||||
</span><span class="go">0x42135100
|
||||
</span><span class="go">| 12| 345|
|
||||
</span><span class="go">| 1.20| 3.45|
|
||||
</span><span class="go">|1.20 |3.45 |
|
||||
</span><span class="go">| foo| b|
|
||||
</span><span class="go">|foo |b |
|
||||
</span><span class="go">a string
|
||||
</span><span class="go">an error</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
97
public/string-functions
generated
97
public/string-functions
generated
@ -44,9 +44,8 @@ to give you a sense of the package.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/fZ_FqN5WlSz"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,12 +55,11 @@ to give you a sense of the package.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="nx">s</span> <span class="s">"strings"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="nx">s</span> <span class="s">"strings"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -73,9 +71,9 @@ it a lot below.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">var</span> <span class="nx">p</span> <span class="p">=</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">p</span> <span class="p">=</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -85,9 +83,8 @@ it a lot below.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -104,21 +101,21 @@ package docs.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</span><span class="p">(</span><span class="s">"Contains: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">Contains</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="s">"es"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"Count: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">Count</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="s">"t"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"HasPrefix: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">HasPrefix</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="s">"te"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"HasSuffix: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">HasSuffix</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="s">"st"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"Index: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">Index</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="s">"e"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"Join: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">Join</span><span class="p">([]</span><span class="kt">string</span><span class="p">{</span><span class="s">"a"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">},</span> <span class="s">"-"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"Repeat: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">Repeat</span><span class="p">(</span><span class="s">"a"</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"Replace: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">Replace</span><span class="p">(</span><span class="s">"foo"</span><span class="p">,</span> <span class="s">"o"</span><span class="p">,</span> <span class="s">"0"</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"Replace: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">Replace</span><span class="p">(</span><span class="s">"foo"</span><span class="p">,</span> <span class="s">"o"</span><span class="p">,</span> <span class="s">"0"</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"Split: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">Split</span><span class="p">(</span><span class="s">"a-b-c-d-e"</span><span class="p">,</span> <span class="s">"-"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"ToLower: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">ToLower</span><span class="p">(</span><span class="s">"TEST"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"ToUpper: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nx">ToUpper</span><span class="p">(</span><span class="s">"test"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"Contains: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">Contains</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="s">"es"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"Count: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">Count</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="s">"t"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"HasPrefix: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">HasPrefix</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="s">"te"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"HasSuffix: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">HasSuffix</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="s">"st"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"Index: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">Index</span><span class="p">(</span><span class="s">"test"</span><span class="p">,</span> <span class="s">"e"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"Join: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">Join</span><span class="p">([]</span><span class="kt">string</span><span class="p">{</span><span class="s">"a"</span><span class="p">,</span> <span class="s">"b"</span><span class="p">},</span> <span class="s">"-"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"Repeat: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">Repeat</span><span class="p">(</span><span class="s">"a"</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"Replace: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">Replace</span><span class="p">(</span><span class="s">"foo"</span><span class="p">,</span> <span class="s">"o"</span><span class="p">,</span> <span class="s">"0"</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"Replace: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">Replace</span><span class="p">(</span><span class="s">"foo"</span><span class="p">,</span> <span class="s">"o"</span><span class="p">,</span> <span class="s">"0"</span><span class="p">,</span> <span class="mi">1</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"Split: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">Split</span><span class="p">(</span><span class="s">"a-b-c-d-e"</span><span class="p">,</span> <span class="s">"-"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"ToLower: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">ToLower</span><span class="p">(</span><span class="s">"TEST"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"ToUpper: "</span><span class="p">,</span> <span class="nx">s</span><span class="p">.</span><span class="nf">ToUpper</span><span class="p">(</span><span class="s">"test"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -131,11 +128,11 @@ bytes and getting a byte by index.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</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="s">"hello"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="s">"Char:"</span><span class="p">,</span> <span class="s">"hello"</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
|
||||
<pre class="chroma">
|
||||
<span class="nf">p</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="s">"hello"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="s">"Char:"</span><span class="p">,</span> <span class="s">"hello"</span><span class="p">[</span><span class="mi">1</span><span class="p">])</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -165,21 +162,19 @@ for more information.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run string-functions.go
|
||||
<span class="go">Contains: true</span>
|
||||
<span class="go">Count: 2</span>
|
||||
<span class="go">HasPrefix: true</span>
|
||||
<span class="go">HasSuffix: true</span>
|
||||
<span class="go">Index: 1</span>
|
||||
<span class="go">Join: a-b</span>
|
||||
<span class="go">Repeat: aaaaa</span>
|
||||
<span class="go">Replace: f00</span>
|
||||
<span class="go">Replace: f0o</span>
|
||||
<span class="go">Split: [a b c d e]</span>
|
||||
<span class="go">ToLower: test</span>
|
||||
<span class="go">ToUpper: TEST</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run string-functions.go
|
||||
<span class="go">Contains: true
|
||||
</span><span class="go">Count: 2
|
||||
</span><span class="go">HasPrefix: true
|
||||
</span><span class="go">HasSuffix: true
|
||||
</span><span class="go">Index: 1
|
||||
</span><span class="go">Join: a-b
|
||||
</span><span class="go">Repeat: aaaaa
|
||||
</span><span class="go">Replace: f00
|
||||
</span><span class="go">Replace: f0o
|
||||
</span><span class="go">Split: [a b c d e]
|
||||
</span><span class="go">ToLower: test
|
||||
</span><span class="go">ToUpper: TEST</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -189,10 +184,8 @@ for more information.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="go">Len: 5</span>
|
||||
<span class="go">Char: 101</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="go">Len: 5
|
||||
</span><span class="go">Char: 101</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
107
public/structs
generated
107
public/structs
generated
@ -44,9 +44,8 @@ records.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/n7jt1x3iw4Z"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,9 +55,8 @@ records.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -69,12 +67,12 @@ records.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">person</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">type</span> <span class="nx">person</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">name</span> <span class="kt">string</span>
|
||||
<span class="nx">age</span> <span class="kt">int</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -85,9 +83,9 @@ records.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">newPerson</span><span class="p">(</span><span class="nx">name</span> <span class="kt">string</span><span class="p">)</span> <span class="o">*</span><span class="nx">person</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">newPerson</span><span class="p">(</span><span class="nx">name</span> <span class="kt">string</span><span class="p">)</span> <span class="o">*</span><span class="nx">person</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -99,12 +97,12 @@ as a local variable will survive the scope of the function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</span> <span class="o">:=</span> <span class="nx">person</span><span class="p">{</span><span class="nx">name</span><span class="p">:</span> <span class="nx">name</span><span class="p">}</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">p</span> <span class="o">:=</span> <span class="nx">person</span><span class="p">{</span><span class="nx">name</span><span class="p">:</span> <span class="nx">name</span><span class="p">}</span>
|
||||
<span class="nx">p</span><span class="p">.</span><span class="nx">age</span> <span class="p">=</span> <span class="mi">42</span>
|
||||
<span class="k">return</span> <span class="o">&</span><span class="nx">p</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -114,9 +112,8 @@ as a local variable will survive the scope of the function.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -127,9 +124,9 @@ as a local variable will survive the scope of the function.</p>
|
||||
</td>
|
||||
<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">person</span><span class="p">{</span><span class="s">"Bob"</span><span class="p">,</span> <span class="mi">20</span><span class="p">})</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">person</span><span class="p">{</span><span class="s">"Bob"</span><span class="p">,</span> <span class="mi">20</span><span class="p">})</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -140,9 +137,9 @@ as a local variable will survive the scope of the function.</p>
|
||||
</td>
|
||||
<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">person</span><span class="p">{</span><span class="nx">name</span><span class="p">:</span> <span class="s">"Alice"</span><span class="p">,</span> <span class="nx">age</span><span class="p">:</span> <span class="mi">30</span><span class="p">})</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">person</span><span class="p">{</span><span class="nx">name</span><span class="p">:</span> <span class="s">"Alice"</span><span class="p">,</span> <span class="nx">age</span><span class="p">:</span> <span class="mi">30</span><span class="p">})</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -153,9 +150,9 @@ as a local variable will survive the scope of the function.</p>
|
||||
</td>
|
||||
<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">person</span><span class="p">{</span><span class="nx">name</span><span class="p">:</span> <span class="s">"Fred"</span><span class="p">})</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">person</span><span class="p">{</span><span class="nx">name</span><span class="p">:</span> <span class="s">"Fred"</span><span class="p">})</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -166,9 +163,9 @@ as a local variable will survive the scope of the function.</p>
|
||||
</td>
|
||||
<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="o">&</span><span class="nx">person</span><span class="p">{</span><span class="nx">name</span><span class="p">:</span> <span class="s">"Ann"</span><span class="p">,</span> <span class="nx">age</span><span class="p">:</span> <span class="mi">40</span><span class="p">})</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="o">&</span><span class="nx">person</span><span class="p">{</span><span class="nx">name</span><span class="p">:</span> <span class="s">"Ann"</span><span class="p">,</span> <span class="nx">age</span><span class="p">:</span> <span class="mi">40</span><span class="p">})</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -179,9 +176,9 @@ as a local variable will survive the scope of the function.</p>
|
||||
</td>
|
||||
<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">newPerson</span><span class="p">(</span><span class="s">"Jon"</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nf">newPerson</span><span class="p">(</span><span class="s">"Jon"</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -192,10 +189,10 @@ as a local variable will survive the scope of the function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">s</span> <span class="o">:=</span> <span class="nx">person</span><span class="p">{</span><span class="nx">name</span><span class="p">:</span> <span class="s">"Sean"</span><span class="p">,</span> <span class="nx">age</span><span class="p">:</span> <span class="mi">50</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">name</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">s</span> <span class="o">:=</span> <span class="nx">person</span><span class="p">{</span><span class="nx">name</span><span class="p">:</span> <span class="s">"Sean"</span><span class="p">,</span> <span class="nx">age</span><span class="p">:</span> <span class="mi">50</span><span class="p">}</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">s</span><span class="p">.</span><span class="nx">name</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -207,10 +204,10 @@ pointers are automatically dereferenced.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">sp</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">s</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">sp</span><span class="p">.</span><span class="nx">age</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">sp</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">s</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">sp</span><span class="p">.</span><span class="nx">age</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -221,11 +218,11 @@ pointers are automatically dereferenced.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">sp</span><span class="p">.</span><span class="nx">age</span> <span class="p">=</span> <span class="mi">51</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">sp</span><span class="p">.</span><span class="nx">age</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">sp</span><span class="p">.</span><span class="nx">age</span> <span class="p">=</span> <span class="mi">51</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">sp</span><span class="p">.</span><span class="nx">age</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -239,17 +236,15 @@ pointers are automatically dereferenced.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run structs.go
|
||||
<span class="go">{Bob 20}</span>
|
||||
<span class="go">{Alice 30}</span>
|
||||
<span class="go">{Fred 0}</span>
|
||||
<span class="go">&{Ann 40}</span>
|
||||
<span class="go">&{Jon 42}</span>
|
||||
<span class="go">Sean</span>
|
||||
<span class="go">50</span>
|
||||
<span class="go">51</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run structs.go
|
||||
<span class="go">{Bob 20}
|
||||
</span><span class="go">{Alice 30}
|
||||
</span><span class="go">{Fred 0}
|
||||
</span><span class="go">&{Ann 40}
|
||||
</span><span class="go">&{Jon 42}
|
||||
</span><span class="go">Sean
|
||||
</span><span class="go">50
|
||||
</span><span class="go">51</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
89
public/switch
generated
89
public/switch
generated
@ -43,9 +43,8 @@ branches.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/qVDqWoUQ6AI"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,12 +54,11 @@ branches.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -70,9 +68,8 @@ branches.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -83,18 +80,18 @@ branches.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">2</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="s">"Write "</span><span class="p">,</span> <span class="nx">i</span><span class="p">,</span> <span class="s">" as "</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">i</span> <span class="o">:=</span> <span class="mi">2</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">(</span><span class="s">"Write "</span><span class="p">,</span> <span class="nx">i</span><span class="p">,</span> <span class="s">" as "</span><span class="p">)</span>
|
||||
<span class="k">switch</span> <span class="nx">i</span> <span class="p">{</span>
|
||||
<span class="k">case</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="s">"one"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"one"</span><span class="p">)</span>
|
||||
<span class="k">case</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">"two"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"two"</span><span class="p">)</span>
|
||||
<span class="k">case</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="s">"three"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"three"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -107,14 +104,14 @@ in the same <code>case</code> statement. We use the optional
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">switch</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Now</span><span class="p">().</span><span class="nx">Weekday</span><span class="p">()</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">switch</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Now</span><span class="p">().</span><span class="nf">Weekday</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Saturday</span><span class="p">,</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Sunday</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">"It's the weekend"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"It's the weekend"</span><span class="p">)</span>
|
||||
<span class="k">default</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">"It's a weekday"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"It's a weekday"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -127,15 +124,15 @@ to express if/else logic. Here we also show how the
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">t</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Now</span><span class="p">()</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">t</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Now</span><span class="p">()</span>
|
||||
<span class="k">switch</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="nx">t</span><span class="p">.</span><span class="nx">Hour</span><span class="p">()</span> <span class="p"><</span> <span class="mi">12</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">"It's before noon"</span><span class="p">)</span>
|
||||
<span class="k">case</span> <span class="nx">t</span><span class="p">.</span><span class="nf">Hour</span><span class="p">()</span> <span class="p"><</span> <span class="mi">12</span><span class="p">:</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"It's before noon"</span><span class="p">)</span>
|
||||
<span class="k">default</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">"It's after noon"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"It's after noon"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -149,22 +146,22 @@ type corresponding to its clause.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">whatAmI</span> <span class="o">:=</span> <span class="kd">func</span><span class="p">(</span><span class="nx">i</span> <span class="kd">interface</span><span class="p">{})</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">whatAmI</span> <span class="o">:=</span> <span class="kd">func</span><span class="p">(</span><span class="nx">i</span> <span class="kd">interface</span><span class="p">{})</span> <span class="p">{</span>
|
||||
<span class="k">switch</span> <span class="nx">t</span> <span class="o">:=</span> <span class="nx">i</span><span class="p">.(</span><span class="kd">type</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="kt">bool</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">"I'm a bool"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"I'm a bool"</span><span class="p">)</span>
|
||||
<span class="k">case</span> <span class="kt">int</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">"I'm an int"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"I'm an int"</span><span class="p">)</span>
|
||||
<span class="k">default</span><span class="p">:</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"Don't know type %T\n"</span><span class="p">,</span> <span class="nx">t</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"Don't know type %T\n"</span><span class="p">,</span> <span class="nx">t</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="nx">whatAmI</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span>
|
||||
<span class="nx">whatAmI</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="nx">whatAmI</span><span class="p">(</span><span class="s">"hey"</span><span class="p">)</span>
|
||||
<span class="nf">whatAmI</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span>
|
||||
<span class="nf">whatAmI</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="nf">whatAmI</span><span class="p">(</span><span class="s">"hey"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -178,15 +175,13 @@ type corresponding to its clause.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run switch.go
|
||||
<span class="go">Write 2 as two</span>
|
||||
<span class="go">It's a weekday</span>
|
||||
<span class="go">It's after noon</span>
|
||||
<span class="go">I'm a bool</span>
|
||||
<span class="go">I'm an int</span>
|
||||
<span class="go">Don't know type string</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run switch.go
|
||||
<span class="go">Write 2 as two
|
||||
</span><span class="go">It's a weekday
|
||||
</span><span class="go">It's after noon
|
||||
</span><span class="go">I'm a bool
|
||||
</span><span class="go">I'm an int
|
||||
</span><span class="go">Don't know type string</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
89
public/temporary-files-and-directories
generated
89
public/temporary-files-and-directories
generated
@ -46,9 +46,8 @@ time.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/nMpjCsALS6P"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -58,14 +57,13 @@ time.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"path/filepath"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="s">"path/filepath"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -75,13 +73,12 @@ time.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">check</span><span class="p">(</span><span class="nx">e</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">check</span><span class="p">(</span><span class="nx">e</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="nx">e</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">e</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -91,9 +88,8 @@ time.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -108,10 +104,10 @@ create the file in the default location for our OS.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">f</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nx">TempFile</span><span class="p">(</span><span class="s">""</span><span class="p">,</span> <span class="s">"sample"</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">f</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nf">TempFile</span><span class="p">(</span><span class="s">""</span><span class="p">,</span> <span class="s">"sample"</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -127,9 +123,9 @@ calls will always create different file names.</p>
|
||||
</td>
|
||||
<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">"Temp file name:"</span><span class="p">,</span> <span class="nx">f</span><span class="p">.</span><span class="nx">Name</span><span class="p">())</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Temp file name:"</span><span class="p">,</span> <span class="nx">f</span><span class="p">.</span><span class="nf">Name</span><span class="p">())</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -143,9 +139,9 @@ explicitly.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">defer</span> <span class="nx">os</span><span class="p">.</span><span class="nx">Remove</span><span class="p">(</span><span class="nx">f</span><span class="p">.</span><span class="nx">Name</span><span class="p">())</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="k">defer</span> <span class="nx">os</span><span class="p">.</span><span class="nf">Remove</span><span class="p">(</span><span class="nx">f</span><span class="p">.</span><span class="nf">Name</span><span class="p">())</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -156,10 +152,10 @@ explicitly.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">_</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">Write</span><span class="p">([]</span><span class="kt">byte</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="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">_</span><span class="p">,</span> <span class="nx">err</span> <span class="p">=</span> <span class="nx">f</span><span class="p">.</span><span class="nf">Write</span><span class="p">([]</span><span class="kt">byte</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="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -174,11 +170,11 @@ rather than an open file.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">dname</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nx">TempDir</span><span class="p">(</span><span class="s">""</span><span class="p">,</span> <span class="s">"sampledir"</span><span class="p">)</span>
|
||||
<span class="nx">check</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">Println</span><span class="p">(</span><span class="s">"Temp dir name:"</span><span class="p">,</span> <span class="nx">dname</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">dname</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nf">TempDir</span><span class="p">(</span><span class="s">""</span><span class="p">,</span> <span class="s">"sampledir"</span><span class="p">)</span>
|
||||
<span class="nf">check</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="nf">Println</span><span class="p">(</span><span class="s">"Temp dir name:"</span><span class="p">,</span> <span class="nx">dname</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -188,9 +184,8 @@ rather than an open file.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">defer</span> <span class="nx">os</span><span class="p">.</span><span class="nx">RemoveAll</span><span class="p">(</span><span class="nx">dname</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="k">defer</span> <span class="nx">os</span><span class="p">.</span><span class="nf">RemoveAll</span><span class="p">(</span><span class="nx">dname</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -202,12 +197,12 @@ prefixing them with our temporary directory.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fname</span> <span class="o">:=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nx">Join</span><span class="p">(</span><span class="nx">dname</span><span class="p">,</span> <span class="s">"file1"</span><span class="p">)</span>
|
||||
<span class="nx">err</span> <span class="p">=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nx">WriteFile</span><span class="p">(</span><span class="nx">fname</span><span class="p">,</span> <span class="p">[]</span><span class="kt">byte</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="mo">0666</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fname</span> <span class="o">:=</span> <span class="nx">filepath</span><span class="p">.</span><span class="nf">Join</span><span class="p">(</span><span class="nx">dname</span><span class="p">,</span> <span class="s">"file1"</span><span class="p">)</span>
|
||||
<span class="nx">err</span> <span class="p">=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nf">WriteFile</span><span class="p">(</span><span class="nx">fname</span><span class="p">,</span> <span class="p">[]</span><span class="kt">byte</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="mo">0666</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -221,11 +216,9 @@ prefixing them with our temporary directory.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run temporary-files-and-directories.go
|
||||
<span class="go">Temp file name: /tmp/sample610887201</span>
|
||||
<span class="go">Temp dir name: /tmp/sampledir898854668</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run temporary-files-and-directories.go
|
||||
<span class="go">Temp file name: /tmp/sample610887201
|
||||
</span><span class="go">Temp dir name: /tmp/sampledir898854668</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
94
public/testing
generated
94
public/testing
generated
@ -48,9 +48,9 @@ typically lives in the same package as the code it tests.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/vY8PN0c6BSx"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -60,12 +60,11 @@ typically lives in the same package as the code it tests.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"testing"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"testing"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -80,14 +79,14 @@ be named <code>intutils_test.go</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">IntMin</span><span class="p">(</span><span class="nx">a</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 class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">IntMin</span><span class="p">(</span><span class="nx">a</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>
|
||||
<span class="k">if</span> <span class="nx">a</span> <span class="p"><</span> <span class="nx">b</span> <span class="p">{</span>
|
||||
<span class="k">return</span> <span class="nx">a</span>
|
||||
<span class="p">}</span>
|
||||
<span class="k">return</span> <span class="nx">b</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -99,11 +98,11 @@ beginning with <code>Test</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">TestIntMinBasic</span><span class="p">(</span><span class="nx">t</span> <span class="o">*</span><span class="nx">testing</span><span class="p">.</span><span class="nx">T</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">ans</span> <span class="o">:=</span> <span class="nx">IntMin</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">TestIntMinBasic</span><span class="p">(</span><span class="nx">t</span> <span class="o">*</span><span class="nx">testing</span><span class="p">.</span><span class="nx">T</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">ans</span> <span class="o">:=</span> <span class="nf">IntMin</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="o">-</span><span class="mi">2</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nx">ans</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">2</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -116,11 +115,11 @@ failures and stop the test immediately.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">t</span><span class="p">.</span><span class="nx">Errorf</span><span class="p">(</span><span class="s">"IntMin(2, -2) = %d; want -2"</span><span class="p">,</span> <span class="nx">ans</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">t</span><span class="p">.</span><span class="nf">Errorf</span><span class="p">(</span><span class="s">"IntMin(2, -2) = %d; want -2"</span><span class="p">,</span> <span class="nx">ans</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -134,7 +133,8 @@ walks over them and performs the test logic.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">TestIntMinTableDriven</span><span class="p">(</span><span class="nx">t</span> <span class="o">*</span><span class="nx">testing</span><span class="p">.</span><span class="nx">T</span><span class="p">)</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">TestIntMinTableDriven</span><span class="p">(</span><span class="nx">t</span> <span class="o">*</span><span class="nx">testing</span><span class="p">.</span><span class="nx">T</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="kd">var</span> <span class="nx">tests</span> <span class="p">=</span> <span class="p">[]</span><span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">a</span><span class="p">,</span> <span class="nx">b</span> <span class="kt">int</span>
|
||||
<span class="nx">want</span> <span class="kt">int</span>
|
||||
@ -145,8 +145,7 @@ walks over them and performs the test logic.</p>
|
||||
<span class="p">{</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">},</span>
|
||||
<span class="p">{</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">1</span><span class="p">},</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -159,9 +158,8 @@ when executing <code>go test -v</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">tt</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">tests</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">tt</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">tests</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -171,17 +169,16 @@ when executing <code>go test -v</code>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">testname</span> <span class="o">:=</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Sprintf</span><span class="p">(</span><span class="s">"%d,%d"</span><span class="p">,</span> <span class="nx">tt</span><span class="p">.</span><span class="nx">a</span><span class="p">,</span> <span class="nx">tt</span><span class="p">.</span><span class="nx">b</span><span class="p">)</span>
|
||||
<span class="nx">t</span><span class="p">.</span><span class="nx">Run</span><span class="p">(</span><span class="nx">testname</span><span class="p">,</span> <span class="kd">func</span><span class="p">(</span><span class="nx">t</span> <span class="o">*</span><span class="nx">testing</span><span class="p">.</span><span class="nx">T</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">ans</span> <span class="o">:=</span> <span class="nx">IntMin</span><span class="p">(</span><span class="nx">tt</span><span class="p">.</span><span class="nx">a</span><span class="p">,</span> <span class="nx">tt</span><span class="p">.</span><span class="nx">b</span><span class="p">)</span>
|
||||
<pre class="chroma"> <span class="nx">testname</span> <span class="o">:=</span> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Sprintf</span><span class="p">(</span><span class="s">"%d,%d"</span><span class="p">,</span> <span class="nx">tt</span><span class="p">.</span><span class="nx">a</span><span class="p">,</span> <span class="nx">tt</span><span class="p">.</span><span class="nx">b</span><span class="p">)</span>
|
||||
<span class="nx">t</span><span class="p">.</span><span class="nf">Run</span><span class="p">(</span><span class="nx">testname</span><span class="p">,</span> <span class="kd">func</span><span class="p">(</span><span class="nx">t</span> <span class="o">*</span><span class="nx">testing</span><span class="p">.</span><span class="nx">T</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">ans</span> <span class="o">:=</span> <span class="nf">IntMin</span><span class="p">(</span><span class="nx">tt</span><span class="p">.</span><span class="nx">a</span><span class="p">,</span> <span class="nx">tt</span><span class="p">.</span><span class="nx">b</span><span class="p">)</span>
|
||||
<span class="k">if</span> <span class="nx">ans</span> <span class="o">!=</span> <span class="nx">tt</span><span class="p">.</span><span class="nx">want</span> <span class="p">{</span>
|
||||
<span class="nx">t</span><span class="p">.</span><span class="nx">Errorf</span><span class="p">(</span><span class="s">"got %d, want %d"</span><span class="p">,</span> <span class="nx">ans</span><span class="p">,</span> <span class="nx">tt</span><span class="p">.</span><span class="nx">want</span><span class="p">)</span>
|
||||
<span class="nx">t</span><span class="p">.</span><span class="nf">Errorf</span><span class="p">(</span><span class="s">"got %d, want %d"</span><span class="p">,</span> <span class="nx">ans</span><span class="p">,</span> <span class="nx">tt</span><span class="p">.</span><span class="nx">want</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">})</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -196,25 +193,24 @@ when executing <code>go test -v</code>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go <span class="nb">test</span> -v
|
||||
<span class="go">== RUN TestIntMinBasic</span>
|
||||
<span class="go">--- PASS: TestIntMinBasic (0.00s)</span>
|
||||
<span class="go">=== RUN TestIntMinTableDriven</span>
|
||||
<span class="go">=== RUN TestIntMinTableDriven/0,1</span>
|
||||
<span class="go">=== RUN TestIntMinTableDriven/1,0</span>
|
||||
<span class="go">=== RUN TestIntMinTableDriven/2,-2</span>
|
||||
<span class="go">=== RUN TestIntMinTableDriven/0,-1</span>
|
||||
<span class="go">=== RUN TestIntMinTableDriven/-1,0</span>
|
||||
<span class="go">--- PASS: TestIntMinTableDriven (0.00s)</span>
|
||||
<span class="go"> --- PASS: TestIntMinTableDriven/0,1 (0.00s)</span>
|
||||
<span class="go"> --- PASS: TestIntMinTableDriven/1,0 (0.00s)</span>
|
||||
<span class="go"> --- PASS: TestIntMinTableDriven/2,-2 (0.00s)</span>
|
||||
<span class="go"> --- PASS: TestIntMinTableDriven/0,-1 (0.00s)</span>
|
||||
<span class="go"> --- PASS: TestIntMinTableDriven/-1,0 (0.00s)</span>
|
||||
<span class="go">PASS</span>
|
||||
<span class="go">ok examples/testing 0.023s</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go test -v
|
||||
<span class="go">== RUN TestIntMinBasic
|
||||
</span><span class="go">--- PASS: TestIntMinBasic (0.00s)
|
||||
</span><span class="go">=== RUN TestIntMinTableDriven
|
||||
</span><span class="go">=== RUN TestIntMinTableDriven/0,1
|
||||
</span><span class="go">=== RUN TestIntMinTableDriven/1,0
|
||||
</span><span class="go">=== RUN TestIntMinTableDriven/2,-2
|
||||
</span><span class="go">=== RUN TestIntMinTableDriven/0,-1
|
||||
</span><span class="go">=== RUN TestIntMinTableDriven/-1,0
|
||||
</span><span class="go">--- PASS: TestIntMinTableDriven (0.00s)
|
||||
</span><span class="go"> --- PASS: TestIntMinTableDriven/0,1 (0.00s)
|
||||
</span><span class="go"> --- PASS: TestIntMinTableDriven/1,0 (0.00s)
|
||||
</span><span class="go"> --- PASS: TestIntMinTableDriven/2,-2 (0.00s)
|
||||
</span><span class="go"> --- PASS: TestIntMinTableDriven/0,-1 (0.00s)
|
||||
</span><span class="go"> --- PASS: TestIntMinTableDriven/-1,0 (0.00s)
|
||||
</span><span class="go">PASS
|
||||
</span><span class="go">ok examples/testing 0.023s</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
55
public/tickers
generated
55
public/tickers
generated
@ -46,9 +46,8 @@ periodically until we stop it.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/gs6zoJP-Pl9"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -58,12 +57,11 @@ periodically until we stop it.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -73,9 +71,8 @@ periodically until we stop it.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -89,10 +86,10 @@ values as they arrive every 500ms.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">ticker</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">NewTicker</span><span class="p">(</span><span class="mi">500</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">ticker</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">NewTicker</span><span class="p">(</span><span class="mi">500</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</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>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -102,18 +99,17 @@ values as they arrive every 500ms.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"> <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">select</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="o"><-</span><span class="nx">done</span><span class="p">:</span>
|
||||
<span class="k">return</span>
|
||||
<span class="k">case</span> <span class="nx">t</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">ticker</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="s">"Tick at"</span><span class="p">,</span> <span class="nx">t</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Tick at"</span><span class="p">,</span> <span class="nx">t</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}()</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -126,13 +122,13 @@ channel. We’ll stop ours after 1600ms.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">time</span><span class="p">.</span><span class="nx">Sleep</span><span class="p">(</span><span class="mi">1600</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span>
|
||||
<span class="nx">ticker</span><span class="p">.</span><span class="nx">Stop</span><span class="p">()</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="mi">1600</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span><span class="p">)</span>
|
||||
<span class="nx">ticker</span><span class="p">.</span><span class="nf">Stop</span><span class="p">()</span>
|
||||
<span class="nx">done</span> <span class="o"><-</span> <span class="kc">true</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"Ticker stopped"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Ticker stopped"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -148,13 +144,12 @@ before we stop it.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run tickers.go
|
||||
<span class="go">Tick at 2012-09-23 11:29:56.487625 -0700 PDT</span>
|
||||
<span class="go">Tick at 2012-09-23 11:29:56.988063 -0700 PDT</span>
|
||||
<span class="go">Tick at 2012-09-23 11:29:57.488076 -0700 PDT</span>
|
||||
<span class="go">Ticker stopped</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run tickers.go
|
||||
<span class="go">Tick at 2012-09-23 11:29:56.487625 -0700 PDT
|
||||
</span><span class="go">Tick at 2012-09-23 11:29:56.988063 -0700 PDT
|
||||
</span><span class="go">Tick at 2012-09-23 11:29:57.488076 -0700 PDT
|
||||
</span><span class="go">Ticker stopped</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
145
public/time
generated
145
public/time
generated
@ -43,9 +43,8 @@ here are some examples.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/YAM3s1KPc8c"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,12 +54,11 @@ here are some examples.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -70,10 +68,9 @@ here are some examples.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">p</span> <span class="o">:=</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -84,10 +81,10 @@ here are some examples.</p>
|
||||
</td>
|
||||
<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>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">now</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">now</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Now</span><span class="p">()</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">now</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -100,11 +97,11 @@ with a <code>Location</code>, i.e. time zone.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">then</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Date</span><span class="p">(</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">then</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Date</span><span class="p">(</span>
|
||||
<span class="mi">2009</span><span class="p">,</span> <span class="mi">11</span><span class="p">,</span> <span class="mi">17</span><span class="p">,</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">34</span><span class="p">,</span> <span class="mi">58</span><span class="p">,</span> <span class="mi">651387237</span><span class="p">,</span> <span class="nx">time</span><span class="p">.</span><span class="nx">UTC</span><span class="p">)</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -116,16 +113,16 @@ value as expected.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Year</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Month</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Day</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Hour</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Minute</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Second</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Nanosecond</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Location</span><span class="p">())</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Year</span><span class="p">())</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Month</span><span class="p">())</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Day</span><span class="p">())</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Hour</span><span class="p">())</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Minute</span><span class="p">())</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Second</span><span class="p">())</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Nanosecond</span><span class="p">())</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Location</span><span class="p">())</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -136,9 +133,9 @@ value as expected.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Weekday</span><span class="p">())</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Weekday</span><span class="p">())</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -151,11 +148,11 @@ as the second, respectively.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Before</span><span class="p">(</span><span class="nx">now</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">After</span><span class="p">(</span><span class="nx">now</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Equal</span><span class="p">(</span><span class="nx">now</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Before</span><span class="p">(</span><span class="nx">now</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">After</span><span class="p">(</span><span class="nx">now</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Equal</span><span class="p">(</span><span class="nx">now</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -167,10 +164,10 @@ the interval between two times.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">diff</span> <span class="o">:=</span> <span class="nx">now</span><span class="p">.</span><span class="nx">Sub</span><span class="p">(</span><span class="nx">then</span><span class="p">)</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">diff</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">diff</span> <span class="o">:=</span> <span class="nx">now</span><span class="p">.</span><span class="nf">Sub</span><span class="p">(</span><span class="nx">then</span><span class="p">)</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">diff</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -182,12 +179,12 @@ various units.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</span><span class="p">(</span><span class="nx">diff</span><span class="p">.</span><span class="nx">Hours</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">diff</span><span class="p">.</span><span class="nx">Minutes</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">diff</span><span class="p">.</span><span class="nx">Seconds</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">diff</span><span class="p">.</span><span class="nx">Nanoseconds</span><span class="p">())</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">diff</span><span class="p">.</span><span class="nf">Hours</span><span class="p">())</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">diff</span><span class="p">.</span><span class="nf">Minutes</span><span class="p">())</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">diff</span><span class="p">.</span><span class="nf">Seconds</span><span class="p">())</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">diff</span><span class="p">.</span><span class="nf">Nanoseconds</span><span class="p">())</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -200,11 +197,11 @@ duration.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Add</span><span class="p">(</span><span class="nx">diff</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nx">Add</span><span class="p">(</span><span class="o">-</span><span class="nx">diff</span><span class="p">))</span>
|
||||
<pre class="chroma">
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Add</span><span class="p">(</span><span class="nx">diff</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">then</span><span class="p">.</span><span class="nf">Add</span><span class="p">(</span><span class="o">-</span><span class="nx">diff</span><span class="p">))</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -218,30 +215,28 @@ duration.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run time.go
|
||||
<span class="go">2012-10-31 15:50:13.793654 +0000 UTC</span>
|
||||
<span class="go">2009-11-17 20:34:58.651387237 +0000 UTC</span>
|
||||
<span class="go">2009</span>
|
||||
<span class="go">November</span>
|
||||
<span class="go">17</span>
|
||||
<span class="go">20</span>
|
||||
<span class="go">34</span>
|
||||
<span class="go">58</span>
|
||||
<span class="go">651387237</span>
|
||||
<span class="go">UTC</span>
|
||||
<span class="go">Tuesday</span>
|
||||
<span class="go">true</span>
|
||||
<span class="go">false</span>
|
||||
<span class="go">false</span>
|
||||
<span class="go">25891h15m15.142266763s</span>
|
||||
<span class="go">25891.25420618521</span>
|
||||
<span class="go">1.5534752523711128e+06</span>
|
||||
<span class="go">9.320851514226677e+07</span>
|
||||
<span class="go">93208515142266763</span>
|
||||
<span class="go">2012-10-31 15:50:13.793654 +0000 UTC</span>
|
||||
<span class="go">2006-12-05 01:19:43.509120474 +0000 UTC</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run time.go
|
||||
<span class="go">2012-10-31 15:50:13.793654 +0000 UTC
|
||||
</span><span class="go">2009-11-17 20:34:58.651387237 +0000 UTC
|
||||
</span><span class="go">2009
|
||||
</span><span class="go">November
|
||||
</span><span class="go">17
|
||||
</span><span class="go">20
|
||||
</span><span class="go">34
|
||||
</span><span class="go">58
|
||||
</span><span class="go">651387237
|
||||
</span><span class="go">UTC
|
||||
</span><span class="go">Tuesday
|
||||
</span><span class="go">true
|
||||
</span><span class="go">false
|
||||
</span><span class="go">false
|
||||
</span><span class="go">25891h15m15.142266763s
|
||||
</span><span class="go">25891.25420618521
|
||||
</span><span class="go">1.5534752523711128e+06
|
||||
</span><span class="go">9.320851514226677e+07
|
||||
</span><span class="go">93208515142266763
|
||||
</span><span class="go">2012-10-31 15:50:13.793654 +0000 UTC
|
||||
</span><span class="go">2006-12-05 01:19:43.509120474 +0000 UTC</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
93
public/time-formatting-parsing
generated
93
public/time-formatting-parsing
generated
@ -43,9 +43,8 @@ pattern-based layouts.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/BoZYtr_2j66"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,12 +54,11 @@ pattern-based layouts.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -70,10 +68,9 @@ pattern-based layouts.</p>
|
||||
</td>
|
||||
<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>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">p</span> <span class="o">:=</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -86,10 +83,10 @@ constant.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">t</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">p</span><span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">Format</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">RFC3339</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">t</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Now</span><span class="p">()</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nf">Format</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">RFC3339</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -100,12 +97,12 @@ constant.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">t1</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Parse</span><span class="p">(</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">t1</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Parse</span><span class="p">(</span>
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nx">RFC3339</span><span class="p">,</span>
|
||||
<span class="s">"2012-11-01T22:08:41+00:00"</span><span class="p">)</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">t1</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="s">"2012-11-01T22:08:41+00:00"</span><span class="p">)</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">t1</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -122,14 +119,14 @@ The example time must be exactly as shown: the year 2006,
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">p</span><span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">Format</span><span class="p">(</span><span class="s">"3:04PM"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">Format</span><span class="p">(</span><span class="s">"Mon Jan _2 15:04:05 2006"</span><span class="p">))</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nx">Format</span><span class="p">(</span><span class="s">"2006-01-02T15:04:05.999999-07:00"</span><span class="p">))</span>
|
||||
<span class="nx">form</span> <span class="o">:=</span> <span class="s">"3 04 PM"</span>
|
||||
<span class="nx">t2</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Parse</span><span class="p">(</span><span class="nx">form</span><span class="p">,</span> <span class="s">"8 41 PM"</span><span class="p">)</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">t2</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nf">Format</span><span class="p">(</span><span class="s">"3:04PM"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nf">Format</span><span class="p">(</span><span class="s">"Mon Jan _2 15:04:05 2006"</span><span class="p">))</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">t</span><span class="p">.</span><span class="nf">Format</span><span class="p">(</span><span class="s">"2006-01-02T15:04:05.999999-07:00"</span><span class="p">))</span>
|
||||
<span class="nx">form</span> <span class="o">:=</span> <span class="s">"3 04 PM"</span>
|
||||
<span class="nx">t2</span><span class="p">,</span> <span class="nx">e</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Parse</span><span class="p">(</span><span class="nx">form</span><span class="p">,</span> <span class="s">"8 41 PM"</span><span class="p">)</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">t2</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -142,11 +139,11 @@ components of the time value.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"%d-%02d-%02dT%02d:%02d:%02d-00:00\n"</span><span class="p">,</span>
|
||||
<span class="nx">t</span><span class="p">.</span><span class="nx">Year</span><span class="p">(),</span> <span class="nx">t</span><span class="p">.</span><span class="nx">Month</span><span class="p">(),</span> <span class="nx">t</span><span class="p">.</span><span class="nx">Day</span><span class="p">(),</span>
|
||||
<span class="nx">t</span><span class="p">.</span><span class="nx">Hour</span><span class="p">(),</span> <span class="nx">t</span><span class="p">.</span><span class="nx">Minute</span><span class="p">(),</span> <span class="nx">t</span><span class="p">.</span><span class="nx">Second</span><span class="p">())</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"%d-%02d-%02dT%02d:%02d:%02d-00:00\n"</span><span class="p">,</span>
|
||||
<span class="nx">t</span><span class="p">.</span><span class="nf">Year</span><span class="p">(),</span> <span class="nx">t</span><span class="p">.</span><span class="nf">Month</span><span class="p">(),</span> <span class="nx">t</span><span class="p">.</span><span class="nf">Day</span><span class="p">(),</span>
|
||||
<span class="nx">t</span><span class="p">.</span><span class="nf">Hour</span><span class="p">(),</span> <span class="nx">t</span><span class="p">.</span><span class="nf">Minute</span><span class="p">(),</span> <span class="nx">t</span><span class="p">.</span><span class="nf">Second</span><span class="p">())</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -158,12 +155,12 @@ explaining the parsing problem.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">ansic</span> <span class="o">:=</span> <span class="s">"Mon Jan _2 15:04:05 2006"</span>
|
||||
<span class="nx">_</span><span class="p">,</span> <span class="nx">e</span> <span class="p">=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Parse</span><span class="p">(</span><span class="nx">ansic</span><span class="p">,</span> <span class="s">"8:41PM"</span><span class="p">)</span>
|
||||
<span class="nx">p</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">ansic</span> <span class="o">:=</span> <span class="s">"Mon Jan _2 15:04:05 2006"</span>
|
||||
<span class="nx">_</span><span class="p">,</span> <span class="nx">e</span> <span class="p">=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">Parse</span><span class="p">(</span><span class="nx">ansic</span><span class="p">,</span> <span class="s">"8:41PM"</span><span class="p">)</span>
|
||||
<span class="nf">p</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -177,17 +174,15 @@ explaining the parsing problem.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run time-formatting-parsing.go
|
||||
<span class="go">2014-04-15T18:00:15-07:00</span>
|
||||
<span class="go">2012-11-01 22:08:41 +0000 +0000</span>
|
||||
<span class="go">6:00PM</span>
|
||||
<span class="go">Tue Apr 15 18:00:15 2014</span>
|
||||
<span class="go">2014-04-15T18:00:15.161182-07:00</span>
|
||||
<span class="go">0000-01-01 20:41:00 +0000 UTC</span>
|
||||
<span class="go">2014-04-15T18:00:15-00:00</span>
|
||||
<span class="go">parsing time "8:41PM" as "Mon Jan _2 15:04:05 2006": ...</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run time-formatting-parsing.go
|
||||
<span class="go">2014-04-15T18:00:15-07:00
|
||||
</span><span class="go">2012-11-01 22:08:41 +0000 +0000
|
||||
</span><span class="go">6:00PM
|
||||
</span><span class="go">Tue Apr 15 18:00:15 2014
|
||||
</span><span class="go">2014-04-15T18:00:15.161182-07:00
|
||||
</span><span class="go">0000-01-01 20:41:00 +0000 UTC
|
||||
</span><span class="go">2014-04-15T18:00:15-00:00
|
||||
</span><span class="go">parsing time "8:41PM" as "Mon Jan _2 15:04:05 2006": ...</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
66
public/timeouts
generated
66
public/timeouts
generated
@ -45,9 +45,8 @@ elegant thanks to channels and <code>select</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/gyr0NbVKBVf"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,12 +56,11 @@ elegant thanks to channels and <code>select</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -72,9 +70,8 @@ elegant thanks to channels and <code>select</code>.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -90,13 +87,13 @@ channel is never read.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">c1</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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">c1</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="k">go</span> <span class="kd">func</span><span class="p">()</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="mi">2</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<span class="nx">c1</span> <span class="o"><-</span> <span class="s">"result 1"</span>
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<span class="nx">c1</span> <span class="o"><-</span> <span class="s">"result 1"</span>
|
||||
<span class="p">}()</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -112,14 +109,14 @@ if the operation takes more than the allowed 1s.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">select</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">select</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="nx">res</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">c1</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">res</span><span class="p">)</span>
|
||||
<span class="k">case</span> <span class="o"><-</span><span class="nx">time</span><span class="p">.</span><span class="nx">After</span><span class="p">(</span><span class="mi">1</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</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">"timeout 1"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">res</span><span class="p">)</span>
|
||||
<span class="k">case</span> <span class="o"><-</span><span class="nx">time</span><span class="p">.</span><span class="nf">After</span><span class="p">(</span><span class="mi">1</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">):</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"timeout 1"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -131,20 +128,20 @@ from <code>c2</code> will succeed and we’ll print the result.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">c2</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>
|
||||
<pre class="chroma">
|
||||
<span class="nx">c2</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="k">go</span> <span class="kd">func</span><span class="p">()</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="mi">2</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<span class="nx">c2</span> <span class="o"><-</span> <span class="s">"result 2"</span>
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<span class="nx">c2</span> <span class="o"><-</span> <span class="s">"result 2"</span>
|
||||
<span class="p">}()</span>
|
||||
<span class="k">select</span> <span class="p">{</span>
|
||||
<span class="k">case</span> <span class="nx">res</span> <span class="o">:=</span> <span class="o"><-</span><span class="nx">c2</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">res</span><span class="p">)</span>
|
||||
<span class="k">case</span> <span class="o"><-</span><span class="nx">time</span><span class="p">.</span><span class="nx">After</span><span class="p">(</span><span class="mi">3</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</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">"timeout 2"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">res</span><span class="p">)</span>
|
||||
<span class="k">case</span> <span class="o"><-</span><span class="nx">time</span><span class="p">.</span><span class="nf">After</span><span class="p">(</span><span class="mi">3</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">):</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"timeout 2"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -160,11 +157,10 @@ out and the second succeeding.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run timeouts.go
|
||||
<span class="go">timeout 1</span>
|
||||
<span class="go">result 2</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run timeouts.go
|
||||
<span class="go">timeout 1
|
||||
</span><span class="go">result 2</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
60
public/timers
generated
60
public/timers
generated
@ -46,9 +46,8 @@ at <a href="tickers">tickers</a>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/gF7VLRz3URM"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -58,12 +57,11 @@ at <a href="tickers">tickers</a>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -73,9 +71,8 @@ at <a href="tickers">tickers</a>.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -89,9 +86,9 @@ time. This timer will wait 2 seconds.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">timer1</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">NewTimer</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">timer1</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">NewTimer</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -104,10 +101,10 @@ fired.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="o"><-</span><span class="nx">timer1</span><span class="p">.</span><span class="nx">C</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"Timer 1 fired"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="o"><-</span><span class="nx">timer1</span><span class="p">.</span><span class="nx">C</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Timer 1 fired"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -121,17 +118,17 @@ Here’s an example of that.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">timer2</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nx">NewTimer</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">timer2</span> <span class="o">:=</span> <span class="nx">time</span><span class="p">.</span><span class="nf">NewTimer</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="k">go</span> <span class="kd">func</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="o"><-</span><span class="nx">timer2</span><span class="p">.</span><span class="nx">C</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"Timer 2 fired"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Timer 2 fired"</span><span class="p">)</span>
|
||||
<span class="p">}()</span>
|
||||
<span class="nx">stop2</span> <span class="o">:=</span> <span class="nx">timer2</span><span class="p">.</span><span class="nx">Stop</span><span class="p">()</span>
|
||||
<span class="nx">stop2</span> <span class="o">:=</span> <span class="nx">timer2</span><span class="p">.</span><span class="nf">Stop</span><span class="p">()</span>
|
||||
<span class="k">if</span> <span class="nx">stop2</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">"Timer 2 stopped"</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"Timer 2 stopped"</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -143,10 +140,10 @@ was going to, to show it is in fact stopped.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">time</span><span class="p">.</span><span class="nx">Sleep</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">Sleep</span><span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="nx">time</span><span class="p">.</span><span class="nx">Second</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -163,11 +160,10 @@ a chance to fire.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run timers.go
|
||||
<span class="go">Timer 1 fired</span>
|
||||
<span class="go">Timer 2 stopped</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run timers.go
|
||||
<span class="go">Timer 1 fired
|
||||
</span><span class="go">Timer 2 stopped</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
112
public/url-parsing
generated
112
public/url-parsing
generated
@ -43,9 +43,8 @@ Here’s how to parse URLs in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/fHTQn9X7l1B"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,13 +54,12 @@ Here’s how to parse URLs in Go.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"net"</span>
|
||||
<span class="s">"net/url"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"net"</span>
|
||||
<span class="s">"net/url"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -71,9 +69,8 @@ Here’s how to parse URLs in Go.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -86,9 +83,9 @@ query params, and query fragment.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">s</span> <span class="o">:=</span> <span class="s">"postgres://user:pass@host.com:5432/path?k=v#f"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">s</span> <span class="o">:=</span> <span class="s">"postgres://user:pass@host.com:5432/path?k=v#f"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -99,12 +96,12 @@ query params, and query fragment.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">u</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">url</span><span class="p">.</span><span class="nx">Parse</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">u</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">url</span><span class="p">.</span><span class="nf">Parse</span><span class="p">(</span><span class="nx">s</span><span class="p">)</span>
|
||||
<span class="k">if</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="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -115,9 +112,9 @@ query params, and query fragment.</p>
|
||||
</td>
|
||||
<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">u</span><span class="p">.</span><span class="nx">Scheme</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">Scheme</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -130,12 +127,12 @@ values.</p>
|
||||
</td>
|
||||
<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">u</span><span class="p">.</span><span class="nx">User</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">u</span><span class="p">.</span><span class="nx">User</span><span class="p">.</span><span class="nx">Username</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">u</span><span class="p">.</span><span class="nx">User</span><span class="p">.</span><span class="nx">Password</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">p</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">User</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">User</span><span class="p">.</span><span class="nf">Username</span><span class="p">())</span>
|
||||
<span class="nx">p</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">u</span><span class="p">.</span><span class="nx">User</span><span class="p">.</span><span class="nf">Password</span><span class="p">()</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">p</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -147,12 +144,12 @@ if present. Use <code>SplitHostPort</code> to extract them.</p>
|
||||
</td>
|
||||
<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">u</span><span class="p">.</span><span class="nx">Host</span><span class="p">)</span>
|
||||
<span class="nx">host</span><span class="p">,</span> <span class="nx">port</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">net</span><span class="p">.</span><span class="nx">SplitHostPort</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">Host</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">host</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">port</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">Host</span><span class="p">)</span>
|
||||
<span class="nx">host</span><span class="p">,</span> <span class="nx">port</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">net</span><span class="p">.</span><span class="nf">SplitHostPort</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">Host</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">host</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">port</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -164,10 +161,10 @@ the <code>#</code>.</p>
|
||||
</td>
|
||||
<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">u</span><span class="p">.</span><span class="nx">Path</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">u</span><span class="p">.</span><span class="nx">Fragment</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">Path</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">Fragment</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -182,13 +179,13 @@ if you only want the first value.</p>
|
||||
</td>
|
||||
<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">u</span><span class="p">.</span><span class="nx">RawQuery</span><span class="p">)</span>
|
||||
<span class="nx">m</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">url</span><span class="p">.</span><span class="nx">ParseQuery</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">RawQuery</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">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="nx">m</span><span class="p">[</span><span class="s">"k"</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">RawQuery</span><span class="p">)</span>
|
||||
<span class="nx">m</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">url</span><span class="p">.</span><span class="nf">ParseQuery</span><span class="p">(</span><span class="nx">u</span><span class="p">.</span><span class="nx">RawQuery</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</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="nf">Println</span><span class="p">(</span><span class="nx">m</span><span class="p">[</span><span class="s">"k"</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -204,21 +201,20 @@ pieces that we extracted.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run url-parsing.go
|
||||
<span class="go">postgres</span>
|
||||
<span class="go">user:pass</span>
|
||||
<span class="go">user</span>
|
||||
<span class="go">pass</span>
|
||||
<span class="go">host.com:5432</span>
|
||||
<span class="go">host.com</span>
|
||||
<span class="go">5432</span>
|
||||
<span class="go">/path</span>
|
||||
<span class="go">f</span>
|
||||
<span class="go">k=v</span>
|
||||
<span class="go">map[k:[v]]</span>
|
||||
<span class="go">v</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run url-parsing.go
|
||||
<span class="go">postgres
|
||||
</span><span class="go">user:pass
|
||||
</span><span class="go">user
|
||||
</span><span class="go">pass
|
||||
</span><span class="go">host.com:5432
|
||||
</span><span class="go">host.com
|
||||
</span><span class="go">5432
|
||||
</span><span class="go">/path
|
||||
</span><span class="go">f
|
||||
</span><span class="go">k=v
|
||||
</span><span class="go">map[k:[v]]
|
||||
</span><span class="go">v</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
55
public/values
generated
55
public/values
generated
@ -44,9 +44,8 @@ basic examples.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/YnVS3LZr8pk"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,9 +55,8 @@ basic examples.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -68,9 +66,8 @@ basic examples.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -81,9 +78,9 @@ basic examples.</p>
|
||||
</td>
|
||||
<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">"go"</span> <span class="o">+</span> <span class="s">"lang"</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"go"</span> <span class="o">+</span> <span class="s">"lang"</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -94,10 +91,10 @@ basic examples.</p>
|
||||
</td>
|
||||
<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">"1+1 ="</span><span class="p">,</span> <span class="mi">1</span><span class="o">+</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="s">"7.0/3.0 ="</span><span class="p">,</span> <span class="mf">7.0</span><span class="o">/</span><span class="mf">3.0</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"1+1 ="</span><span class="p">,</span> <span class="mi">1</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"7.0/3.0 ="</span><span class="p">,</span> <span class="mf">7.0</span><span class="o">/</span><span class="mf">3.0</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -108,12 +105,12 @@ basic examples.</p>
|
||||
</td>
|
||||
<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="kc">true</span> <span class="o">&&</span> <span class="kc">false</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="kc">true</span> <span class="o">||</span> <span class="kc">false</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="kc">true</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="kc">true</span> <span class="o">&&</span> <span class="kc">false</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="kc">true</span> <span class="o">||</span> <span class="kc">false</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(!</span><span class="kc">true</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -127,15 +124,13 @@ basic examples.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run values.go
|
||||
<span class="go">golang</span>
|
||||
<span class="go">1+1 = 2</span>
|
||||
<span class="go">7.0/3.0 = 2.3333333333333335</span>
|
||||
<span class="go">false</span>
|
||||
<span class="go">true</span>
|
||||
<span class="go">false</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run values.go
|
||||
<span class="go">golang
|
||||
</span><span class="go">1+1 = 2
|
||||
</span><span class="go">7.0/3.0 = 2.3333333333333335
|
||||
</span><span class="go">false
|
||||
</span><span class="go">true
|
||||
</span><span class="go">false</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
69
public/variables
generated
69
public/variables
generated
@ -44,9 +44,8 @@ calls.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/iYyAIilyBRf"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -56,9 +55,8 @@ calls.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -68,9 +66,8 @@ calls.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -81,10 +78,10 @@ calls.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">a</span> <span class="p">=</span> <span class="s">"initial"</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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">a</span> <span class="p">=</span> <span class="s">"initial"</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">a</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -95,10 +92,10 @@ calls.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">c</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="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">c</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">b</span><span class="p">,</span> <span class="nx">c</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="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">b</span><span class="p">,</span> <span class="nx">c</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -109,10 +106,10 @@ calls.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">d</span> <span class="p">=</span> <span class="kc">true</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 class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">d</span> <span class="p">=</span> <span class="kc">true</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">d</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -125,10 +122,10 @@ zero value for an <code>int</code> is <code>0</code>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">e</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="nx">e</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">e</span> <span class="kt">int</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">e</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -141,11 +138,11 @@ initializing a variable, e.g. for
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">f</span> <span class="o">:=</span> <span class="s">"apple"</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">f</span> <span class="o">:=</span> <span class="s">"apple"</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -159,14 +156,12 @@ initializing a variable, e.g. for
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run variables.go
|
||||
<span class="go">initial</span>
|
||||
<span class="go">1 2</span>
|
||||
<span class="go">true</span>
|
||||
<span class="go">0</span>
|
||||
<span class="go">apple</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run variables.go
|
||||
<span class="go">initial
|
||||
</span><span class="go">1 2
|
||||
</span><span class="go">true
|
||||
</span><span class="go">0
|
||||
</span><span class="go">apple</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
51
public/variadic-functions
generated
51
public/variadic-functions
generated
@ -45,9 +45,8 @@ function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/Ua6kZOMabBp"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -57,9 +56,8 @@ function.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="s">"fmt"</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -71,16 +69,16 @@ of <code>int</code>s as arguments.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">sum</span><span class="p">(</span><span class="nx">nums</span> <span class="o">...</span><span class="kt">int</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="nx">nums</span><span class="p">,</span> <span class="s">" "</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">sum</span><span class="p">(</span><span class="nx">nums</span> <span class="o">...</span><span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Print</span><span class="p">(</span><span class="nx">nums</span><span class="p">,</span> <span class="s">" "</span><span class="p">)</span>
|
||||
<span class="nx">total</span> <span class="o">:=</span> <span class="mi">0</span>
|
||||
<span class="k">for</span> <span class="nx">_</span><span class="p">,</span> <span class="nx">num</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">nums</span> <span class="p">{</span>
|
||||
<span class="nx">total</span> <span class="o">+=</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">total</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">total</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -90,9 +88,8 @@ of <code>int</code>s as arguments.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -104,10 +101,10 @@ with individual arguments.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">sum</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">sum</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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nf">sum</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="nf">sum</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>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -120,11 +117,11 @@ apply them to a variadic function using
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">nums</span> <span class="o">:=</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="nx">sum</span><span class="p">(</span><span class="nx">nums</span><span class="o">...</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">nums</span> <span class="o">:=</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="nf">sum</span><span class="p">(</span><span class="nx">nums</span><span class="o">...</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -138,12 +135,10 @@ apply them to a variadic function using
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run variadic-functions.go
|
||||
<span class="go">[1 2] 3</span>
|
||||
<span class="go">[1 2 3] 6</span>
|
||||
<span class="go">[1 2 3 4] 10</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run variadic-functions.go
|
||||
<span class="go">[1 2] 3
|
||||
</span><span class="go">[1 2 3] 6
|
||||
</span><span class="go">[1 2 3 4] 10</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
92
public/waitgroups
generated
92
public/waitgroups
generated
@ -43,9 +43,8 @@ use a <em>wait group</em>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/7mWXl0yVe6I"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,13 +54,12 @@ use a <em>wait group</em>.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"sync"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"sync"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -74,9 +72,9 @@ pointer.</p>
|
||||
</td>
|
||||
<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">id</span> <span class="kt">int</span><span class="p">,</span> <span class="nx">wg</span> <span class="o">*</span><span class="nx">sync</span><span class="p">.</span><span class="nx">WaitGroup</span><span class="p">)</span> <span class="p">{</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">worker</span><span class="p">(</span><span class="nx">id</span> <span class="kt">int</span><span class="p">,</span> <span class="nx">wg</span> <span class="o">*</span><span class="nx">sync</span><span class="p">.</span><span class="nx">WaitGroup</span><span class="p">)</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -87,9 +85,9 @@ pointer.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">defer</span> <span class="nx">wg</span><span class="p">.</span><span class="nx">Done</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="k">defer</span> <span class="nx">wg</span><span class="p">.</span><span class="nf">Done</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -99,9 +97,8 @@ pointer.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"Worker %d starting\n"</span><span class="p">,</span> <span class="nx">id</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="nx">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"Worker %d starting\n"</span><span class="p">,</span> <span class="nx">id</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -112,11 +109,11 @@ pointer.</p>
|
||||
</td>
|
||||
<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>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Printf</span><span class="p">(</span><span class="s">"Worker %d done\n"</span><span class="p">,</span> <span class="nx">id</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">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">fmt</span><span class="p">.</span><span class="nf">Printf</span><span class="p">(</span><span class="s">"Worker %d done\n"</span><span class="p">,</span> <span class="nx">id</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -126,9 +123,8 @@ pointer.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -140,9 +136,9 @@ goroutines launched here to finish.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">wg</span> <span class="nx">sync</span><span class="p">.</span><span class="nx">WaitGroup</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">wg</span> <span class="nx">sync</span><span class="p">.</span><span class="nx">WaitGroup</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -154,12 +150,12 @@ counter for each.</p>
|
||||
</td>
|
||||
<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">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><=</span> <span class="mi">5</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
||||
<span class="nx">wg</span><span class="p">.</span><span class="nx">Add</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">i</span><span class="p">,</span> <span class="o">&</span><span class="nx">wg</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">i</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">i</span> <span class="o"><=</span> <span class="mi">5</span><span class="p">;</span> <span class="nx">i</span><span class="o">++</span> <span class="p">{</span>
|
||||
<span class="nx">wg</span><span class="p">.</span><span class="nf">Add</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
|
||||
<span class="k">go</span> <span class="nf">worker</span><span class="p">(</span><span class="nx">i</span><span class="p">,</span> <span class="o">&</span><span class="nx">wg</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -171,10 +167,10 @@ all the workers notified they’re done.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">wg</span><span class="p">.</span><span class="nx">Wait</span><span class="p">()</span>
|
||||
<pre class="chroma">
|
||||
<span class="nx">wg</span><span class="p">.</span><span class="nf">Wait</span><span class="p">()</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -188,19 +184,17 @@ all the workers notified they’re done.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run waitgroups.go
|
||||
<span class="go">Worker 5 starting</span>
|
||||
<span class="go">Worker 3 starting</span>
|
||||
<span class="go">Worker 4 starting</span>
|
||||
<span class="go">Worker 1 starting</span>
|
||||
<span class="go">Worker 2 starting</span>
|
||||
<span class="go">Worker 4 done</span>
|
||||
<span class="go">Worker 1 done</span>
|
||||
<span class="go">Worker 2 done</span>
|
||||
<span class="go">Worker 5 done</span>
|
||||
<span class="go">Worker 3 done</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run waitgroups.go
|
||||
<span class="go">Worker 5 starting
|
||||
</span><span class="go">Worker 3 starting
|
||||
</span><span class="go">Worker 4 starting
|
||||
</span><span class="go">Worker 1 starting
|
||||
</span><span class="go">Worker 2 starting
|
||||
</span><span class="go">Worker 4 done
|
||||
</span><span class="go">Worker 1 done
|
||||
</span><span class="go">Worker 2 done
|
||||
</span><span class="go">Worker 5 done
|
||||
</span><span class="go">Worker 3 done</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
86
public/worker-pools
generated
86
public/worker-pools
generated
@ -43,9 +43,8 @@ a <em>worker pool</em> using goroutines and channels.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/hiSJJsYZJKL"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,12 +54,11 @@ a <em>worker pool</em> using goroutines and channels.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"time"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -75,16 +73,16 @@ simulate an expensive task.</p>
|
||||
</td>
|
||||
<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">id</span> <span class="kt">int</span><span class="p">,</span> <span class="nx">jobs</span> <span class="o"><-</span><span class="kd">chan</span> <span class="kt">int</span><span class="p">,</span> <span class="nx">results</span> <span class="kd">chan</span><span class="o"><-</span> <span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">func</span> <span class="nf">worker</span><span class="p">(</span><span class="nx">id</span> <span class="kt">int</span><span class="p">,</span> <span class="nx">jobs</span> <span class="o"><-</span><span class="kd">chan</span> <span class="kt">int</span><span class="p">,</span> <span class="nx">results</span> <span class="kd">chan</span><span class="o"><-</span> <span class="kt">int</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">for</span> <span class="nx">j</span> <span class="o">:=</span> <span class="k">range</span> <span class="nx">jobs</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">"worker"</span><span class="p">,</span> <span class="nx">id</span><span class="p">,</span> <span class="s">"started job"</span><span class="p">,</span> <span class="nx">j</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">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">"worker"</span><span class="p">,</span> <span class="nx">id</span><span class="p">,</span> <span class="s">"finished 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="nf">Println</span><span class="p">(</span><span class="s">"worker"</span><span class="p">,</span> <span class="nx">id</span><span class="p">,</span> <span class="s">"started job"</span><span class="p">,</span> <span class="nx">j</span><span class="p">)</span>
|
||||
<span class="nx">time</span><span class="p">.</span><span class="nf">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">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="s">"worker"</span><span class="p">,</span> <span class="nx">id</span><span class="p">,</span> <span class="s">"finished job"</span><span class="p">,</span> <span class="nx">j</span><span class="p">)</span>
|
||||
<span class="nx">results</span> <span class="o"><-</span> <span class="nx">j</span> <span class="o">*</span> <span class="mi">2</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -94,9 +92,8 @@ simulate an expensive task.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -109,11 +106,11 @@ channels for this.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">const</span> <span class="nx">numJobs</span> <span class="p">=</span> <span class="mi">5</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">const</span> <span class="nx">numJobs</span> <span class="p">=</span> <span class="mi">5</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="nx">numJobs</span><span class="p">)</span>
|
||||
<span class="nx">results</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="nx">numJobs</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -125,11 +122,11 @@ because there are no jobs yet.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">w</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">w</span> <span class="o"><=</span> <span class="mi">3</span><span class="p">;</span> <span class="nx">w</span><span class="o">++</span> <span class="p">{</span>
|
||||
<span class="k">go</span> <span class="nx">worker</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span> <span class="nx">jobs</span><span class="p">,</span> <span class="nx">results</span><span class="p">)</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">w</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">w</span> <span class="o"><=</span> <span class="mi">3</span><span class="p">;</span> <span class="nx">w</span><span class="o">++</span> <span class="p">{</span>
|
||||
<span class="k">go</span> <span class="nf">worker</span><span class="p">(</span><span class="nx">w</span><span class="p">,</span> <span class="nx">jobs</span><span class="p">,</span> <span class="nx">results</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -141,12 +138,12 @@ channel to indicate that’s all the work we have.</p>
|
||||
</td>
|
||||
<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="nx">numJobs</span><span class="p">;</span> <span class="nx">j</span><span class="o">++</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<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="nx">numJobs</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="p">}</span>
|
||||
<span class="nb">close</span><span class="p">(</span><span class="nx">jobs</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -160,12 +157,12 @@ goroutines is to use a <a href="waitgroups">WaitGroup</a>.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">for</span> <span class="nx">a</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">a</span> <span class="o"><=</span> <span class="nx">numJobs</span><span class="p">;</span> <span class="nx">a</span><span class="o">++</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="k">for</span> <span class="nx">a</span> <span class="o">:=</span> <span class="mi">1</span><span class="p">;</span> <span class="nx">a</span> <span class="o"><=</span> <span class="nx">numJobs</span><span class="p">;</span> <span class="nx">a</span><span class="o">++</span> <span class="p">{</span>
|
||||
<span class="o"><-</span><span class="nx">results</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -183,19 +180,18 @@ there are 3 workers operating concurrently.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> <span class="nb">time</span> go run worker-pools.go
|
||||
<span class="go">worker 1 started job 1</span>
|
||||
<span class="go">worker 2 started job 2</span>
|
||||
<span class="go">worker 3 started job 3</span>
|
||||
<span class="go">worker 1 finished job 1</span>
|
||||
<span class="go">worker 1 started job 4</span>
|
||||
<span class="go">worker 2 finished job 2</span>
|
||||
<span class="go">worker 2 started job 5</span>
|
||||
<span class="go">worker 3 finished job 3</span>
|
||||
<span class="go">worker 1 finished job 4</span>
|
||||
<span class="go">worker 2 finished job 5</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> time go run worker-pools.go
|
||||
<span class="go">worker 1 started job 1
|
||||
</span><span class="go">worker 2 started job 2
|
||||
</span><span class="go">worker 3 started job 3
|
||||
</span><span class="go">worker 1 finished job 1
|
||||
</span><span class="go">worker 1 started job 4
|
||||
</span><span class="go">worker 2 finished job 2
|
||||
</span><span class="go">worker 2 started job 5
|
||||
</span><span class="go">worker 3 finished job 3
|
||||
</span><span class="go">worker 1 finished job 4
|
||||
</span><span class="go">worker 2 finished job 5</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -205,9 +201,7 @@ there are 3 workers operating concurrently.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="go">real 0m2.358s</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="go">real 0m2.358s</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
131
public/writing-files
generated
131
public/writing-files
generated
@ -43,9 +43,8 @@ ones we saw earlier for reading.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/fQ7sd4gXv0F"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,14 +54,13 @@ ones we saw earlier for reading.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"bufio"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"bufio"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="s">"io/ioutil"</span>
|
||||
<span class="s">"os"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -72,13 +70,12 @@ ones we saw earlier for reading.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="nx">check</span><span class="p">(</span><span class="nx">e</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">check</span><span class="p">(</span><span class="nx">e</span> <span class="kt">error</span><span class="p">)</span> <span class="p">{</span>
|
||||
<span class="k">if</span> <span class="nx">e</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">e</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -88,9 +85,8 @@ ones we saw earlier for reading.</p>
|
||||
</td>
|
||||
<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>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -102,11 +98,11 @@ bytes) into a file.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">d1</span> <span class="o">:=</span> <span class="p">[]</span><span class="nb">byte</span><span class="p">(</span><span class="s">"hello\ngo\n"</span><span class="p">)</span>
|
||||
<span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nx">WriteFile</span><span class="p">(</span><span class="s">"/tmp/dat1"</span><span class="p">,</span> <span class="nx">d1</span><span class="p">,</span> <span class="mo">0644</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">d1</span> <span class="o">:=</span> <span class="p">[]</span><span class="nb">byte</span><span class="p">(</span><span class="s">"hello\ngo\n"</span><span class="p">)</span>
|
||||
<span class="nx">err</span> <span class="o">:=</span> <span class="nx">ioutil</span><span class="p">.</span><span class="nf">WriteFile</span><span class="p">(</span><span class="s">"/tmp/dat1"</span><span class="p">,</span> <span class="nx">d1</span><span class="p">,</span> <span class="mo">0644</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -117,10 +113,10 @@ bytes) into a file.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <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="s">"/tmp/dat2"</span><span class="p">)</span>
|
||||
<span class="nx">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<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="nf">Create</span><span class="p">(</span><span class="s">"/tmp/dat2"</span><span class="p">)</span>
|
||||
<span class="nf">check</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -132,9 +128,9 @@ after opening a file.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="k">defer</span> <span class="nx">f</span><span class="p">.</span><span class="nx">Close</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="k">defer</span> <span class="nx">f</span><span class="p">.</span><span class="nf">Close</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -145,12 +141,12 @@ after opening a file.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">d2</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">byte</span><span class="p">{</span><span class="mi">115</span><span class="p">,</span> <span class="mi">111</span><span class="p">,</span> <span class="mi">109</span><span class="p">,</span> <span class="mi">101</span><span class="p">,</span> <span class="mi">10</span><span class="p">}</span>
|
||||
<span class="nx">n2</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">Write</span><span class="p">(</span><span class="nx">d2</span><span class="p">)</span>
|
||||
<span class="nx">check</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">Printf</span><span class="p">(</span><span class="s">"wrote %d bytes\n"</span><span class="p">,</span> <span class="nx">n2</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">d2</span> <span class="o">:=</span> <span class="p">[]</span><span class="kt">byte</span><span class="p">{</span><span class="mi">115</span><span class="p">,</span> <span class="mi">111</span><span class="p">,</span> <span class="mi">109</span><span class="p">,</span> <span class="mi">101</span><span class="p">,</span> <span class="mi">10</span><span class="p">}</span>
|
||||
<span class="nx">n2</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nf">Write</span><span class="p">(</span><span class="nx">d2</span><span class="p">)</span>
|
||||
<span class="nf">check</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="nf">Printf</span><span class="p">(</span><span class="s">"wrote %d bytes\n"</span><span class="p">,</span> <span class="nx">n2</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -161,11 +157,11 @@ after opening a file.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">n3</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nx">WriteString</span><span class="p">(</span><span class="s">"writes\n"</span><span class="p">)</span>
|
||||
<span class="nx">check</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">Printf</span><span class="p">(</span><span class="s">"wrote %d bytes\n"</span><span class="p">,</span> <span class="nx">n3</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">n3</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">f</span><span class="p">.</span><span class="nf">WriteString</span><span class="p">(</span><span class="s">"writes\n"</span><span class="p">)</span>
|
||||
<span class="nf">check</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="nf">Printf</span><span class="p">(</span><span class="s">"wrote %d bytes\n"</span><span class="p">,</span> <span class="nx">n3</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -176,9 +172,9 @@ after opening a file.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">f</span><span class="p">.</span><span class="nx">Sync</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">f</span><span class="p">.</span><span class="nf">Sync</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -190,12 +186,12 @@ to the buffered readers we saw earlier.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">w</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nx">NewWriter</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||
<span class="nx">n4</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">w</span><span class="p">.</span><span class="nx">WriteString</span><span class="p">(</span><span class="s">"buffered\n"</span><span class="p">)</span>
|
||||
<span class="nx">check</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">Printf</span><span class="p">(</span><span class="s">"wrote %d bytes\n"</span><span class="p">,</span> <span class="nx">n4</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">w</span> <span class="o">:=</span> <span class="nx">bufio</span><span class="p">.</span><span class="nf">NewWriter</span><span class="p">(</span><span class="nx">f</span><span class="p">)</span>
|
||||
<span class="nx">n4</span><span class="p">,</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">w</span><span class="p">.</span><span class="nf">WriteString</span><span class="p">(</span><span class="s">"buffered\n"</span><span class="p">)</span>
|
||||
<span class="nf">check</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="nf">Printf</span><span class="p">(</span><span class="s">"wrote %d bytes\n"</span><span class="p">,</span> <span class="nx">n4</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -207,9 +203,9 @@ been applied to the underlying writer.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">w</span><span class="p">.</span><span class="nx">Flush</span><span class="p">()</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">w</span><span class="p">.</span><span class="nf">Flush</span><span class="p">()</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -219,9 +215,8 @@ been applied to the underlying writer.</p>
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="p">}</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -236,12 +231,11 @@ been applied to the underlying writer.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run writing-files.go
|
||||
<span class="go">wrote 5 bytes</span>
|
||||
<span class="go">wrote 7 bytes</span>
|
||||
<span class="go">wrote 9 bytes</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> go run writing-files.go
|
||||
<span class="go">wrote 5 bytes
|
||||
</span><span class="go">wrote 7 bytes
|
||||
</span><span class="go">wrote 9 bytes</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -252,15 +246,14 @@ been applied to the underlying writer.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> cat /tmp/dat1
|
||||
<span class="go">hello</span>
|
||||
<span class="go">go</span>
|
||||
<span class="gp">$</span> cat /tmp/dat2
|
||||
<span class="go">some</span>
|
||||
<span class="go">writes</span>
|
||||
<span class="go">buffered</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="gp">$</span> cat /tmp/dat1
|
||||
<span class="go">hello
|
||||
</span><span class="go">go
|
||||
</span><span class="go"></span><span class="gp">$</span> cat /tmp/dat2
|
||||
<span class="go">some
|
||||
</span><span class="go">writes
|
||||
</span><span class="go">buffered</span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
157
public/xml
generated
157
public/xml
generated
@ -43,9 +43,8 @@ formats with the <code>encoding.xml</code> package.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
<a href="http://play.golang.org/p/RsNLhMBazeX"><img title="Run code" src="play.png" class="run" /></a><img title="Copy code" src="clipboard.png" class="copy" />
|
||||
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kn">package</span> <span class="nx">main</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -55,12 +54,11 @@ formats with the <code>encoding.xml</code> package.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"encoding/xml"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<pre class="chroma"><span class="kn">import</span> <span class="p">(</span>
|
||||
<span class="s">"encoding/xml"</span>
|
||||
<span class="s">"fmt"</span>
|
||||
<span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -77,14 +75,14 @@ the name of the XML element representing this struct;
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">type</span> <span class="nx">Plant</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">XMLName</span> <span class="nx">xml</span><span class="p">.</span><span class="nx">Name</span> <span class="s">`xml:"plant"`</span>
|
||||
<span class="nx">Id</span> <span class="kt">int</span> <span class="s">`xml:"id,attr"`</span>
|
||||
<span class="nx">Name</span> <span class="kt">string</span> <span class="s">`xml:"name"`</span>
|
||||
<span class="nx">Origin</span> <span class="p">[]</span><span class="kt">string</span> <span class="s">`xml:"origin"`</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">type</span> <span class="nx">Plant</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">XMLName</span> <span class="nx">xml</span><span class="p">.</span><span class="nx">Name</span> <span class="s">`xml:"plant"`</span>
|
||||
<span class="nx">Id</span> <span class="kt">int</span> <span class="s">`xml:"id,attr"`</span>
|
||||
<span class="nx">Name</span> <span class="kt">string</span> <span class="s">`xml:"name"`</span>
|
||||
<span class="nx">Origin</span> <span class="p">[]</span><span class="kt">string</span> <span class="s">`xml:"origin"`</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -94,12 +92,11 @@ the name of the XML element representing this struct;
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre><span class="kd">func</span> <span class="p">(</span><span class="nx">p</span> <span class="nx">Plant</span><span class="p">)</span> <span class="nx">String</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">"Plant id=%v, name=%v, origin=%v"</span><span class="p">,</span>
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="p">(</span><span class="nx">p</span> <span class="nx">Plant</span><span class="p">)</span> <span class="nf">String</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="nf">Sprintf</span><span class="p">(</span><span class="s">"Plant id=%v, name=%v, origin=%v"</span><span class="p">,</span>
|
||||
<span class="nx">p</span><span class="p">.</span><span class="nx">Id</span><span class="p">,</span> <span class="nx">p</span><span class="p">.</span><span class="nx">Name</span><span class="p">,</span> <span class="nx">p</span><span class="p">.</span><span class="nx">Origin</span><span class="p">)</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -109,11 +106,10 @@ the name of the XML element representing this struct;
|
||||
</td>
|
||||
<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>
|
||||
<span class="nx">coffee</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Plant</span><span class="p">{</span><span class="nx">Id</span><span class="p">:</span> <span class="mi">27</span><span class="p">,</span> <span class="nx">Name</span><span class="p">:</span> <span class="s">"Coffee"</span><span class="p">}</span>
|
||||
<span class="nx">coffee</span><span class="p">.</span><span class="nx">Origin</span> <span class="p">=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"Ethiopia"</span><span class="p">,</span> <span class="s">"Brazil"</span><span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="kd">func</span> <span class="nf">main</span><span class="p">()</span> <span class="p">{</span>
|
||||
<span class="nx">coffee</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Plant</span><span class="p">{</span><span class="nx">Id</span><span class="p">:</span> <span class="mi">27</span><span class="p">,</span> <span class="nx">Name</span><span class="p">:</span> <span class="s">"Coffee"</span><span class="p">}</span>
|
||||
<span class="nx">coffee</span><span class="p">.</span><span class="nx">Origin</span> <span class="p">=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"Ethiopia"</span><span class="p">,</span> <span class="s">"Brazil"</span><span class="p">}</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -126,10 +122,10 @@ human-readable output.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">out</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">xml</span><span class="p">.</span><span class="nx">MarshalIndent</span><span class="p">(</span><span class="nx">coffee</span><span class="p">,</span> <span class="s">" "</span><span class="p">,</span> <span class="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="nb">string</span><span class="p">(</span><span class="nx">out</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">out</span><span class="p">,</span> <span class="nx">_</span> <span class="o">:=</span> <span class="nx">xml</span><span class="p">.</span><span class="nf">MarshalIndent</span><span class="p">(</span><span class="nx">coffee</span><span class="p">,</span> <span class="s">" "</span><span class="p">,</span> <span class="s">" "</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">out</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -141,9 +137,9 @@ it explicitly.</p>
|
||||
</td>
|
||||
<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">xml</span><span class="p">.</span><span class="nx">Header</span> <span class="o">+</span> <span class="nb">string</span><span class="p">(</span><span class="nx">out</span><span class="p">))</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma">
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">xml</span><span class="p">.</span><span class="nx">Header</span> <span class="o">+</span> <span class="nb">string</span><span class="p">(</span><span class="nx">out</span><span class="p">))</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -157,13 +153,13 @@ will be returned.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">var</span> <span class="nx">p</span> <span class="nx">Plant</span>
|
||||
<span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">xml</span><span class="p">.</span><span class="nx">Unmarshal</span><span class="p">(</span><span class="nx">out</span><span class="p">,</span> <span class="o">&</span><span class="nx">p</span><span class="p">);</span> <span class="nx">err</span> <span class="o">!=</span> <span class="kc">nil</span> <span class="p">{</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">var</span> <span class="nx">p</span> <span class="nx">Plant</span>
|
||||
<span class="k">if</span> <span class="nx">err</span> <span class="o">:=</span> <span class="nx">xml</span><span class="p">.</span><span class="nf">Unmarshal</span><span class="p">(</span><span class="nx">out</span><span class="p">,</span> <span class="o">&</span><span class="nx">p</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="p">}</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="nx">p</span><span class="p">)</span>
|
||||
</pre></div>
|
||||
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nx">p</span><span class="p">)</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -173,10 +169,9 @@ will be returned.</p>
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">tomato</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Plant</span><span class="p">{</span><span class="nx">Id</span><span class="p">:</span> <span class="mi">81</span><span class="p">,</span> <span class="nx">Name</span><span class="p">:</span> <span class="s">"Tomato"</span><span class="p">}</span>
|
||||
<span class="nx">tomato</span><span class="p">.</span><span class="nx">Origin</span> <span class="p">=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"Mexico"</span><span class="p">,</span> <span class="s">"California"</span><span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"> <span class="nx">tomato</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Plant</span><span class="p">{</span><span class="nx">Id</span><span class="p">:</span> <span class="mi">81</span><span class="p">,</span> <span class="nx">Name</span><span class="p">:</span> <span class="s">"Tomato"</span><span class="p">}</span>
|
||||
<span class="nx">tomato</span><span class="p">.</span><span class="nx">Origin</span> <span class="p">=</span> <span class="p">[]</span><span class="kt">string</span><span class="p">{</span><span class="s">"Mexico"</span><span class="p">,</span> <span class="s">"California"</span><span class="p">}</span>
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -188,12 +183,12 @@ to nest all <code>plant</code>s under <code><parent><child>...</code
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="kd">type</span> <span class="nx">Nesting</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">XMLName</span> <span class="nx">xml</span><span class="p">.</span><span class="nx">Name</span> <span class="s">`xml:"nesting"`</span>
|
||||
<span class="nx">Plants</span> <span class="p">[]</span><span class="o">*</span><span class="nx">Plant</span> <span class="s">`xml:"parent>child>plant"`</span>
|
||||
<pre class="chroma">
|
||||
<span class="kd">type</span> <span class="nx">Nesting</span> <span class="kd">struct</span> <span class="p">{</span>
|
||||
<span class="nx">XMLName</span> <span class="nx">xml</span><span class="p">.</span><span class="nx">Name</span> <span class="s">`xml:"nesting"`</span>
|
||||
<span class="nx">Plants</span> <span class="p">[]</span><span class="o">*</span><span class="nx">Plant</span> <span class="s">`xml:"parent>child>plant"`</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -203,10 +198,9 @@ to nest all <code>plant</code>s under <code><parent><child>...</code
|
||||
</td>
|
||||
<td class="code leading">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">nesting</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Nesting</span><span class="p">{}</span>
|
||||
<pre class="chroma"> <span class="nx">nesting</span> <span class="o">:=</span> <span class="o">&</span><span class="nx">Nesting</span><span class="p">{}</span>
|
||||
<span class="nx">nesting</span><span class="p">.</span><span class="nx">Plants</span> <span class="p">=</span> <span class="p">[]</span><span class="o">*</span><span class="nx">Plant</span><span class="p">{</span><span class="nx">coffee</span><span class="p">,</span> <span class="nx">tomato</span><span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -216,11 +210,10 @@ to nest all <code>plant</code>s under <code><parent><child>...</code
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre> <span class="nx">out</span><span class="p">,</span> <span class="nx">_</span> <span class="p">=</span> <span class="nx">xml</span><span class="p">.</span><span class="nx">MarshalIndent</span><span class="p">(</span><span class="nx">nesting</span><span class="p">,</span> <span class="s">" "</span><span class="p">,</span> <span class="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="nb">string</span><span class="p">(</span><span class="nx">out</span><span class="p">))</span>
|
||||
<pre class="chroma"> <span class="nx">out</span><span class="p">,</span> <span class="nx">_</span> <span class="p">=</span> <span class="nx">xml</span><span class="p">.</span><span class="nf">MarshalIndent</span><span class="p">(</span><span class="nx">nesting</span><span class="p">,</span> <span class="s">" "</span><span class="p">,</span> <span class="s">" "</span><span class="p">)</span>
|
||||
<span class="nx">fmt</span><span class="p">.</span><span class="nf">Println</span><span class="p">(</span><span class="nb">string</span><span class="p">(</span><span class="nx">out</span><span class="p">))</span>
|
||||
<span class="p">}</span>
|
||||
</pre></div>
|
||||
|
||||
</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@ -234,37 +227,35 @@ to nest all <code>plant</code>s under <code><parent><child>...</code
|
||||
</td>
|
||||
<td class="code">
|
||||
|
||||
<div class="highlight"><pre><span class="gp">$</span> go run xml.go
|
||||
<span class="go"> <plant id="27"></span>
|
||||
<span class="go"> <name>Coffee</name></span>
|
||||
<span class="go"> <origin>Ethiopia</origin></span>
|
||||
<span class="go"> <origin>Brazil</origin></span>
|
||||
<span class="go"> </plant></span>
|
||||
<span class="go"><?xml version="1.0" encoding="UTF-8"?></span>
|
||||
<span class="go"> <plant id="27"></span>
|
||||
<span class="go"> <name>Coffee</name></span>
|
||||
<span class="go"> <origin>Ethiopia</origin></span>
|
||||
<span class="go"> <origin>Brazil</origin></span>
|
||||
<span class="go"> </plant></span>
|
||||
<span class="go">Plant id=27, name=Coffee, origin=[Ethiopia Brazil]</span>
|
||||
<span class="go"> <nesting></span>
|
||||
<span class="go"> <parent></span>
|
||||
<span class="go"> <child></span>
|
||||
<span class="go"> <plant id="27"></span>
|
||||
<span class="go"> <name>Coffee</name></span>
|
||||
<span class="go"> <origin>Ethiopia</origin></span>
|
||||
<span class="go"> <origin>Brazil</origin></span>
|
||||
<span class="go"> </plant></span>
|
||||
<span class="go"> <plant id="81"></span>
|
||||
<span class="go"> <name>Tomato</name></span>
|
||||
<span class="go"> <origin>Mexico</origin></span>
|
||||
<span class="go"> <origin>California</origin></span>
|
||||
<span class="go"> </plant></span>
|
||||
<span class="go"> </child></span>
|
||||
<span class="go"> </parent></span>
|
||||
<span class="go"> </nesting></span>
|
||||
</pre></div>
|
||||
|
||||
<pre class="chroma"><span class="gp">$</span> go run xml.go
|
||||
<span class="go"> <plant id="27">
|
||||
</span><span class="go"> <name>Coffee</name>
|
||||
</span><span class="go"> <origin>Ethiopia</origin>
|
||||
</span><span class="go"> <origin>Brazil</origin>
|
||||
</span><span class="go"> </plant>
|
||||
</span><span class="go"><?xml version="1.0" encoding="UTF-8"?>
|
||||
</span><span class="go"> <plant id="27">
|
||||
</span><span class="go"> <name>Coffee</name>
|
||||
</span><span class="go"> <origin>Ethiopia</origin>
|
||||
</span><span class="go"> <origin>Brazil</origin>
|
||||
</span><span class="go"> </plant>
|
||||
</span><span class="go">Plant id=27, name=Coffee, origin=[Ethiopia Brazil]
|
||||
</span><span class="go"> <nesting>
|
||||
</span><span class="go"> <parent>
|
||||
</span><span class="go"> <child>
|
||||
</span><span class="go"> <plant id="27">
|
||||
</span><span class="go"> <name>Coffee</name>
|
||||
</span><span class="go"> <origin>Ethiopia</origin>
|
||||
</span><span class="go"> <origin>Brazil</origin>
|
||||
</span><span class="go"> </plant>
|
||||
</span><span class="go"> <plant id="81">
|
||||
</span><span class="go"> <name>Tomato</name>
|
||||
</span><span class="go"> <origin>Mexico</origin>
|
||||
</span><span class="go"> <origin>California</origin>
|
||||
</span><span class="go"> </plant>
|
||||
</span><span class="go"> </child>
|
||||
</span><span class="go"> </parent>
|
||||
</span><span class="go"> </nesting></span></pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
@ -183,7 +183,7 @@ body .no { color: #880000 } /* Name.Constant */
|
||||
body .nd { color: #AA22FF } /* Name.Decorator */
|
||||
body .ni { color: #999999; font-weight: bold } /* Name.Entity */
|
||||
body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
||||
body .nf { color: #0000FF } /* Name.Function */
|
||||
body .nf { } /* Name.Function */
|
||||
body .nl { color: #A0A000 } /* Name.Label */
|
||||
body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
||||
body .nt { color: #954121; font-weight: bold } /* Name.Tag */
|
||||
|
19
third_party/pygments/.hgignore
vendored
19
third_party/pygments/.hgignore
vendored
@ -1,19 +0,0 @@
|
||||
syntax: glob
|
||||
*.egg
|
||||
*.pyc
|
||||
*.pyo
|
||||
.*.sw[op]
|
||||
.idea/
|
||||
.ropeproject
|
||||
.project
|
||||
.tags
|
||||
.tox
|
||||
Pygments.egg-info/*
|
||||
TAGS
|
||||
build/*
|
||||
dist/*
|
||||
doc/_build
|
||||
TAGS
|
||||
tests/.coverage
|
||||
tests/cover
|
||||
tests/examplefiles/output
|
31
third_party/pygments/.hgtags
vendored
31
third_party/pygments/.hgtags
vendored
@ -1,31 +0,0 @@
|
||||
634420aa4221cc1eb2b3753bd571166bd9e611d4 0.9
|
||||
942ecbb5c84ca5d57ae82f5697775973f4e12717 0.10
|
||||
63632d0340958d891176db20fe9a32a56abcd5ea 0.11
|
||||
13834ec94d2c5a90a68bc2c2a327abd962c486bc 0.11.1
|
||||
a5748745272afffd725570e068a560d46e28dc1f 1.0
|
||||
5a794a620dc711a219722a7af94d9d2e95cda26d 1.1
|
||||
dd81c35efd95292de4965153c66c8bbfe435f1c4 1.1.1
|
||||
e7691aa4f473a2cdaa2e5b7bfed8aec196719aca 0.5.1
|
||||
6f53364d63ddb8bd9532bb6ea402e3af05275b03 0.5
|
||||
11efe99c11e601071c3a77910b9fca769de66fbf 0.6
|
||||
99df0a7404d168b05626ffced6fd16edcf58c145 0.7
|
||||
d0b08fd569d3d9dafec4c045a7d8876442b3ef64 0.7.1
|
||||
1054522d1dda9c7899516ead3e65e5e363fdf30d 0.8
|
||||
066e56d8f5caa31e15386fff6f938bedd85a8732 0.8.1
|
||||
bae0833cae75e5a641abe3c4b430fa384cd9d258 1.2
|
||||
f6e5acee4f761696676e05a9112c91a5a5670b49 1.2.1
|
||||
580c5ce755486bc92c79c50f80cfc79924e15140 1.2.2
|
||||
c62867700c9e98cc2988c62f298ec54cee9b6927 1.3
|
||||
3a3846c2503db85bb70a243c8bc702629c4bce57 1.3.1
|
||||
8ad6d35dd2ab0530a1e2c088ab7fe0e00426b5f9 1.4
|
||||
eff3aee4abff2b72564ddfde77fcc82adbba52ad 1.5
|
||||
2c262bfc66b05a8aecc1109c3acc5b9447a5213c 1.6rc1
|
||||
7c962dcb484cb73394aec7f41709940340dc8a9c 1.6
|
||||
da509a68ea620bbb8ee3f5d5cf7761375d8f4451 2.0rc1
|
||||
ed3206a773e9cb90a0edeabee8ef6b56b5b9a53c 2.0
|
||||
94e1e056c92d97e3a54759f9216e8deff22efbdd 2.0.1
|
||||
142a870bf0f1822414649ae26f433b112a5c92d5 2.0.2
|
||||
34530db252d35d7ef57a8dbb9fce7bcc46f6ba6b 2.1
|
||||
2935c3a59672e8ae74ffb7ea66ea6567f49782f6 2.1.1
|
||||
8e7ebc56153cf899067333bff4f15ae98758a2e1 2.1.2
|
||||
88527db663dce0729c2cd6e3bc2f3c657ae39254 2.1.3
|
202
third_party/pygments/AUTHORS
vendored
202
third_party/pygments/AUTHORS
vendored
@ -1,202 +0,0 @@
|
||||
Pygments is written and maintained by Georg Brandl <georg@python.org>.
|
||||
|
||||
Major developers are Tim Hatch <tim@timhatch.com> and Armin Ronacher
|
||||
<armin.ronacher@active-4.com>.
|
||||
|
||||
Other contributors, listed alphabetically, are:
|
||||
|
||||
* Sam Aaron -- Ioke lexer
|
||||
* Ali Afshar -- image formatter
|
||||
* Thomas Aglassinger -- Easytrieve, JCL and Rexx lexers
|
||||
* Muthiah Annamalai -- Ezhil lexer
|
||||
* Kumar Appaiah -- Debian control lexer
|
||||
* Andreas Amann -- AppleScript lexer
|
||||
* Timothy Armstrong -- Dart lexer fixes
|
||||
* Jeffrey Arnold -- R/S, Rd, BUGS, Jags, and Stan lexers
|
||||
* Jeremy Ashkenas -- CoffeeScript lexer
|
||||
* José Joaquín Atria -- Praat lexer
|
||||
* Stefan Matthias Aust -- Smalltalk lexer
|
||||
* Lucas Bajolet -- Nit lexer
|
||||
* Ben Bangert -- Mako lexers
|
||||
* Max Battcher -- Darcs patch lexer
|
||||
* Thomas Baruchel -- APL lexer
|
||||
* Tim Baumann -- (Literate) Agda lexer
|
||||
* Paul Baumgart, 280 North, Inc. -- Objective-J lexer
|
||||
* Michael Bayer -- Myghty lexers
|
||||
* Thomas Beale -- Archetype lexers
|
||||
* John Benediktsson -- Factor lexer
|
||||
* Trevor Bergeron -- mIRC formatter
|
||||
* Vincent Bernat -- LessCSS lexer
|
||||
* Christopher Bertels -- Fancy lexer
|
||||
* Sébastien Bigaret -- QVT Operational lexer
|
||||
* Jarrett Billingsley -- MiniD lexer
|
||||
* Adam Blinkinsop -- Haskell, Redcode lexers
|
||||
* Frits van Bommel -- assembler lexers
|
||||
* Pierre Bourdon -- bugfixes
|
||||
* chebee7i -- Python traceback lexer improvements
|
||||
* Hiram Chirino -- Scaml and Jade lexers
|
||||
* Ian Cooper -- VGL lexer
|
||||
* David Corbett -- Inform, Jasmin, and TADS 3 lexers
|
||||
* Leaf Corcoran -- MoonScript lexer
|
||||
* Christopher Creutzig -- MuPAD lexer
|
||||
* Daniël W. Crompton -- Pike lexer
|
||||
* Pete Curry -- bugfixes
|
||||
* Bryan Davis -- EBNF lexer
|
||||
* Bruno Deferrari -- Shen lexer
|
||||
* Giedrius Dubinskas -- HTML formatter improvements
|
||||
* Owen Durni -- Haxe lexer
|
||||
* Alexander Dutton, Oxford University Computing Services -- SPARQL lexer
|
||||
* James Edwards -- Terraform lexer
|
||||
* Nick Efford -- Python 3 lexer
|
||||
* Sven Efftinge -- Xtend lexer
|
||||
* Artem Egorkine -- terminal256 formatter
|
||||
* Matthew Fernandez -- CAmkES lexer
|
||||
* Michael Ficarra -- CPSA lexer
|
||||
* James H. Fisher -- PostScript lexer
|
||||
* William S. Fulton -- SWIG lexer
|
||||
* Carlos Galdino -- Elixir and Elixir Console lexers
|
||||
* Michael Galloy -- IDL lexer
|
||||
* Naveen Garg -- Autohotkey lexer
|
||||
* Laurent Gautier -- R/S lexer
|
||||
* Alex Gaynor -- PyPy log lexer
|
||||
* Richard Gerkin -- Igor Pro lexer
|
||||
* Alain Gilbert -- TypeScript lexer
|
||||
* Alex Gilding -- BlitzBasic lexer
|
||||
* Bertrand Goetzmann -- Groovy lexer
|
||||
* Krzysiek Goj -- Scala lexer
|
||||
* Matt Good -- Genshi, Cheetah lexers
|
||||
* Michał Górny -- vim modeline support
|
||||
* Alex Gosse -- TrafficScript lexer
|
||||
* Patrick Gotthardt -- PHP namespaces support
|
||||
* Olivier Guibe -- Asymptote lexer
|
||||
* Jordi Gutiérrez Hermoso -- Octave lexer
|
||||
* Florian Hahn -- Boogie lexer
|
||||
* Martin Harriman -- SNOBOL lexer
|
||||
* Matthew Harrison -- SVG formatter
|
||||
* Steven Hazel -- Tcl lexer
|
||||
* Dan Michael Heggø -- Turtle lexer
|
||||
* Aslak Hellesøy -- Gherkin lexer
|
||||
* Greg Hendershott -- Racket lexer
|
||||
* Justin Hendrick -- ParaSail lexer
|
||||
* David Hess, Fish Software, Inc. -- Objective-J lexer
|
||||
* Varun Hiremath -- Debian control lexer
|
||||
* Rob Hoelz -- Perl 6 lexer
|
||||
* Doug Hogan -- Mscgen lexer
|
||||
* Ben Hollis -- Mason lexer
|
||||
* Max Horn -- GAP lexer
|
||||
* Alastair Houghton -- Lexer inheritance facility
|
||||
* Tim Howard -- BlitzMax lexer
|
||||
* Dustin Howett -- Logos lexer
|
||||
* Ivan Inozemtsev -- Fantom lexer
|
||||
* Hiroaki Itoh -- Shell console rewrite, Lexers for PowerShell session, MSDOS session, BC
|
||||
* Brian R. Jackson -- Tea lexer
|
||||
* Christian Jann -- ShellSession lexer
|
||||
* Dennis Kaarsemaker -- sources.list lexer
|
||||
* Dmitri Kabak -- Inferno Limbo lexer
|
||||
* Igor Kalnitsky -- vhdl lexer
|
||||
* Alexander Kit -- MaskJS lexer
|
||||
* Pekka Klärck -- Robot Framework lexer
|
||||
* Gerwin Klein -- Isabelle lexer
|
||||
* Eric Knibbe -- Lasso lexer
|
||||
* Stepan Koltsov -- Clay lexer
|
||||
* Adam Koprowski -- Opa lexer
|
||||
* Benjamin Kowarsch -- Modula-2 lexer
|
||||
* Domen Kožar -- Nix lexer
|
||||
* Oleh Krekel -- Emacs Lisp lexer
|
||||
* Alexander Kriegisch -- Kconfig and AspectJ lexers
|
||||
* Marek Kubica -- Scheme lexer
|
||||
* Jochen Kupperschmidt -- Markdown processor
|
||||
* Gerd Kurzbach -- Modelica lexer
|
||||
* Jon Larimer, Google Inc. -- Smali lexer
|
||||
* Olov Lassus -- Dart lexer
|
||||
* Matt Layman -- TAP lexer
|
||||
* Sylvestre Ledru -- Scilab lexer
|
||||
* Mark Lee -- Vala lexer
|
||||
* Valentin Lorentz -- C++ lexer improvements
|
||||
* Ben Mabey -- Gherkin lexer
|
||||
* Angus MacArthur -- QML lexer
|
||||
* Louis Mandel -- X10 lexer
|
||||
* Louis Marchand -- Eiffel lexer
|
||||
* Simone Margaritelli -- Hybris lexer
|
||||
* Kirk McDonald -- D lexer
|
||||
* Gordon McGregor -- SystemVerilog lexer
|
||||
* Stephen McKamey -- Duel/JBST lexer
|
||||
* Brian McKenna -- F# lexer
|
||||
* Charles McLaughlin -- Puppet lexer
|
||||
* Lukas Meuser -- BBCode formatter, Lua lexer
|
||||
* Cat Miller -- Pig lexer
|
||||
* Paul Miller -- LiveScript lexer
|
||||
* Hong Minhee -- HTTP lexer
|
||||
* Michael Mior -- Awk lexer
|
||||
* Bruce Mitchener -- Dylan lexer rewrite
|
||||
* Reuben Morais -- SourcePawn lexer
|
||||
* Jon Morton -- Rust lexer
|
||||
* Paulo Moura -- Logtalk lexer
|
||||
* Mher Movsisyan -- DTD lexer
|
||||
* Dejan Muhamedagic -- Crmsh lexer
|
||||
* Ana Nelson -- Ragel, ANTLR, R console lexers
|
||||
* Nam T. Nguyen -- Monokai style
|
||||
* Jesper Noehr -- HTML formatter "anchorlinenos"
|
||||
* Mike Nolta -- Julia lexer
|
||||
* Jonas Obrist -- BBCode lexer
|
||||
* Edward O'Callaghan -- Cryptol lexer
|
||||
* David Oliva -- Rebol lexer
|
||||
* Pat Pannuto -- nesC lexer
|
||||
* Jon Parise -- Protocol buffers and Thrift lexers
|
||||
* Benjamin Peterson -- Test suite refactoring
|
||||
* Ronny Pfannschmidt -- BBCode lexer
|
||||
* Dominik Picheta -- Nimrod lexer
|
||||
* Andrew Pinkham -- RTF Formatter Refactoring
|
||||
* Clément Prévost -- UrbiScript lexer
|
||||
* Elias Rabel -- Fortran fixed form lexer
|
||||
* raichoo -- Idris lexer
|
||||
* Kashif Rasul -- CUDA lexer
|
||||
* Justin Reidy -- MXML lexer
|
||||
* Norman Richards -- JSON lexer
|
||||
* Corey Richardson -- Rust lexer updates
|
||||
* Lubomir Rintel -- GoodData MAQL and CL lexers
|
||||
* Andre Roberge -- Tango style
|
||||
* Konrad Rudolph -- LaTeX formatter enhancements
|
||||
* Mario Ruggier -- Evoque lexers
|
||||
* Miikka Salminen -- Lovelace style, Hexdump lexer, lexer enhancements
|
||||
* Stou Sandalski -- NumPy, FORTRAN, tcsh and XSLT lexers
|
||||
* Matteo Sasso -- Common Lisp lexer
|
||||
* Joe Schafer -- Ada lexer
|
||||
* Ken Schutte -- Matlab lexers
|
||||
* Tassilo Schweyer -- Io, MOOCode lexers
|
||||
* Ted Shaw -- AutoIt lexer
|
||||
* Joerg Sieker -- ABAP lexer
|
||||
* Robert Simmons -- Standard ML lexer
|
||||
* Kirill Simonov -- YAML lexer
|
||||
* Alexander Smishlajev -- Visual FoxPro lexer
|
||||
* Steve Spigarelli -- XQuery lexer
|
||||
* Jerome St-Louis -- eC lexer
|
||||
* James Strachan -- Kotlin lexer
|
||||
* Tom Stuart -- Treetop lexer
|
||||
* Colin Sullivan -- SuperCollider lexer
|
||||
* Edoardo Tenani -- Arduino lexer
|
||||
* Tiberius Teng -- default style overhaul
|
||||
* Jeremy Thurgood -- Erlang, Squid config lexers
|
||||
* Brian Tiffin -- OpenCOBOL lexer
|
||||
* Bob Tolbert -- Hy lexer
|
||||
* Erick Tryzelaar -- Felix lexer
|
||||
* Alexander Udalov -- Kotlin lexer improvements
|
||||
* Thomas Van Doren -- Chapel lexer
|
||||
* Daniele Varrazzo -- PostgreSQL lexers
|
||||
* Abe Voelker -- OpenEdge ABL lexer
|
||||
* Pepijn de Vos -- HTML formatter CTags support
|
||||
* Matthias Vallentin -- Bro lexer
|
||||
* Linh Vu Hong -- RSL lexer
|
||||
* Nathan Weizenbaum -- Haml and Sass lexers
|
||||
* Nathan Whetsell -- Csound lexers
|
||||
* Dietmar Winkler -- Modelica lexer
|
||||
* Nils Winter -- Smalltalk lexer
|
||||
* Davy Wybiral -- Clojure lexer
|
||||
* Whitney Young -- ObjectiveC lexer
|
||||
* Diego Zamboni -- CFengine3 lexer
|
||||
* Enrique Zamudio -- Ceylon lexer
|
||||
* Alex Zimin -- Nemerle lexer
|
||||
* Rob Zimmerman -- Kal lexer
|
||||
* Vincent Zurczak -- Roboconf lexer
|
||||
|
||||
Many thanks for all contributions!
|
1135
third_party/pygments/CHANGES
vendored
1135
third_party/pygments/CHANGES
vendored
File diff suppressed because it is too large
Load Diff
25
third_party/pygments/LICENSE
vendored
25
third_party/pygments/LICENSE
vendored
@ -1,25 +0,0 @@
|
||||
Copyright (c) 2006-2015 by the respective authors (see AUTHORS file).
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
6
third_party/pygments/MANIFEST.in
vendored
6
third_party/pygments/MANIFEST.in
vendored
@ -1,6 +0,0 @@
|
||||
include pygmentize
|
||||
include external/*
|
||||
include Makefile CHANGES LICENSE AUTHORS TODO ez_setup.py
|
||||
recursive-include tests *
|
||||
recursive-include doc *
|
||||
recursive-include scripts *
|
62
third_party/pygments/Makefile
vendored
62
third_party/pygments/Makefile
vendored
@ -1,62 +0,0 @@
|
||||
#
|
||||
# Makefile for Pygments
|
||||
# ~~~~~~~~~~~~~~~~~~~~~
|
||||
#
|
||||
# Combines scripts for common tasks.
|
||||
#
|
||||
# :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
|
||||
# :license: BSD, see LICENSE for details.
|
||||
#
|
||||
|
||||
PYTHON ?= python
|
||||
|
||||
export PYTHONPATH = $(shell echo "$$PYTHONPATH"):$(shell python -c 'import os; print ":".join(os.path.abspath(line.strip()) for line in file("PYTHONPATH"))' 2>/dev/null)
|
||||
|
||||
.PHONY: all check clean clean-pyc codetags docs mapfiles \
|
||||
pylint reindent test test-coverage
|
||||
|
||||
all: clean-pyc check test
|
||||
|
||||
check:
|
||||
@$(PYTHON) scripts/detect_missing_analyse_text.py || true
|
||||
@pyflakes pygments | grep -v 'but unused' || true
|
||||
@$(PYTHON) scripts/check_sources.py -i build -i dist -i pygments/lexers/_mapping.py \
|
||||
-i docs/build -i pygments/formatters/_mapping.py -i pygments/unistring.py
|
||||
|
||||
clean: clean-pyc
|
||||
-rm -rf build
|
||||
-rm -f codetags.html
|
||||
|
||||
clean-pyc:
|
||||
find . -name '*.pyc' -exec rm -f {} +
|
||||
find . -name '*.pyo' -exec rm -f {} +
|
||||
find . -name '*~' -exec rm -f {} +
|
||||
|
||||
codetags:
|
||||
@$(PYTHON) scripts/find_codetags.py -i tests/examplefiles -i scripts/pylintrc \
|
||||
-i scripts/find_codetags.py -o codetags.html .
|
||||
|
||||
docs:
|
||||
make -C doc html
|
||||
|
||||
mapfiles:
|
||||
(cd pygments/formatters; $(PYTHON) _mapping.py)
|
||||
(cd pygments/lexers; $(PYTHON) _mapping.py)
|
||||
|
||||
pylint:
|
||||
@pylint --rcfile scripts/pylintrc pygments
|
||||
|
||||
reindent:
|
||||
@$(PYTHON) scripts/reindent.py -r -B .
|
||||
|
||||
test:
|
||||
@$(PYTHON) tests/run.py -d $(TEST)
|
||||
|
||||
test-coverage:
|
||||
@$(PYTHON) tests/run.py -d --with-coverage --cover-package=pygments --cover-erase $(TEST)
|
||||
|
||||
tox-test:
|
||||
@tox -- $(TEST)
|
||||
|
||||
tox-test-coverage:
|
||||
@tox -- --with-coverage --cover-package=pygments --cover-erase $(TEST)
|
39
third_party/pygments/PKG-INFO
vendored
39
third_party/pygments/PKG-INFO
vendored
@ -1,39 +0,0 @@
|
||||
Metadata-Version: 1.1
|
||||
Name: Pygments
|
||||
Version: 2.1.3
|
||||
Summary: Pygments is a syntax highlighting package written in Python.
|
||||
Home-page: http://pygments.org/
|
||||
Author: Georg Brandl
|
||||
Author-email: georg@python.org
|
||||
License: BSD License
|
||||
Description: Pygments
|
||||
~~~~~~~~
|
||||
|
||||
Pygments is a syntax highlighting package written in Python.
|
||||
|
||||
It is a generic syntax highlighter suitable for use in code hosting, forums,
|
||||
wikis or other applications that need to prettify source code. Highlights
|
||||
are:
|
||||
|
||||
* a wide range of over 300 languages and other text formats is supported
|
||||
* special attention is paid to details, increasing quality by a fair amount
|
||||
* support for new languages and formats are added easily
|
||||
* a number of output formats, presently HTML, LaTeX, RTF, SVG, all image formats that PIL supports and ANSI sequences
|
||||
* it is usable as a command-line tool and as a library
|
||||
|
||||
:copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
|
||||
Keywords: syntax highlighting
|
||||
Platform: any
|
||||
Classifier: License :: OSI Approved :: BSD License
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: Intended Audience :: End Users/Desktop
|
||||
Classifier: Intended Audience :: System Administrators
|
||||
Classifier: Development Status :: 6 - Mature
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 2
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Operating System :: OS Independent
|
||||
Classifier: Topic :: Text Processing :: Filters
|
||||
Classifier: Topic :: Utilities
|
39
third_party/pygments/Pygments.egg-info/PKG-INFO
vendored
39
third_party/pygments/Pygments.egg-info/PKG-INFO
vendored
@ -1,39 +0,0 @@
|
||||
Metadata-Version: 1.1
|
||||
Name: Pygments
|
||||
Version: 2.1.3
|
||||
Summary: Pygments is a syntax highlighting package written in Python.
|
||||
Home-page: http://pygments.org/
|
||||
Author: Georg Brandl
|
||||
Author-email: georg@python.org
|
||||
License: BSD License
|
||||
Description: Pygments
|
||||
~~~~~~~~
|
||||
|
||||
Pygments is a syntax highlighting package written in Python.
|
||||
|
||||
It is a generic syntax highlighter suitable for use in code hosting, forums,
|
||||
wikis or other applications that need to prettify source code. Highlights
|
||||
are:
|
||||
|
||||
* a wide range of over 300 languages and other text formats is supported
|
||||
* special attention is paid to details, increasing quality by a fair amount
|
||||
* support for new languages and formats are added easily
|
||||
* a number of output formats, presently HTML, LaTeX, RTF, SVG, all image formats that PIL supports and ANSI sequences
|
||||
* it is usable as a command-line tool and as a library
|
||||
|
||||
:copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
|
||||
:license: BSD, see LICENSE for details.
|
||||
|
||||
Keywords: syntax highlighting
|
||||
Platform: any
|
||||
Classifier: License :: OSI Approved :: BSD License
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: Intended Audience :: End Users/Desktop
|
||||
Classifier: Intended Audience :: System Administrators
|
||||
Classifier: Development Status :: 6 - Mature
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 2
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Operating System :: OS Independent
|
||||
Classifier: Topic :: Text Processing :: Filters
|
||||
Classifier: Topic :: Utilities
|
788
third_party/pygments/Pygments.egg-info/SOURCES.txt
vendored
788
third_party/pygments/Pygments.egg-info/SOURCES.txt
vendored
@ -1,788 +0,0 @@
|
||||
.hgignore
|
||||
.hgtags
|
||||
AUTHORS
|
||||
CHANGES
|
||||
LICENSE
|
||||
MANIFEST.in
|
||||
Makefile
|
||||
README.rst
|
||||
TODO
|
||||
ez_setup.py
|
||||
pygmentize
|
||||
requirements.txt
|
||||
setup.cfg
|
||||
setup.py
|
||||
tox.ini
|
||||
Pygments.egg-info/PKG-INFO
|
||||
Pygments.egg-info/SOURCES.txt
|
||||
Pygments.egg-info/dependency_links.txt
|
||||
Pygments.egg-info/entry_points.txt
|
||||
Pygments.egg-info/not-zip-safe
|
||||
Pygments.egg-info/top_level.txt
|
||||
doc/Makefile
|
||||
doc/conf.py
|
||||
doc/download.rst
|
||||
doc/faq.rst
|
||||
doc/index.rst
|
||||
doc/languages.rst
|
||||
doc/make.bat
|
||||
doc/pygmentize.1
|
||||
doc/_static/favicon.ico
|
||||
doc/_static/logo_new.png
|
||||
doc/_static/logo_only.png
|
||||
doc/_templates/docssidebar.html
|
||||
doc/_templates/indexsidebar.html
|
||||
doc/_themes/pygments14/layout.html
|
||||
doc/_themes/pygments14/theme.conf
|
||||
doc/_themes/pygments14/static/bodybg.png
|
||||
doc/_themes/pygments14/static/docbg.png
|
||||
doc/_themes/pygments14/static/listitem.png
|
||||
doc/_themes/pygments14/static/logo.png
|
||||
doc/_themes/pygments14/static/pocoo.png
|
||||
doc/_themes/pygments14/static/pygments14.css_t
|
||||
doc/docs/api.rst
|
||||
doc/docs/authors.rst
|
||||
doc/docs/changelog.rst
|
||||
doc/docs/cmdline.rst
|
||||
doc/docs/filterdevelopment.rst
|
||||
doc/docs/filters.rst
|
||||
doc/docs/formatterdevelopment.rst
|
||||
doc/docs/formatters.rst
|
||||
doc/docs/index.rst
|
||||
doc/docs/integrate.rst
|
||||
doc/docs/java.rst
|
||||
doc/docs/lexerdevelopment.rst
|
||||
doc/docs/lexers.rst
|
||||
doc/docs/moinmoin.rst
|
||||
doc/docs/plugins.rst
|
||||
doc/docs/quickstart.rst
|
||||
doc/docs/rstdirective.rst
|
||||
doc/docs/styles.rst
|
||||
doc/docs/tokens.rst
|
||||
doc/docs/unicode.rst
|
||||
external/autopygmentize
|
||||
external/lasso-builtins-generator-9.lasso
|
||||
external/markdown-processor.py
|
||||
external/moin-parser.py
|
||||
external/pygments.bashcomp
|
||||
external/rst-directive.py
|
||||
pygments/__init__.py
|
||||
pygments/cmdline.py
|
||||
pygments/console.py
|
||||
pygments/filter.py
|
||||
pygments/formatter.py
|
||||
pygments/lexer.py
|
||||
pygments/modeline.py
|
||||
pygments/plugin.py
|
||||
pygments/regexopt.py
|
||||
pygments/scanner.py
|
||||
pygments/sphinxext.py
|
||||
pygments/style.py
|
||||
pygments/token.py
|
||||
pygments/unistring.py
|
||||
pygments/util.py
|
||||
pygments/filters/__init__.py
|
||||
pygments/formatters/__init__.py
|
||||
pygments/formatters/_mapping.py
|
||||
pygments/formatters/bbcode.py
|
||||
pygments/formatters/html.py
|
||||
pygments/formatters/img.py
|
||||
pygments/formatters/irc.py
|
||||
pygments/formatters/latex.py
|
||||
pygments/formatters/other.py
|
||||
pygments/formatters/rtf.py
|
||||
pygments/formatters/svg.py
|
||||
pygments/formatters/terminal.py
|
||||
pygments/formatters/terminal256.py
|
||||
pygments/lexers/__init__.py
|
||||
pygments/lexers/_asy_builtins.py
|
||||
pygments/lexers/_cl_builtins.py
|
||||
pygments/lexers/_cocoa_builtins.py
|
||||
pygments/lexers/_csound_builtins.py
|
||||
pygments/lexers/_lasso_builtins.py
|
||||
pygments/lexers/_lua_builtins.py
|
||||
pygments/lexers/_mapping.py
|
||||
pygments/lexers/_mql_builtins.py
|
||||
pygments/lexers/_openedge_builtins.py
|
||||
pygments/lexers/_php_builtins.py
|
||||
pygments/lexers/_postgres_builtins.py
|
||||
pygments/lexers/_scilab_builtins.py
|
||||
pygments/lexers/_sourcemod_builtins.py
|
||||
pygments/lexers/_stan_builtins.py
|
||||
pygments/lexers/_vim_builtins.py
|
||||
pygments/lexers/actionscript.py
|
||||
pygments/lexers/agile.py
|
||||
pygments/lexers/algebra.py
|
||||
pygments/lexers/ambient.py
|
||||
pygments/lexers/apl.py
|
||||
pygments/lexers/archetype.py
|
||||
pygments/lexers/asm.py
|
||||
pygments/lexers/automation.py
|
||||
pygments/lexers/basic.py
|
||||
pygments/lexers/business.py
|
||||
pygments/lexers/c_cpp.py
|
||||
pygments/lexers/c_like.py
|
||||
pygments/lexers/chapel.py
|
||||
pygments/lexers/compiled.py
|
||||
pygments/lexers/configs.py
|
||||
pygments/lexers/console.py
|
||||
pygments/lexers/csound.py
|
||||
pygments/lexers/css.py
|
||||
pygments/lexers/d.py
|
||||
pygments/lexers/dalvik.py
|
||||
pygments/lexers/data.py
|
||||
pygments/lexers/diff.py
|
||||
pygments/lexers/dotnet.py
|
||||
pygments/lexers/dsls.py
|
||||
pygments/lexers/dylan.py
|
||||
pygments/lexers/ecl.py
|
||||
pygments/lexers/eiffel.py
|
||||
pygments/lexers/elm.py
|
||||
pygments/lexers/erlang.py
|
||||
pygments/lexers/esoteric.py
|
||||
pygments/lexers/ezhil.py
|
||||
pygments/lexers/factor.py
|
||||
pygments/lexers/fantom.py
|
||||
pygments/lexers/felix.py
|
||||
pygments/lexers/fortran.py
|
||||
pygments/lexers/foxpro.py
|
||||
pygments/lexers/functional.py
|
||||
pygments/lexers/go.py
|
||||
pygments/lexers/grammar_notation.py
|
||||
pygments/lexers/graph.py
|
||||
pygments/lexers/graphics.py
|
||||
pygments/lexers/haskell.py
|
||||
pygments/lexers/haxe.py
|
||||
pygments/lexers/hdl.py
|
||||
pygments/lexers/hexdump.py
|
||||
pygments/lexers/html.py
|
||||
pygments/lexers/idl.py
|
||||
pygments/lexers/igor.py
|
||||
pygments/lexers/inferno.py
|
||||
pygments/lexers/installers.py
|
||||
pygments/lexers/int_fiction.py
|
||||
pygments/lexers/iolang.py
|
||||
pygments/lexers/j.py
|
||||
pygments/lexers/javascript.py
|
||||
pygments/lexers/julia.py
|
||||
pygments/lexers/jvm.py
|
||||
pygments/lexers/lisp.py
|
||||
pygments/lexers/make.py
|
||||
pygments/lexers/markup.py
|
||||
pygments/lexers/math.py
|
||||
pygments/lexers/matlab.py
|
||||
pygments/lexers/ml.py
|
||||
pygments/lexers/modeling.py
|
||||
pygments/lexers/modula2.py
|
||||
pygments/lexers/nimrod.py
|
||||
pygments/lexers/nit.py
|
||||
pygments/lexers/nix.py
|
||||
pygments/lexers/oberon.py
|
||||
pygments/lexers/objective.py
|
||||
pygments/lexers/ooc.py
|
||||
pygments/lexers/other.py
|
||||
pygments/lexers/parasail.py
|
||||
pygments/lexers/parsers.py
|
||||
pygments/lexers/pascal.py
|
||||
pygments/lexers/pawn.py
|
||||
pygments/lexers/perl.py
|
||||
pygments/lexers/php.py
|
||||
pygments/lexers/praat.py
|
||||
pygments/lexers/prolog.py
|
||||
pygments/lexers/python.py
|
||||
pygments/lexers/qvt.py
|
||||
pygments/lexers/r.py
|
||||
pygments/lexers/rdf.py
|
||||
pygments/lexers/rebol.py
|
||||
pygments/lexers/resource.py
|
||||
pygments/lexers/roboconf.py
|
||||
pygments/lexers/robotframework.py
|
||||
pygments/lexers/ruby.py
|
||||
pygments/lexers/rust.py
|
||||
pygments/lexers/scripting.py
|
||||
pygments/lexers/shell.py
|
||||
pygments/lexers/smalltalk.py
|
||||
pygments/lexers/snobol.py
|
||||
pygments/lexers/special.py
|
||||
pygments/lexers/sql.py
|
||||
pygments/lexers/supercollider.py
|
||||
pygments/lexers/tcl.py
|
||||
pygments/lexers/templates.py
|
||||
pygments/lexers/testing.py
|
||||
pygments/lexers/text.py
|
||||
pygments/lexers/textedit.py
|
||||
pygments/lexers/textfmts.py
|
||||
pygments/lexers/theorem.py
|
||||
pygments/lexers/trafficscript.py
|
||||
pygments/lexers/urbi.py
|
||||
pygments/lexers/web.py
|
||||
pygments/lexers/webmisc.py
|
||||
pygments/lexers/x10.py
|
||||
pygments/styles/__init__.py
|
||||
pygments/styles/algol.py
|
||||
pygments/styles/algol_nu.py
|
||||
pygments/styles/arduino.py
|
||||
pygments/styles/autumn.py
|
||||
pygments/styles/borland.py
|
||||
pygments/styles/bw.py
|
||||
pygments/styles/colorful.py
|
||||
pygments/styles/default.py
|
||||
pygments/styles/emacs.py
|
||||
pygments/styles/friendly.py
|
||||
pygments/styles/fruity.py
|
||||
pygments/styles/igor.py
|
||||
pygments/styles/lovelace.py
|
||||
pygments/styles/manni.py
|
||||
pygments/styles/monokai.py
|
||||
pygments/styles/murphy.py
|
||||
pygments/styles/native.py
|
||||
pygments/styles/paraiso_dark.py
|
||||
pygments/styles/paraiso_light.py
|
||||
pygments/styles/pastie.py
|
||||
pygments/styles/perldoc.py
|
||||
pygments/styles/rrt.py
|
||||
pygments/styles/tango.py
|
||||
pygments/styles/trac.py
|
||||
pygments/styles/vim.py
|
||||
pygments/styles/vs.py
|
||||
pygments/styles/xcode.py
|
||||
scripts/check_sources.py
|
||||
scripts/debug_lexer.py
|
||||
scripts/detect_missing_analyse_text.py
|
||||
scripts/epydoc.css
|
||||
scripts/find_error.py
|
||||
scripts/get_vimkw.py
|
||||
scripts/pylintrc
|
||||
scripts/vim2pygments.py
|
||||
tests/.coverage
|
||||
tests/run.py
|
||||
tests/string_asserts.py
|
||||
tests/string_asserts.pyc
|
||||
tests/support.py
|
||||
tests/support.pyc
|
||||
tests/test_basic_api.py
|
||||
tests/test_basic_api.pyc
|
||||
tests/test_cfm.py
|
||||
tests/test_cfm.pyc
|
||||
tests/test_clexer.py
|
||||
tests/test_clexer.pyc
|
||||
tests/test_cmdline.py
|
||||
tests/test_cmdline.pyc
|
||||
tests/test_examplefiles.py
|
||||
tests/test_examplefiles.pyc
|
||||
tests/test_ezhil.py
|
||||
tests/test_ezhil.pyc
|
||||
tests/test_html_formatter.py
|
||||
tests/test_html_formatter.pyc
|
||||
tests/test_inherit.py
|
||||
tests/test_inherit.pyc
|
||||
tests/test_irc_formatter.py
|
||||
tests/test_irc_formatter.pyc
|
||||
tests/test_java.py
|
||||
tests/test_java.pyc
|
||||
tests/test_latex_formatter.py
|
||||
tests/test_latex_formatter.pyc
|
||||
tests/test_lexers_other.py
|
||||
tests/test_lexers_other.pyc
|
||||
tests/test_objectiveclexer.py
|
||||
tests/test_objectiveclexer.pyc
|
||||
tests/test_perllexer.py
|
||||
tests/test_perllexer.pyc
|
||||
tests/test_qbasiclexer.py
|
||||
tests/test_qbasiclexer.pyc
|
||||
tests/test_regexlexer.py
|
||||
tests/test_regexlexer.pyc
|
||||
tests/test_regexopt.py
|
||||
tests/test_regexopt.pyc
|
||||
tests/test_rtf_formatter.py
|
||||
tests/test_rtf_formatter.pyc
|
||||
tests/test_ruby.py
|
||||
tests/test_ruby.pyc
|
||||
tests/test_shell.py
|
||||
tests/test_shell.pyc
|
||||
tests/test_smarty.py
|
||||
tests/test_smarty.pyc
|
||||
tests/test_string_asserts.py
|
||||
tests/test_string_asserts.pyc
|
||||
tests/test_terminal_formatter.py
|
||||
tests/test_terminal_formatter.pyc
|
||||
tests/test_textfmts.py
|
||||
tests/test_textfmts.pyc
|
||||
tests/test_token.py
|
||||
tests/test_token.pyc
|
||||
tests/test_unistring.py
|
||||
tests/test_unistring.pyc
|
||||
tests/test_using_api.py
|
||||
tests/test_using_api.pyc
|
||||
tests/test_util.py
|
||||
tests/test_util.pyc
|
||||
tests/__pycache__/string_asserts.cpython-33.pyc
|
||||
tests/__pycache__/string_asserts.cpython-35.pyc
|
||||
tests/__pycache__/support.cpython-33.pyc
|
||||
tests/__pycache__/support.cpython-35.pyc
|
||||
tests/__pycache__/test_basic_api.cpython-33.pyc
|
||||
tests/__pycache__/test_basic_api.cpython-35.pyc
|
||||
tests/__pycache__/test_cfm.cpython-33.pyc
|
||||
tests/__pycache__/test_cfm.cpython-35.pyc
|
||||
tests/__pycache__/test_clexer.cpython-33.pyc
|
||||
tests/__pycache__/test_clexer.cpython-35.pyc
|
||||
tests/__pycache__/test_cmdline.cpython-33.pyc
|
||||
tests/__pycache__/test_cmdline.cpython-35.pyc
|
||||
tests/__pycache__/test_examplefiles.cpython-33.pyc
|
||||
tests/__pycache__/test_examplefiles.cpython-35.pyc
|
||||
tests/__pycache__/test_ezhil.cpython-35.pyc
|
||||
tests/__pycache__/test_html_formatter.cpython-33.pyc
|
||||
tests/__pycache__/test_html_formatter.cpython-35.pyc
|
||||
tests/__pycache__/test_inherit.cpython-33.pyc
|
||||
tests/__pycache__/test_inherit.cpython-35.pyc
|
||||
tests/__pycache__/test_irc_formatter.cpython-35.pyc
|
||||
tests/__pycache__/test_java.cpython-33.pyc
|
||||
tests/__pycache__/test_java.cpython-35.pyc
|
||||
tests/__pycache__/test_latex_formatter.cpython-33.pyc
|
||||
tests/__pycache__/test_latex_formatter.cpython-35.pyc
|
||||
tests/__pycache__/test_lexers_other.cpython-33.pyc
|
||||
tests/__pycache__/test_lexers_other.cpython-35.pyc
|
||||
tests/__pycache__/test_objectiveclexer.cpython-33.pyc
|
||||
tests/__pycache__/test_objectiveclexer.cpython-35.pyc
|
||||
tests/__pycache__/test_perllexer.cpython-33.pyc
|
||||
tests/__pycache__/test_perllexer.cpython-35.pyc
|
||||
tests/__pycache__/test_qbasiclexer.cpython-33.pyc
|
||||
tests/__pycache__/test_qbasiclexer.cpython-35.pyc
|
||||
tests/__pycache__/test_regexlexer.cpython-33.pyc
|
||||
tests/__pycache__/test_regexlexer.cpython-35.pyc
|
||||
tests/__pycache__/test_regexopt.cpython-33.pyc
|
||||
tests/__pycache__/test_regexopt.cpython-35.pyc
|
||||
tests/__pycache__/test_rtf_formatter.cpython-33.pyc
|
||||
tests/__pycache__/test_rtf_formatter.cpython-35.pyc
|
||||
tests/__pycache__/test_ruby.cpython-33.pyc
|
||||
tests/__pycache__/test_ruby.cpython-35.pyc
|
||||
tests/__pycache__/test_shell.cpython-33.pyc
|
||||
tests/__pycache__/test_shell.cpython-35.pyc
|
||||
tests/__pycache__/test_smarty.cpython-33.pyc
|
||||
tests/__pycache__/test_smarty.cpython-35.pyc
|
||||
tests/__pycache__/test_string_asserts.cpython-33.pyc
|
||||
tests/__pycache__/test_string_asserts.cpython-35.pyc
|
||||
tests/__pycache__/test_terminal_formatter.cpython-35.pyc
|
||||
tests/__pycache__/test_textfmts.cpython-33.pyc
|
||||
tests/__pycache__/test_textfmts.cpython-35.pyc
|
||||
tests/__pycache__/test_token.cpython-33.pyc
|
||||
tests/__pycache__/test_token.cpython-35.pyc
|
||||
tests/__pycache__/test_unistring.cpython-33.pyc
|
||||
tests/__pycache__/test_unistring.cpython-35.pyc
|
||||
tests/__pycache__/test_using_api.cpython-33.pyc
|
||||
tests/__pycache__/test_using_api.cpython-35.pyc
|
||||
tests/__pycache__/test_util.cpython-33.pyc
|
||||
tests/__pycache__/test_util.cpython-35.pyc
|
||||
tests/cover/coverage_html.js
|
||||
tests/cover/jquery.hotkeys.js
|
||||
tests/cover/jquery.isonscreen.js
|
||||
tests/cover/jquery.min.js
|
||||
tests/cover/jquery.tablesorter.min.js
|
||||
tests/cover/keybd_closed.png
|
||||
tests/cover/keybd_open.png
|
||||
tests/cover/status.dat
|
||||
tests/cover/style.css
|
||||
tests/dtds/HTML4-f.dtd
|
||||
tests/dtds/HTML4-s.dtd
|
||||
tests/dtds/HTML4.dcl
|
||||
tests/dtds/HTML4.dtd
|
||||
tests/dtds/HTML4.soc
|
||||
tests/dtds/HTMLlat1.ent
|
||||
tests/dtds/HTMLspec.ent
|
||||
tests/dtds/HTMLsym.ent
|
||||
tests/examplefiles/99_bottles_of_beer.chpl
|
||||
tests/examplefiles/AcidStateAdvanced.hs
|
||||
tests/examplefiles/AlternatingGroup.mu
|
||||
tests/examplefiles/BOM.js
|
||||
tests/examplefiles/Blink.ino
|
||||
tests/examplefiles/CPDictionary.j
|
||||
tests/examplefiles/Config.in.cache
|
||||
tests/examplefiles/Constants.mo
|
||||
tests/examplefiles/DancingSudoku.lhs
|
||||
tests/examplefiles/Deflate.fs
|
||||
tests/examplefiles/Error.pmod
|
||||
tests/examplefiles/Errors.scala
|
||||
tests/examplefiles/FakeFile.pike
|
||||
tests/examplefiles/Get-CommandDefinitionHtml.ps1
|
||||
tests/examplefiles/IPDispatchC.nc
|
||||
tests/examplefiles/IPDispatchP.nc
|
||||
tests/examplefiles/Intro.java
|
||||
tests/examplefiles/Makefile
|
||||
tests/examplefiles/Object.st
|
||||
tests/examplefiles/OrderedMap.hx
|
||||
tests/examplefiles/RoleQ.pm6
|
||||
tests/examplefiles/SmallCheck.hs
|
||||
tests/examplefiles/Sorting.mod
|
||||
tests/examplefiles/Sudoku.lhs
|
||||
tests/examplefiles/abnf_example1.abnf
|
||||
tests/examplefiles/abnf_example2.abnf
|
||||
tests/examplefiles/addressbook.proto
|
||||
tests/examplefiles/ahcon.f
|
||||
tests/examplefiles/all.nit
|
||||
tests/examplefiles/antlr_ANTLRv3.g
|
||||
tests/examplefiles/antlr_throws
|
||||
tests/examplefiles/apache2.conf
|
||||
tests/examplefiles/as3_test.as
|
||||
tests/examplefiles/as3_test2.as
|
||||
tests/examplefiles/as3_test3.as
|
||||
tests/examplefiles/aspx-cs_example
|
||||
tests/examplefiles/autoit_submit.au3
|
||||
tests/examplefiles/automake.mk
|
||||
tests/examplefiles/badcase.java
|
||||
tests/examplefiles/bigtest.nsi
|
||||
tests/examplefiles/bnf_example1.bnf
|
||||
tests/examplefiles/boot-9.scm
|
||||
tests/examplefiles/ca65_example
|
||||
tests/examplefiles/cbmbas_example
|
||||
tests/examplefiles/cells.ps
|
||||
tests/examplefiles/ceval.c
|
||||
tests/examplefiles/char.scala
|
||||
tests/examplefiles/cheetah_example.html
|
||||
tests/examplefiles/classes.dylan
|
||||
tests/examplefiles/clojure-weird-keywords.clj
|
||||
tests/examplefiles/condensed_ruby.rb
|
||||
tests/examplefiles/coq_RelationClasses
|
||||
tests/examplefiles/core.cljs
|
||||
tests/examplefiles/database.pytb
|
||||
tests/examplefiles/de.MoinMoin.po
|
||||
tests/examplefiles/demo.ahk
|
||||
tests/examplefiles/demo.cfm
|
||||
tests/examplefiles/demo.css.in
|
||||
tests/examplefiles/demo.hbs
|
||||
tests/examplefiles/demo.js.in
|
||||
tests/examplefiles/demo.thrift
|
||||
tests/examplefiles/demo.xul.in
|
||||
tests/examplefiles/django_sample.html+django
|
||||
tests/examplefiles/docker.docker
|
||||
tests/examplefiles/dwarf.cw
|
||||
tests/examplefiles/eg_example1.eg
|
||||
tests/examplefiles/ember.handlebars
|
||||
tests/examplefiles/erl_session
|
||||
tests/examplefiles/es6.js
|
||||
tests/examplefiles/escape_semicolon.clj
|
||||
tests/examplefiles/eval.rs
|
||||
tests/examplefiles/evil_regex.js
|
||||
tests/examplefiles/example.Rd
|
||||
tests/examplefiles/example.als
|
||||
tests/examplefiles/example.bat
|
||||
tests/examplefiles/example.bc
|
||||
tests/examplefiles/example.bug
|
||||
tests/examplefiles/example.c
|
||||
tests/examplefiles/example.ceylon
|
||||
tests/examplefiles/example.chai
|
||||
tests/examplefiles/example.clay
|
||||
tests/examplefiles/example.cls
|
||||
tests/examplefiles/example.cob
|
||||
tests/examplefiles/example.coffee
|
||||
tests/examplefiles/example.cpp
|
||||
tests/examplefiles/example.e
|
||||
tests/examplefiles/example.elm
|
||||
tests/examplefiles/example.ezt
|
||||
tests/examplefiles/example.f90
|
||||
tests/examplefiles/example.feature
|
||||
tests/examplefiles/example.fish
|
||||
tests/examplefiles/example.gd
|
||||
tests/examplefiles/example.gi
|
||||
tests/examplefiles/example.golo
|
||||
tests/examplefiles/example.groovy
|
||||
tests/examplefiles/example.gs
|
||||
tests/examplefiles/example.gst
|
||||
tests/examplefiles/example.hs
|
||||
tests/examplefiles/example.hx
|
||||
tests/examplefiles/example.i6t
|
||||
tests/examplefiles/example.i7x
|
||||
tests/examplefiles/example.j
|
||||
tests/examplefiles/example.jag
|
||||
tests/examplefiles/example.java
|
||||
tests/examplefiles/example.jcl
|
||||
tests/examplefiles/example.jsonld
|
||||
tests/examplefiles/example.kal
|
||||
tests/examplefiles/example.kt
|
||||
tests/examplefiles/example.lagda
|
||||
tests/examplefiles/example.liquid
|
||||
tests/examplefiles/example.lua
|
||||
tests/examplefiles/example.ma
|
||||
tests/examplefiles/example.mac
|
||||
tests/examplefiles/example.monkey
|
||||
tests/examplefiles/example.moo
|
||||
tests/examplefiles/example.moon
|
||||
tests/examplefiles/example.mq4
|
||||
tests/examplefiles/example.mqh
|
||||
tests/examplefiles/example.msc
|
||||
tests/examplefiles/example.ni
|
||||
tests/examplefiles/example.nim
|
||||
tests/examplefiles/example.nix
|
||||
tests/examplefiles/example.ns2
|
||||
tests/examplefiles/example.pas
|
||||
tests/examplefiles/example.pcmk
|
||||
tests/examplefiles/example.pp
|
||||
tests/examplefiles/example.praat
|
||||
tests/examplefiles/example.prg
|
||||
tests/examplefiles/example.rb
|
||||
tests/examplefiles/example.red
|
||||
tests/examplefiles/example.reds
|
||||
tests/examplefiles/example.reg
|
||||
tests/examplefiles/example.rexx
|
||||
tests/examplefiles/example.rhtml
|
||||
tests/examplefiles/example.rkt
|
||||
tests/examplefiles/example.rpf
|
||||
tests/examplefiles/example.rts
|
||||
tests/examplefiles/example.scd
|
||||
tests/examplefiles/example.sh
|
||||
tests/examplefiles/example.sh-session
|
||||
tests/examplefiles/example.shell-session
|
||||
tests/examplefiles/example.slim
|
||||
tests/examplefiles/example.sls
|
||||
tests/examplefiles/example.sml
|
||||
tests/examplefiles/example.snobol
|
||||
tests/examplefiles/example.stan
|
||||
tests/examplefiles/example.tap
|
||||
tests/examplefiles/example.tea
|
||||
tests/examplefiles/example.tf
|
||||
tests/examplefiles/example.thy
|
||||
tests/examplefiles/example.todotxt
|
||||
tests/examplefiles/example.ts
|
||||
tests/examplefiles/example.ttl
|
||||
tests/examplefiles/example.u
|
||||
tests/examplefiles/example.weechatlog
|
||||
tests/examplefiles/example.x10
|
||||
tests/examplefiles/example.xhtml
|
||||
tests/examplefiles/example.xtend
|
||||
tests/examplefiles/example.yaml
|
||||
tests/examplefiles/example1.cadl
|
||||
tests/examplefiles/example2.aspx
|
||||
tests/examplefiles/example2.msc
|
||||
tests/examplefiles/exampleScript.cfc
|
||||
tests/examplefiles/exampleTag.cfc
|
||||
tests/examplefiles/example_coq.v
|
||||
tests/examplefiles/example_elixir.ex
|
||||
tests/examplefiles/example_file.fy
|
||||
tests/examplefiles/ezhil_primefactors.n
|
||||
tests/examplefiles/firefox.mak
|
||||
tests/examplefiles/flipflop.sv
|
||||
tests/examplefiles/foo.sce
|
||||
tests/examplefiles/format.ml
|
||||
tests/examplefiles/fucked_up.rb
|
||||
tests/examplefiles/function.mu
|
||||
tests/examplefiles/functional.rst
|
||||
tests/examplefiles/garcia-wachs.kk
|
||||
tests/examplefiles/genclass.clj
|
||||
tests/examplefiles/genshi_example.xml+genshi
|
||||
tests/examplefiles/genshitext_example.genshitext
|
||||
tests/examplefiles/glsl.frag
|
||||
tests/examplefiles/glsl.vert
|
||||
tests/examplefiles/grammar-test.p6
|
||||
tests/examplefiles/hash_syntax.rb
|
||||
tests/examplefiles/hello.at
|
||||
tests/examplefiles/hello.golo
|
||||
tests/examplefiles/hello.lsl
|
||||
tests/examplefiles/hello.smali
|
||||
tests/examplefiles/hello.sp
|
||||
tests/examplefiles/hexdump_debugexe
|
||||
tests/examplefiles/hexdump_hd
|
||||
tests/examplefiles/hexdump_hexcat
|
||||
tests/examplefiles/hexdump_hexdump
|
||||
tests/examplefiles/hexdump_od
|
||||
tests/examplefiles/hexdump_xxd
|
||||
tests/examplefiles/html+php_faulty.php
|
||||
tests/examplefiles/http_request_example
|
||||
tests/examplefiles/http_response_example
|
||||
tests/examplefiles/hybris_File.hy
|
||||
tests/examplefiles/idl_sample.pro
|
||||
tests/examplefiles/iex_example
|
||||
tests/examplefiles/inet_pton6.dg
|
||||
tests/examplefiles/inform6_example
|
||||
tests/examplefiles/interp.scala
|
||||
tests/examplefiles/intro.ik
|
||||
tests/examplefiles/ints.php
|
||||
tests/examplefiles/intsyn.fun
|
||||
tests/examplefiles/intsyn.sig
|
||||
tests/examplefiles/irb_heredoc
|
||||
tests/examplefiles/irc.lsp
|
||||
tests/examplefiles/java.properties
|
||||
tests/examplefiles/jbst_example1.jbst
|
||||
tests/examplefiles/jbst_example2.jbst
|
||||
tests/examplefiles/jinjadesignerdoc.rst
|
||||
tests/examplefiles/json.lasso
|
||||
tests/examplefiles/json.lasso9
|
||||
tests/examplefiles/language.hy
|
||||
tests/examplefiles/lighttpd_config.conf
|
||||
tests/examplefiles/limbo.b
|
||||
tests/examplefiles/linecontinuation.py
|
||||
tests/examplefiles/livescript-demo.ls
|
||||
tests/examplefiles/logos_example.xm
|
||||
tests/examplefiles/ltmain.sh
|
||||
tests/examplefiles/main.cmake
|
||||
tests/examplefiles/markdown.lsp
|
||||
tests/examplefiles/matlab_noreturn
|
||||
tests/examplefiles/matlab_sample
|
||||
tests/examplefiles/matlabsession_sample.txt
|
||||
tests/examplefiles/metagrammar.treetop
|
||||
tests/examplefiles/minehunt.qml
|
||||
tests/examplefiles/minimal.ns2
|
||||
tests/examplefiles/modula2_test_cases.def
|
||||
tests/examplefiles/moin_SyntaxReference.txt
|
||||
tests/examplefiles/multiline_regexes.rb
|
||||
tests/examplefiles/nanomsg.intr
|
||||
tests/examplefiles/nasm_aoutso.asm
|
||||
tests/examplefiles/nasm_objexe.asm
|
||||
tests/examplefiles/nemerle_sample.n
|
||||
tests/examplefiles/nginx_nginx.conf
|
||||
tests/examplefiles/noexcept.cpp
|
||||
tests/examplefiles/numbers.c
|
||||
tests/examplefiles/objc_example.m
|
||||
tests/examplefiles/openedge_example
|
||||
tests/examplefiles/pacman.conf
|
||||
tests/examplefiles/pacman.ijs
|
||||
tests/examplefiles/pawn_example
|
||||
tests/examplefiles/perl_misc
|
||||
tests/examplefiles/perl_perl5db
|
||||
tests/examplefiles/perl_regex-delims
|
||||
tests/examplefiles/perlfunc.1
|
||||
tests/examplefiles/phpMyAdmin.spec
|
||||
tests/examplefiles/phpcomplete.vim
|
||||
tests/examplefiles/pkgconfig_example.pc
|
||||
tests/examplefiles/pleac.in.rb
|
||||
tests/examplefiles/postgresql_test.txt
|
||||
tests/examplefiles/pppoe.applescript
|
||||
tests/examplefiles/psql_session.txt
|
||||
tests/examplefiles/py3_test.txt
|
||||
tests/examplefiles/py3tb_test.py3tb
|
||||
tests/examplefiles/pycon_ctrlc_traceback
|
||||
tests/examplefiles/pycon_test.pycon
|
||||
tests/examplefiles/pytb_test2.pytb
|
||||
tests/examplefiles/pytb_test3.pytb
|
||||
tests/examplefiles/python25-bsd.mak
|
||||
tests/examplefiles/qbasic_example
|
||||
tests/examplefiles/qsort.prolog
|
||||
tests/examplefiles/r-console-transcript.Rout
|
||||
tests/examplefiles/r6rs-comments.scm
|
||||
tests/examplefiles/ragel-cpp_rlscan
|
||||
tests/examplefiles/ragel-cpp_snippet
|
||||
tests/examplefiles/regex.js
|
||||
tests/examplefiles/resourcebundle_demo
|
||||
tests/examplefiles/reversi.lsp
|
||||
tests/examplefiles/roboconf.graph
|
||||
tests/examplefiles/roboconf.instances
|
||||
tests/examplefiles/robotframework_test.txt
|
||||
tests/examplefiles/rql-queries.rql
|
||||
tests/examplefiles/ruby_func_def.rb
|
||||
tests/examplefiles/sample.qvto
|
||||
tests/examplefiles/scilab.sci
|
||||
tests/examplefiles/scope.cirru
|
||||
tests/examplefiles/session.dylan-console
|
||||
tests/examplefiles/sibling.prolog
|
||||
tests/examplefiles/simple.camkes
|
||||
tests/examplefiles/simple.croc
|
||||
tests/examplefiles/smarty_example.html
|
||||
tests/examplefiles/source.lgt
|
||||
tests/examplefiles/sources.list
|
||||
tests/examplefiles/sparql.rq
|
||||
tests/examplefiles/sphere.pov
|
||||
tests/examplefiles/sqlite3.sqlite3-console
|
||||
tests/examplefiles/squid.conf
|
||||
tests/examplefiles/string.jl
|
||||
tests/examplefiles/string_delimiters.d
|
||||
tests/examplefiles/stripheredoc.sh
|
||||
tests/examplefiles/subr.el
|
||||
tests/examplefiles/swig_java.swg
|
||||
tests/examplefiles/swig_std_vector.i
|
||||
tests/examplefiles/tads3_example.t
|
||||
tests/examplefiles/termcap
|
||||
tests/examplefiles/terminfo
|
||||
tests/examplefiles/test-3.0.xq
|
||||
tests/examplefiles/test-exist-update.xq
|
||||
tests/examplefiles/test.R
|
||||
tests/examplefiles/test.adb
|
||||
tests/examplefiles/test.adls
|
||||
tests/examplefiles/test.agda
|
||||
tests/examplefiles/test.apl
|
||||
tests/examplefiles/test.asy
|
||||
tests/examplefiles/test.awk
|
||||
tests/examplefiles/test.bb
|
||||
tests/examplefiles/test.bmx
|
||||
tests/examplefiles/test.boo
|
||||
tests/examplefiles/test.bpl
|
||||
tests/examplefiles/test.bro
|
||||
tests/examplefiles/test.cadl
|
||||
tests/examplefiles/test.cs
|
||||
tests/examplefiles/test.csd
|
||||
tests/examplefiles/test.css
|
||||
tests/examplefiles/test.cu
|
||||
tests/examplefiles/test.cyp
|
||||
tests/examplefiles/test.d
|
||||
tests/examplefiles/test.dart
|
||||
tests/examplefiles/test.dtd
|
||||
tests/examplefiles/test.ebnf
|
||||
tests/examplefiles/test.ec
|
||||
tests/examplefiles/test.eh
|
||||
tests/examplefiles/test.erl
|
||||
tests/examplefiles/test.evoque
|
||||
tests/examplefiles/test.fan
|
||||
tests/examplefiles/test.flx
|
||||
tests/examplefiles/test.gdc
|
||||
tests/examplefiles/test.gradle
|
||||
tests/examplefiles/test.groovy
|
||||
tests/examplefiles/test.html
|
||||
tests/examplefiles/test.idr
|
||||
tests/examplefiles/test.ini
|
||||
tests/examplefiles/test.java
|
||||
tests/examplefiles/test.jsp
|
||||
tests/examplefiles/test.lean
|
||||
tests/examplefiles/test.maql
|
||||
tests/examplefiles/test.mask
|
||||
tests/examplefiles/test.mod
|
||||
tests/examplefiles/test.moo
|
||||
tests/examplefiles/test.myt
|
||||
tests/examplefiles/test.nim
|
||||
tests/examplefiles/test.odin
|
||||
tests/examplefiles/test.opa
|
||||
tests/examplefiles/test.orc
|
||||
tests/examplefiles/test.p6
|
||||
tests/examplefiles/test.pan
|
||||
tests/examplefiles/test.pas
|
||||
tests/examplefiles/test.php
|
||||
tests/examplefiles/test.pig
|
||||
tests/examplefiles/test.plot
|
||||
tests/examplefiles/test.ps1
|
||||
tests/examplefiles/test.psl
|
||||
tests/examplefiles/test.pwn
|
||||
tests/examplefiles/test.pypylog
|
||||
tests/examplefiles/test.r3
|
||||
tests/examplefiles/test.rb
|
||||
tests/examplefiles/test.rhtml
|
||||
tests/examplefiles/test.rsl
|
||||
tests/examplefiles/test.scaml
|
||||
tests/examplefiles/test.sco
|
||||
tests/examplefiles/test.shen
|
||||
tests/examplefiles/test.ssp
|
||||
tests/examplefiles/test.swift
|
||||
tests/examplefiles/test.tcsh
|
||||
tests/examplefiles/test.vb
|
||||
tests/examplefiles/test.vhdl
|
||||
tests/examplefiles/test.xqy
|
||||
tests/examplefiles/test.xsl
|
||||
tests/examplefiles/test.zep
|
||||
tests/examplefiles/test2.odin
|
||||
tests/examplefiles/test2.pypylog
|
||||
tests/examplefiles/test_basic.adls
|
||||
tests/examplefiles/truncated.pytb
|
||||
tests/examplefiles/twig_test
|
||||
tests/examplefiles/type.lisp
|
||||
tests/examplefiles/underscore.coffee
|
||||
tests/examplefiles/unicode.applescript
|
||||
tests/examplefiles/unicode.go
|
||||
tests/examplefiles/unicode.js
|
||||
tests/examplefiles/unicodedoc.py
|
||||
tests/examplefiles/unix-io.lid
|
||||
tests/examplefiles/vbnet_test.bas
|
||||
tests/examplefiles/vctreestatus_hg
|
||||
tests/examplefiles/vimrc
|
||||
tests/examplefiles/vpath.mk
|
||||
tests/examplefiles/webkit-transition.css
|
||||
tests/examplefiles/while.pov
|
||||
tests/examplefiles/wiki.factor
|
||||
tests/examplefiles/xml_example
|
||||
tests/examplefiles/yahalom.cpsa
|
||||
tests/examplefiles/zmlrpc.f90
|
||||
tests/support/tags
|
@ -1 +0,0 @@
|
||||
|
@ -1,3 +0,0 @@
|
||||
[console_scripts]
|
||||
pygmentize = pygments.cmdline:main
|
||||
|
@ -1 +0,0 @@
|
||||
|
@ -1 +0,0 @@
|
||||
pygments
|
39
third_party/pygments/README.rst
vendored
39
third_party/pygments/README.rst
vendored
@ -1,39 +0,0 @@
|
||||
README for Pygments
|
||||
===================
|
||||
|
||||
This is the source of Pygments. It is a generic syntax highlighter that
|
||||
supports over 300 languages and text formats, for use in code hosting, forums,
|
||||
wikis or other applications that need to prettify source code.
|
||||
|
||||
Installing
|
||||
----------
|
||||
|
||||
... works as usual, use ``python setup.py install``.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
... can be found online at http://pygments.org/ or created by ::
|
||||
|
||||
cd doc
|
||||
make html
|
||||
|
||||
Development
|
||||
-----------
|
||||
|
||||
... takes place on `Bitbucket
|
||||
<https://bitbucket.org/birkenfeld/pygments-main>`_, where the Mercurial
|
||||
repository, tickets and pull requests can be viewed.
|
||||
|
||||
Continuous testing runs on drone.io:
|
||||
|
||||
.. image:: https://drone.io/bitbucket.org/birkenfeld/pygments-main/status.png
|
||||
:target: https://drone.io/bitbucket.org/birkenfeld/pygments-main
|
||||
|
||||
The authors
|
||||
-----------
|
||||
|
||||
Pygments is maintained by **Georg Brandl**, e-mail address *georg*\ *@*\ *python.org*.
|
||||
|
||||
Many lexers and fixes have been contributed by **Armin Ronacher**, the rest of
|
||||
the `Pocoo <http://dev.pocoo.org/>`_ team and **Tim Hatch**.
|
12
third_party/pygments/TODO
vendored
12
third_party/pygments/TODO
vendored
@ -1,12 +0,0 @@
|
||||
Todo
|
||||
====
|
||||
|
||||
- lexers that need work:
|
||||
* review perl lexer (numerous bugs, but so far no one had complaints ;)
|
||||
* readd property support for C# lexer? that is, find a regex that doesn't
|
||||
backtrack to death...
|
||||
* add support for function name highlighting to C++ lexer
|
||||
|
||||
- allow "overlay" token types to highlight specials: nth line, a word etc.
|
||||
|
||||
- pygmentize option presets, more sophisticated method to output styles?
|
153
third_party/pygments/doc/Makefile
vendored
153
third_party/pygments/doc/Makefile
vendored
@ -1,153 +0,0 @@
|
||||
# Makefile for Sphinx documentation
|
||||
#
|
||||
|
||||
# You can set these variables from the command line.
|
||||
SPHINXOPTS =
|
||||
SPHINXBUILD = PYTHONPATH=.. sphinx-build
|
||||
PAPER =
|
||||
BUILDDIR = _build
|
||||
|
||||
# Internal variables.
|
||||
PAPEROPT_a4 = -D latex_paper_size=a4
|
||||
PAPEROPT_letter = -D latex_paper_size=letter
|
||||
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
# the i18n builder cannot share the environment and doctrees with the others
|
||||
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
|
||||
|
||||
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
|
||||
|
||||
help:
|
||||
@echo "Please use \`make <target>' where <target> is one of"
|
||||
@echo " html to make standalone HTML files"
|
||||
@echo " dirhtml to make HTML files named index.html in directories"
|
||||
@echo " singlehtml to make a single large HTML file"
|
||||
@echo " pickle to make pickle files"
|
||||
@echo " json to make JSON files"
|
||||
@echo " htmlhelp to make HTML files and a HTML help project"
|
||||
@echo " qthelp to make HTML files and a qthelp project"
|
||||
@echo " devhelp to make HTML files and a Devhelp project"
|
||||
@echo " epub to make an epub"
|
||||
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
||||
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
||||
@echo " text to make text files"
|
||||
@echo " man to make manual pages"
|
||||
@echo " texinfo to make Texinfo files"
|
||||
@echo " info to make Texinfo files and run them through makeinfo"
|
||||
@echo " gettext to make PO message catalogs"
|
||||
@echo " changes to make an overview of all changed/added/deprecated items"
|
||||
@echo " linkcheck to check all external links for integrity"
|
||||
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
||||
|
||||
clean:
|
||||
-rm -rf $(BUILDDIR)/*
|
||||
|
||||
html:
|
||||
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
||||
|
||||
dirhtml:
|
||||
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
||||
|
||||
singlehtml:
|
||||
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
||||
@echo
|
||||
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
||||
|
||||
pickle:
|
||||
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
||||
@echo
|
||||
@echo "Build finished; now you can process the pickle files."
|
||||
|
||||
json:
|
||||
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
||||
@echo
|
||||
@echo "Build finished; now you can process the JSON files."
|
||||
|
||||
htmlhelp:
|
||||
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
||||
".hhp project file in $(BUILDDIR)/htmlhelp."
|
||||
|
||||
qthelp:
|
||||
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
||||
@echo
|
||||
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
||||
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
||||
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Pygments.qhcp"
|
||||
@echo "To view the help file:"
|
||||
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Pygments.qhc"
|
||||
|
||||
devhelp:
|
||||
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
||||
@echo
|
||||
@echo "Build finished."
|
||||
@echo "To view the help file:"
|
||||
@echo "# mkdir -p $$HOME/.local/share/devhelp/Pygments"
|
||||
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Pygments"
|
||||
@echo "# devhelp"
|
||||
|
||||
epub:
|
||||
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
||||
@echo
|
||||
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
||||
|
||||
latex:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo
|
||||
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
||||
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
||||
"(use \`make latexpdf' here to do that automatically)."
|
||||
|
||||
latexpdf:
|
||||
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
||||
@echo "Running LaTeX files through pdflatex..."
|
||||
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
||||
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
||||
|
||||
text:
|
||||
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
||||
@echo
|
||||
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
||||
|
||||
man:
|
||||
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
||||
@echo
|
||||
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
||||
|
||||
texinfo:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo
|
||||
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
||||
@echo "Run \`make' in that directory to run these through makeinfo" \
|
||||
"(use \`make info' here to do that automatically)."
|
||||
|
||||
info:
|
||||
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
||||
@echo "Running Texinfo files through makeinfo..."
|
||||
make -C $(BUILDDIR)/texinfo info
|
||||
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
||||
|
||||
gettext:
|
||||
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
||||
@echo
|
||||
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
||||
|
||||
changes:
|
||||
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
||||
@echo
|
||||
@echo "The overview file is in $(BUILDDIR)/changes."
|
||||
|
||||
linkcheck:
|
||||
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
||||
@echo
|
||||
@echo "Link check complete; look for any errors in the above output " \
|
||||
"or in $(BUILDDIR)/linkcheck/output.txt."
|
||||
|
||||
doctest:
|
||||
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
||||
@echo "Testing of doctests in the sources finished, look at the " \
|
||||
"results in $(BUILDDIR)/doctest/output.txt."
|
BIN
third_party/pygments/doc/_static/favicon.ico
vendored
BIN
third_party/pygments/doc/_static/favicon.ico
vendored
Binary file not shown.
Before Width: | Height: | Size: 17 KiB |
BIN
third_party/pygments/doc/_static/logo_new.png
vendored
BIN
third_party/pygments/doc/_static/logo_new.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 40 KiB |
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