This commit is contained in:
chai2010
2015-12-24 14:47:06 +08:00
parent 7ec2f7cdc1
commit 745a165b6f
145 changed files with 3157 additions and 859 deletions

View File

@@ -48,7 +48,7 @@
<body>
<div class="book" data-level="1.1" data-chapter-title="Hello, World" data-filepath="ch1/ch1-01.md" data-basepath=".." data-revision="Mon Dec 21 2015 12:51:02 GMT+0800 (中国标准时间)">
<div class="book" data-level="1.1" data-chapter-title="Hello, World" data-filepath="ch1/ch1-01.md" data-basepath=".." data-revision="Thu Dec 24 2015 14:42:02 GMT+0800 (中国标准时间)">
<div class="book-summary">
@@ -1975,16 +1975,16 @@
</li>
<li class="chapter " data-level="14" data-path="errata.html">
<li class="chapter " data-level="14" data-path="CONTRIBUTORS.html">
<a href="../errata.html">
<a href="../CONTRIBUTORS.html">
<i class="fa fa-check"></i>
<b>14.</b>
勘誤
附録
</a>
@@ -2024,41 +2024,42 @@
<section class="normal" id="section-">
<h2 id="11-hello-world">1.1. Hello, World</h2>
<p>&#x6211;&#x5011;&#x4EE5;1978&#x5E74;&#xFF0C;c&#x8A9E;&#x8A00;&#x6B77;&#x53F2;&#x4E0A;&#x7D93;&#x5178;&#x7684;hello world&#x6848;&#x4F8B;&#x4F86;&#x958B;&#x59CB;&#x5427;&#x3002;C&#x8A9E;&#x8A00;&#x5C0D;Go&#x8A9E;&#x8A00;&#x7684;&#x8A2D;&#x8A08;&#x7523;&#x751F;&#x4E86;&#x5F88;&#x591A;&#x5F71;&#x97FF;&#x3002;&#x7528;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#xFF0C;&#x6211;&#x5011;&#x4F86;&#x8B1B;&#x89E3;&#x4E00;&#x4E9B;Go&#x8A9E;&#x8A00;&#x7684;&#x8988;&#x5FC3;&#x7279;&#x6027;&#xFF1A;</p>
<pre><code class="lang-go"><span class="hljs-comment">//gopl.io/ch1/helloworld</span>
<p>&#x6211;&#x5011;&#x4EE5;1978&#x5E74;&#x9F63;&#x7248;&#x7684;C&#x8A9E;&#x8A00;&#x8056;&#x7D93;&#x300A;The C Programming Language&#x300B;&#x4E2D;&#x7D93;&#x5178;&#x7684;&#x201C;hello world&#x201D;&#x6848;&#x4F8B;&#x4F86;&#x958B;&#x59CB;&#x5427;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x672C;&#x66F8;&#x4F5C;&#x8005;&#x4E4B;&#x4E00;Brian W. Kernighan&#x4E5F;&#x662F;C&#x8A9E;&#x8A00;&#x8056;&#x7D93;&#x4E00;&#x66F8;&#x7684;&#x4F5C;&#x8005;&#xFF09;&#x3002;C&#x8A9E;&#x8A00;&#x5C0D;Go&#x8A9E;&#x8A00;&#x7684;&#x8A2D;&#x8A08;&#x7523;&#x751F;&#x4E86;&#x5F88;&#x591A;&#x5F71;&#x97FF;&#x3002;&#x7528;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#xFF0C;&#x6211;&#x5011;&#x4F86;&#x8B1B;&#x89E3;&#x4E00;&#x4E9B;Go&#x8A9E;&#x8A00;&#x7684;&#x8988;&#x5FC3;&#x7279;&#x6027;&#xFF1A;</p>
<pre><code class="lang-go">gopl.io/ch1/helloworld
<span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> <span class="hljs-string">&quot;fmt&quot;</span>
<span class="hljs-keyword">func</span> main() {
fmt.Println(<span class="hljs-string">&quot;Hello, BF&quot;</span>)
fmt.Println(<span class="hljs-string">&quot;Hello, &#x4E16;&#x754C;&quot;</span>)
}
</code></pre>
<p>Go&#x662F;&#x4E00;&#x9580;&#x7DE8;&#x8B6F;&#x578B;&#x8A9E;&#x8A00;&#xFF0C;Go&#x7684;&#x5DE5;&#x5177;&#x93C8;&#x5C07;&#x6E90;&#x4EE3;&#x78BC;&#x548C;&#x5176;&#x4F9D;&#x8CF4;&#x4E00;&#x8D77;&#x6253;&#x5305;&#xFF0C;&#x751F;&#x6210;&#x6A5F;&#x5668;&#x7684;&#x672C;&#x5730;&#x6307;&#x4EE4;(&#x8B6F;&#x8A3B;&#xFF1A;&#x975C;&#x614B;&#x7DE8;&#x8B6F;)&#x3002;Go&#x8A9E;&#x8A00;&#x63D0;&#x4F9B;&#x7684;&#x5DE5;&#x5177;&#x53EF;&#x4EE5;&#x901A;&#x904E;go&#x4E0B;&#x7684;&#x4E00;&#x7E6B;&#x5217;&#x5B50;&#x547D;&#x4EE4;&#x4F86;&#x8ABF;&#x7528;&#x3002;&#x6700;&#x7C21;&#x55AE;&#x7684;&#x4E00;&#x500B;&#x5B50;&#x547D;&#x4EE4;&#x5C31;&#x662F;run&#x3002;&#x9019;&#x500B;&#x547D;&#x4EE4;&#x6703;&#x5C07;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;&#x4EE5;.go&#x7D50;&#x675F;&#x7684;&#x6E90;&#x6587;&#x4EF6;&#xFF0C;&#x548C;&#x95DC;&#x806F;&#x5EAB;&#x93C8;&#x63A5;&#x5230;&#x4E00;&#x8D77;&#xFF0C;&#x7136;&#x5F8C;&#x904B;&#x884C;&#x6700;&#x7D42;&#x7684;&#x53EF;&#x57F7;&#x884C;&#x6587;&#x4EF6;&#x3002;(&#x672C;&#x66F8;&#x5C07;&#x7528;$&#x8868;&#x793A;&#x547D;&#x4EE4;&#x884C;&#x7684;&#x63D0;&#x793A;&#x7B26;)</p>
<p>Go&#x662F;&#x4E00;&#x9580;&#x7DE8;&#x8B6F;&#x578B;&#x8A9E;&#x8A00;&#xFF0C;Go&#x8A9E;&#x8A00;&#x7684;&#x5DE5;&#x5177;&#x93C8;&#x5C07;&#x6E90;&#x4EE3;&#x78BC;&#x548C;&#x5176;&#x4F9D;&#x8CF4;&#x4E00;&#x8D77;&#x6253;&#x5305;&#xFF0C;&#x751F;&#x6210;&#x6A5F;&#x5668;&#x7684;&#x672C;&#x5730;&#x6307;&#x4EE4;(&#x8B6F;&#x8A3B;&#xFF1A;&#x975C;&#x614B;&#x7DE8;&#x8B6F;)&#x3002;Go&#x8A9E;&#x8A00;&#x63D0;&#x4F9B;&#x7684;&#x5DE5;&#x5177;&#x53EF;&#x4EE5;&#x901A;&#x904E;go&#x547D;&#x4EE4;&#x4E0B;&#x7684;&#x4E00;&#x7E6B;&#x5217;&#x5B50;&#x547D;&#x4EE4;&#x4F86;&#x8ABF;&#x7528;&#x3002;&#x6700;&#x7C21;&#x55AE;&#x7684;&#x4E00;&#x500B;&#x5B50;&#x547D;&#x4EE4;&#x5C31;&#x662F;run&#x3002;&#x9019;&#x500B;&#x547D;&#x4EE4;&#x6703;&#x5C07;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;&#x6587;&#x4EF6;&#x540D;&#x4EE5;.go&#x7D50;&#x5C3E;&#x7684;&#x6E90;&#x6587;&#x4EF6;&#xFF0C;&#x548C;&#x95DC;&#x806F;&#x5EAB;&#x93C8;&#x63A5;&#x5230;&#x4E00;&#x8D77;&#xFF0C;&#x7136;&#x5F8C;&#x904B;&#x884C;&#x6700;&#x7D42;&#x7684;&#x53EF;&#x57F7;&#x884C;&#x6587;&#x4EF6;&#x3002;&#xFF08;&#x672C;&#x66F8;&#x5C07;&#x7528;$&#x8868;&#x793A;&#x547D;&#x4EE4;&#x884C;&#x7684;&#x63D0;&#x793A;&#x7B26;&#x3002;&#xFF09;</p>
<pre><code>$ go run helloworld.go
</code></pre><p>&#x6BEB;&#x7121;&#x610F;&#x5916;&#xFF0C;&#x9019;&#x500B;&#x547D;&#x4EE4;&#x6703;&#x8F38;&#x9F63;&#xFF1A;</p>
<pre><code>Hello, BF
</code></pre><p>Go&#x539F;&#x751F;&#x652F;&#x6301;Unicode&#xFF0C;&#x6240;&#x4EE5;&#x4F60;&#x53EF;&#x4EE5;&#x7528;Go&#x8655;&#x7406;&#x4E16;&#x754C;&#x4E0A;&#x7684;&#x4EFB;&#x4F55;&#x8A9E;&#x8A00;&#x3002;</p>
<pre><code>Hello, &#x4E16;&#x754C;
</code></pre><p>Go&#x8A9E;&#x8A00;&#x539F;&#x751F;&#x652F;&#x6301;Unicode&#x6A19;&#x6E96;&#xFF0C;&#x6240;&#x4EE5;&#x4F60;&#x53EF;&#x4EE5;&#x7528;Go&#x8A9E;&#x8A00;&#x8655;&#x7406;&#x4E16;&#x754C;&#x4E0A;&#x7684;&#x4EFB;&#x4F55;&#x81EA;&#x7136;&#x8A9E;&#x8A00;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4F60;&#x5E0C;&#x671B;&#x81EA;&#x5DF1;&#x7684;&#x7A0B;&#x5E8F;&#x4E0D;&#x96BB;&#x662F;&#x7C21;&#x55AE;&#x7684;&#x4E00;&#x6B21;&#x6027;&#x5BE6;&#x9A57;&#xFF0C;&#x90A3;&#x9EBD;&#x4F60;&#x4E00;&#x5B9A;&#x6703;&#x5E0C;&#x671B;&#x80FD;&#x5920;&#x7DE8;&#x8B6F;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#xFF0C;&#x4F75;&#x4E14;&#x80FD;&#x5920;&#x5C07;&#x7DE8;&#x8B6F;&#x7D50;&#x679C;&#x4FDD;&#x5B58;&#x4E0B;&#x4F86;&#x4EE5;&#x5099;&#x5C07;&#x4F86;&#x4E4B;&#x7528;&#x3002;&#x9019;&#x500B;&#x53EF;&#x4EE5;&#x7528;build&#x5B50;&#x547D;&#x4EE4;&#x4F86;&#x5BE6;&#x73FE;&#xFF1A;</p>
<pre><code>$ go build helloworld.go
</code></pre><p>&#x9019;&#x6703;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x540D;&#x7232;helloworld&#x7684;&#x53EF;&#x57F7;&#x884C;&#x7684;&#x4E8C;&#x9032;&#x88FD;&#x6587;&#x4EF6;&#xFF0C;&#x4E4B;&#x5F8C;&#x4F60;&#x53EF;&#x4EE5;&#x5728;&#x4EFB;&#x4F55;&#x6642;&#x9593;&#x53BB;&#x904B;&#x884C;&#x9019;&#x500B;&#x4E8C;&#x9032;&#x88FD;&#x6587;&#x4EF6;&#xFF0C;&#x4E0D;&#x9700;&#x8981;&#x5176;&#x5B83;&#x7684;&#x4EFB;&#x4F55;&#x8655;&#x7406;(&#x8B6F;&#x8A3B;&#xFF1A;&#x56E0;&#x7232;&#x662F;&#x975C;&#x614B;&#x7DE8;&#x8B6F;&#xFF0C;&#x6240;&#x4EE5;&#x4E5F;&#x4E0D;&#x7528;&#x64D4;&#x5FC3;&#x5728;&#x7E6B;&#x7D71;&#x5EAB;&#x66F4;&#x65B0;&#x7684;&#x6642;&#x5019;&#x885D;&#x7A81;&#xFF0C;&#x5E78;&#x798F;&#x611F;&#x6EFF;&#x6EFF;)&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x662F;&#x904B;&#x884C;&#x6211;&#x5011;&#x7684;&#x7DE8;&#x8B6F;&#x7D50;&#x679C;&#x6A23;&#x4F8B;&#xFF1A;</p>
</code></pre><p>&#x9019;&#x6703;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x540D;&#x7232;helloworld&#x7684;&#x53EF;&#x57F7;&#x884C;&#x7684;&#x4E8C;&#x9032;&#x88FD;&#x6587;&#x4EF6;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x5728;Windows&#x7E6B;&#x7D71;&#x4E0B;&#x751F;&#x6210;&#x7684;&#x53EF;&#x57F7;&#x884C;&#x6587;&#x4EF6;&#x662F;helloworld.exe&#xFF0C;&#x589E;&#x52A0;&#x4E86;.exe&#x5F8C;&#x7DB4;&#x540D;&#xFF09;&#xFF0C;&#x4E4B;&#x5F8C;&#x4F60;&#x53EF;&#x4EE5;&#x5728;&#x4EFB;&#x4F55;&#x6642;&#x9593;&#x53BB;&#x904B;&#x884C;&#x9019;&#x500B;&#x4E8C;&#x9032;&#x88FD;&#x6587;&#x4EF6;&#xFF0C;&#x4E0D;&#x9700;&#x8981;&#x5176;&#x5B83;&#x7684;&#x4EFB;&#x4F55;&#x8655;&#x7406;(&#x8B6F;&#x8A3B;&#xFF1A;&#x56E0;&#x7232;&#x662F;&#x975C;&#x614B;&#x7DE8;&#x8B6F;&#xFF0C;&#x6240;&#x4EE5;&#x4E5F;&#x4E0D;&#x7528;&#x64D4;&#x5FC3;&#x5728;&#x7E6B;&#x7D71;&#x5EAB;&#x66F4;&#x65B0;&#x7684;&#x6642;&#x5019;&#x885D;&#x7A81;&#xFF0C;&#x5E78;&#x798F;&#x611F;&#x6EFF;&#x6EFF;)&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x662F;&#x904B;&#x884C;&#x6211;&#x5011;&#x7684;&#x7DE8;&#x8B6F;&#x7D50;&#x679C;&#x6A23;&#x4F8B;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x5728;Windows&#x7E6B;&#x7D71;&#x4E0B;&#x5728;&#x547D;&#x4EE4;&#x884C;&#x76F4;&#x63A5;&#x8F38;&#x5165;helloworld.exe&#x547D;&#x4EE4;&#x904B;&#x884C;&#xFF09;&#xFF1A;</p>
<pre><code>$ ./helloworld
Hello, BF
</code></pre><p>&#x672C;&#x66F8;&#x4E2D;&#x6211;&#x5011;&#x6240;&#x6709;&#x7684;&#x4F8B;&#x5B50;&#x90FD;&#x505A;&#x4E86;&#x4E00;&#x500B;&#x7279;&#x6B8A;&#x6A19;&#x8A18;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x9019;&#x4E9B;&#x6A19;&#x8A18;&#x5728;gopl.io&#x5728;&#x7DDA;&#x7DB2;&#x7AD9;&#x4E0A;&#x627E;&#x5230;&#x9019;&#x4E9B;&#x6A23;&#x4F8B;&#x4EE3;&#x78BC;&#xFF0C;&#x6BD4;&#x5982;&#x9019;&#x500B; gopl.io/ch1/helloworld</p>
<p>&#x5982;&#x679C;&#x4F60;&#x57F7;&#x884C;go get gopl.io/ch1/helloworld&#xFF0C;go&#x80FD;&#x5920;&#x81EA;&#x5DF1;&#x5F9E;&#x7DB2;&#x4E0A;&#x7A6B;&#x53D6;&#x5230;&#x9019;&#x4E9B;&#x4EE3;&#x78BC;&#xFF0C;&#x4F75;&#x4E14;&#x5C07;&#x9019;&#x4E9B;&#x4EE3;&#x78BC;&#x653E;&#x5230;&#x5C0D;&#x61C9;&#x7684;&#x76EE;&#x9332;&#x4E2D;&#x3002;&#x66F4;&#x8A73;&#x7D30;&#x7684;&#x4ECB;&#x7D39;&#x5728;2.6&#x548C;10.7&#x7AE0;&#x7BC0;&#x4E2D;&#x3002;</p>
<p>&#x6211;&#x5011;&#x4F86;&#x8A0E;&#x8AD6;&#x4E00;&#x4E0B;&#x7A0B;&#x5E8F;&#x672C;&#x8EAB;&#x3002;Go&#x7684;&#x4EE3;&#x78BC;&#x662F;&#x7528;package&#x4F86;&#x7D44;&#x7E54;&#x7684;&#xFF0C;package&#x7684;&#x6982;&#x5FF5;&#x548C;&#x4F60;&#x77E5;&#x9053;&#x7684;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x91CC;&#x7684;libraries&#x6216;&#x8005;modules&#x6BD4;&#x8F03;&#x985E;&#x4F3C;&#x3002;&#x4E00;&#x500B;package&#x6703;&#x5305;&#x542B;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;.go&#x7D50;&#x675F;&#x7684;&#x6E90;&#x4EE3;&#x78BC;&#x6587;&#x4EF6;&#x3002;&#x6BCF;&#x4E00;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x90FD;&#x662F;&#x4EE5;&#x4E00;&#x500B;package xxx&#x7684;&#x8072;&#x660E;&#x958B;&#x982D;&#x7684;&#xFF0C;&#x6BD4;&#x5982;&#x6211;&#x5011;&#x7684;&#x4F8B;&#x5B50;&#x91CC;&#x5C31;&#x662F;package main&#x3002;&#x9019;&#x884C;&#x8072;&#x660E;&#x8868;&#x793A;&#x8A72;&#x6587;&#x4EF6;&#x662F;&#x5C6C;&#x65BC;&#x54EA;&#x4E00;&#x500B;package&#xFF0C;&#x7DCA;&#x8DDF;&#x7740;&#x662F;&#x4E00;&#x7E6B;&#x5217;import&#x7684;package&#x540D;&#xFF0C;&#x8868;&#x793A;&#x9019;&#x500B;&#x6587;&#x4EF6;&#x4E2D;&#x5F15;&#x5165;&#x7684;package&#x3002;&#x518D;&#x4E4B;&#x5F8C;&#x662F;&#x672C;&#x6587;&#x4EF6;&#x672C;&#x8EAB;&#x7684;&#x4EE3;&#x78BC;</p>
<p>Go&#x7684;&#x6A19;&#x6E96;&#x5EAB;&#x5DF2;&#x7D93;&#x63D0;&#x4F9B;&#x4E86;100&#x591A;&#x500B;package&#xFF0C;&#x7528;&#x4F86;&#x5B8C;&#x6210;&#x4E00;&#x9580;&#x7A0B;&#x5E8F;&#x8A9E;&#x8A00;&#x7684;&#x4E00;&#x4E9B;&#x57FA;&#x672C;&#x4EFB;&#x52D9;&#xFF0C;&#x6BD4;&#x5982;&#x8F38;&#x5165;&#x3001;&#x8F38;&#x9F63;&#x3001;&#x6392;&#x5E8F;&#x6216;&#x8005;&#x5B57;&#x7B26;&#x4E32;/&#x6587;&#x672C;&#x8655;&#x7406;&#x3002;&#x6BD4;&#x5982;fmt&#x9019;&#x500B;package&#xFF0C;&#x5C31;&#x5305;&#x62EC;&#x63A5;&#x6536;&#x8F38;&#x5165;&#x3001;&#x683C;&#x5F0F;&#x5316;&#x8F38;&#x9F63;&#x7684;&#x5404;&#x7A2E;&#x51FD;&#x6578;&#x3002;Println&#x662F;&#x5176;&#x4E2D;&#x7684;&#x4E00;&#x500B;&#x51FD;&#x6578;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x9019;&#x500B;&#x51FD;&#x6578;&#x4F86;&#x6253;&#x5370;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;&#x503C;&#xFF0C;&#x8A72;&#x51FD;&#x6578;&#x6703;&#x5C07;&#x9019;&#x4E9B;&#x53C3;&#x6578;&#x7528;&#x7A7A;&#x683C;&#x9694;&#x958B;&#x9032;&#x884C;&#x8F38;&#x9F63;&#xFF0C;&#x4F75;&#x5728;&#x8F38;&#x9F63;&#x5B8C;&#x7562;&#x4E4B;&#x5F8C;&#x5728;&#x884C;&#x672B;&#x52A0;&#x4E0A;&#x4E00;&#x500B;&#x63DB;&#x884C;&#x7B26;&#x3002;</p>
<p>package main&#x6BD4;&#x8F03;&#x7279;&#x6B8A;&#x3002;&#x9019;&#x500B;package&#x91CC;&#x6703;&#x5B9A;&#x7FA9;&#x4E00;&#x500B;&#x7368;&#x7ACB;&#x7684;&#x7A0B;&#x5E8F;&#xFF0C;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x662F;&#x53EF;&#x4EE5;&#x904B;&#x884C;&#x7684;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x50CF;&#x5176;&#x5B83;package&#x4E00;&#x6A23;&#x7684;library&#x3002;&#x5728;main&#x9019;&#x500B;package&#x91CC;&#xFF0C;main&#x51FD;&#x6578;&#x4E5F;&#x662F;&#x4E00;&#x500B;&#x7279;&#x6B8A;&#x7684;&#x51FD;&#x6578;&#xFF0C;&#x9019;&#x662F;&#x6211;&#x5011;&#x6574;&#x500B;&#x7A0B;&#x5E8F;&#x7684;&#x5165;&#x53E3;(&#x8B6F;&#x8A3B;&#xFF1A;&#x5176;&#x5BE6;c&#x7E6B;&#x8A9E;&#x8A00;&#x5DEE;&#x4E0D;&#x591A;&#x90FD;&#x662F;&#x9019;&#x6A23;)&#x3002;main&#x51FD;&#x6578;&#x6240;&#x505A;&#x7684;&#x4E8B;&#x60C5;&#x5C31;&#x662F;&#x6211;&#x5011;&#x7A0B;&#x5E8F;&#x505A;&#x7684;&#x4E8B;&#x60C5;&#x3002;&#x7576;&#x7136;&#x4E86;&#xFF0C;main&#x51FD;&#x6578;&#x4E00;&#x822C;&#x5B8C;&#x6210;&#x7684;&#x5DE5;&#x4F5C;&#x662F;&#x8ABF;&#x7528;&#x5176;&#x5B83;packge&#x91CC;&#x7684;&#x51FD;&#x6578;&#x4F86;&#x5B8C;&#x6210;&#x81EA;&#x5DF1;&#x7684;&#x5DE5;&#x4F5C;&#xFF0C;&#x6BD4;&#x5982;fmt.Println&#x3002;</p>
<p>&#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x544A;&#x8A34;&#x7DE8;&#x8B6F;&#x5668;&#x5982;&#x679C;&#x8981;&#x6B63;&#x78BA;&#x5730;&#x57F7;&#x884C;&#x9019;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#xFF0C;&#x9700;&#x8981;&#x7528;&#x5230;&#x54EA;&#x4E9B;package&#xFF0C;&#x9019;&#x5C31;&#x662F;import&#x5728;&#x9019;&#x500B;&#x6587;&#x4EF6;&#x91CC;&#x626E;&#x6F14;&#x7684;&#x89D2;&#x8272;&#x3002;&#x4E0A;&#x8FF0;&#x7684;hello world&#x96BB;&#x7528;&#x5230;&#x4E86;&#x4E00;&#x500B;&#x5176;&#x5B83;&#x7684;package&#xFF0C;&#x5C31;&#x662F;fmt&#x3002;&#x4E00;&#x822C;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x9700;&#x8981;import&#x7684;package&#x4E0D;&#x96BB;&#x4E00;&#x500B;&#x3002;</p>
<p>&#x4E5F;&#x6B63;&#x662F;&#x56E0;&#x7232;go&#x8A9E;&#x8A00;&#x5FC5;&#x9B1A;&#x5F15;&#x5165;&#x6240;&#x6709;&#x7528;&#x5230;&#x7684;package&#x7684;&#x539F;&#x5247;&#xFF0C;&#x5047;&#x5982;&#x4F60;&#x6C92;&#x6709;&#x5728;&#x4EE3;&#x78BC;&#x91CC;import&#x9700;&#x8981;&#x7528;&#x5230;&#x7684;package&#xFF0C;&#x7A0B;&#x5E8F;&#x5C07;&#x7121;&#x6CD5;&#x7DE8;&#x8B6F;&#x901A;&#x904E;&#xFF0C;&#x7576;&#x4F60;import&#x4E86;&#x6C92;&#x6709;&#x7528;&#x5230;&#x7684;package&#xFF0C;&#x4E5F;&#x6703;&#x7121;&#x6CD5;&#x7DE8;&#x8B6F;&#x901A;&#x904E;(&#x8B6F;&#x8A3B;&#xFF1A;&#x722D;&#x8B70;&#x7279;&#x6027;&#x4E4B;&#x4E00;)&#x3002;</p>
<p>import&#x8072;&#x660E;&#x5FC5;&#x9B1A;&#x8DDF;&#x5728;&#x6587;&#x4EF6;&#x7684;package&#x8072;&#x660E;&#x4E4B;&#x5F8C;&#x3002;&#x5728;import&#x4E4B;&#x5F8C;&#xFF0C;&#x5247;&#x662F;&#x5404;&#x7A2E;&#x65B9;&#x6CD5;&#x3001;&#x8B8A;&#x91CF;&#x3001;&#x5E38;&#x91CF;&#x3001;&#x985E;&#x578B;&#x7684;&#x8072;&#x660E;(&#x5206;&#x522B;&#x7528;&#x95DC;&#x9375;&#x5B57;func, var, const, type&#x4F86;&#x9032;&#x884C;&#x5B9A;&#x7FA9;)&#x3002;&#x9019;&#x4E9B;&#x5167;&#x5BB9;&#x7684;&#x8072;&#x660E;&#x9806;&#x5E8F;&#x4F75;&#x6C92;&#x6709;&#x4EC0;&#x9EBD;&#x898F;&#x5B9A;&#xFF0C;&#x53EF;&#x4EE5;&#x96A8;&#x4FBF;(&#x8B6F;&#x8A3B;&#xFF1A;&#x6700;&#x597D;&#x9084;&#x662F;&#x5B9A;&#x4E00;&#x4E0B;&#x898F;&#x8303;)&#x3002;&#x6211;&#x5011;&#x4F8B;&#x5B50;&#x91CC;&#x7684;&#x7A0B;&#x5E8F;&#x6BD4;&#x8F03;&#x7C21;&#x55AE;&#xFF0C;&#x96BB;&#x5305;&#x542B;&#x4E86;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x3002;&#x4F75;&#x4E14;&#x5728;&#x8A72;&#x51FD;&#x6578;&#x91CC;&#x4E5F;&#x96BB;&#x8ABF;&#x7528;&#x4E86;&#x4E00;&#x500B;&#x5176;&#x5B83;&#x51FD;&#x6578;&#x3002;&#x7232;&#x4E86;&#x7BC0;&#x7701;&#x7A7A;&#x9593;&#xFF0C;&#x6709;&#x4E9B;&#x6642;&#x5019;&#x7684;&#x4F8B;&#x5B50;&#x6211;&#x5011;&#x6703;&#x7701;&#x7565;package&#x548C;import&#x8072;&#x660E;&#xFF0C;&#x4F46;&#x662F;&#x8B80;&#x8005;&#x9700;&#x8981;&#x8A3B;&#x610F;&#x9019;&#x4E9B;&#x8072;&#x660E;&#x662F;&#x4E00;&#x5B9A;&#x8981;&#x5305;&#x542B;&#x5728;&#x6E90;&#x6587;&#x4EF6;&#x91CC;&#x7684;&#x3002;</p>
<p>&#x4E00;&#x500B;&#x51FD;&#x6578;&#x7684;&#x8072;&#x660E;&#x5305;&#x542B;func&#x9019;&#x500B;&#x95DC;&#x9375;&#x5B57;&#x3001;&#x51FD;&#x6578;&#x540D;&#x3001;&#x53C3;&#x6578;&#x5217;&#x8868;(&#x6211;&#x5011;&#x4F8B;&#x5B50;&#x91CC;&#x7684;main&#x51FD;&#x6578;&#x662F;&#x7A7A;)&#x3001;&#x8FD4;&#x8FF4;&#x7D50;&#x679C;&#x5217;&#x8868;(&#x9019;&#x91CC;&#x7684;&#x4F8B;&#x5B50;&#x4E5F;&#x662F;&#x7A7A;)&#x4EE5;&#x53CA;&#x5305;&#x542B;&#x5728;&#x5927;&#x62EC;&#x865F;&#x91CC;&#x7684;&#x51FD;&#x6578;&#x9AD4;&#x3002;&#x95DC;&#x65BC;&#x51FD;&#x6578;&#x7684;&#x66F4;&#x8A73;&#x7D30;&#x63CF;&#x8FF0;&#x5728;&#x7B2C;&#x4E94;&#x7AE0;&#x3002;</p>
<p>Go&#x662F;&#x4E00;&#x9580;&#x4E0D;&#x9700;&#x8981;&#x5206;&#x865F;&#x4F5C;&#x7232;&#x8A9E;&#x53E5;&#x6216;&#x8005;&#x8072;&#x660E;&#x7D50;&#x675F;&#x7684;&#x8A9E;&#x8A00;&#xFF0C;&#x9664;&#x975E;&#x8981;&#x5728;&#x4E00;&#x884C;&#x4E2D;&#x5C07;&#x591A;&#x500B;&#x8A9E;&#x53E5;&#x3001;&#x8072;&#x660E;&#x9694;&#x958B;&#x3002;&#x7136;&#x800C;&#x5728;&#x7DE8;&#x8B6F;&#x6642;&#xFF0C;&#x7DE8;&#x8B6F;&#x5668;&#x6703;&#x4E3B;&#x52D5;&#x5728;&#x4E00;&#x4E9B;&#x7279;&#x5B9A;&#x7684;&#x7B26;&#x865F;(&#x8B6F;&#x8A3B;&#xFF1A;&#x6BD4;&#x5982;&#x884C;&#x672B;&#x662F;&#xFF0C;&#x4E00;&#x500B;&#x6A19;&#x8B58;&#x7B26;&#x3001;&#x4E00;&#x500B;&#x6574;&#x6578;&#x3001;&#x6D6E;&#x9EDE;&#x6578;&#x3001;&#x865B;&#x6578;&#x3001;&#x5B57;&#x7B26;&#x6216;&#x5B57;&#x7B26;&#x4E32;&#x6587;&#x5B57;&#x3001;&#x95DC;&#x9375;&#x5B57;break&#x3001;continue&#x3001;fallthrough&#x6216;return&#x4E2D;&#x7684;&#x4E00;&#x500B;&#x3001;&#x904B;&#x7B97;&#x7B26;&#x548C;&#x5206;&#x9694;&#x7B26;++&#x3001;--&#x3001;)&#x3001;]&#x6216;}&#x4E2D;&#x7684;&#x4E00;&#x500B;) &#x5F8C;&#x6DFB;&#x52A0;&#x5206;&#x865F;&#xFF0C;&#x6240;&#x4EE5;&#x5728;&#x54EA;&#x91CC;&#x52A0;&#x5206;&#x865F;&#x5408;&#x9069;&#x662F;&#x53D6;&#x6C7A;&#x65BC;Go&#x7684;&#x4EE3;&#x78BC;&#x7684;&#x3002;&#x4F8B;&#x5982;&#xFF1A;&#x5728;Go&#x8A9E;&#x8A00;&#x4E2D;&#x7684;&#x51FD;&#x6578;&#x8072;&#x660E;&#x548C; { &#x5FC5;&#x9B1A;&#x5728;&#x540C;&#x4E00;&#x884C;&#xFF0C;&#x800C;&#x5728;x + y&#x7684;&#x8868;&#x9054;&#x5F0F;&#x4E2D;&#xFF0C;&#x5728;+&#x865F;&#x5F8C;&#x63DB;&#x884C;&#x53EF;&#x4EE5;&#xFF0C;&#x4F46;&#x662F;&#x5728;+&#x865F;&#x524D;&#x63DB;&#x884C;&#x5247;&#x6703;&#x6709;&#x554F;&#x984C;&#x3002;</p>
<p>Go&#x8A9E;&#x8A00;&#x5728;&#x4EE3;&#x78BC;&#x683C;&#x5F0F;&#x4E0A;&#x91C7;&#x53D6;&#x4E86;&#x5F88;&#x5F37;&#x786C;&#x7684;&#x614B;&#x5EA6;&#x3002;gofmt&#x5DE5;&#x5177;&#x6703;&#x5C07;&#x4F60;&#x7684;&#x4EE3;&#x78BC;&#x683C;&#x5F0F;&#x5316;&#x7232;&#x6A19;&#x6E96;&#x683C;&#x5F0F;&#xFF0C;&#x4F75;&#x4E14;go&#x5DE5;&#x5177;&#x4E2D;&#x7684;fmt&#x5B50;&#x547D;&#x4EE4;&#x6703;&#x81EA;&#x52D5;&#x5C0D;&#x7279;&#x5B9A;package&#x4E0B;&#x7684;&#x6240;&#x6709;.go&#x6E90;&#x6587;&#x4EF6;&#x61C9;&#x7528;gofmt&#x3002;&#x5982;&#x679C;&#x4E0D;&#x6307;&#x5B9A;package&#xFF0C;&#x5247;&#x9ED8;&#x8A8D;&#x5C0D;&#x7576;&#x524D;&#x76EE;&#x9332;&#x4E0B;&#x7684;&#x6E90;&#x6587;&#x4EF6;&#x9032;&#x884C;&#x683C;&#x5F0F;&#x5316;&#x3002;&#x672C;&#x66F8;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x4EE3;&#x78BC;&#x5DF2;&#x7D93;&#x662F;&#x57F7;&#x884C;&#x904E;gofmt&#x5F8C;&#x7684;&#x6A19;&#x6E96;&#x683C;&#x5F0F;&#x4EE3;&#x78BC;&#x3002;&#x4F60;&#x61C9;&#x8A72;&#x5728;&#x81EA;&#x5DF1;&#x7684;&#x4EE3;&#x78BC;&#x4E0A;&#x4E5F;&#x57F7;&#x884C;&#x9019;&#x7A2E;&#x683C;&#x5F0F;&#x5316;&#x3002;&#x898F;&#x5B9A;&#x4E00;&#x7A2E;&#x6A19;&#x6E96;&#x7684;&#x4EE3;&#x78BC;&#x683C;&#x5F0F;&#x53EF;&#x4EE5;&#x898F;&#x907F;&#x6389;&#x7121;&#x76E1;&#x7684;&#x7121;&#x610F;&#x7FA9;&#x7684;&#x6495;&#x903C;&#x3002;&#x7576;&#x7136;&#x4E86;&#xFF0C;&#x4E5F;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x7531;&#x65BC;&#x4EE3;&#x78BC;&#x683C;&#x5F0F;&#x5C0E;&#x81F4;&#x7684;&#x908F;&#x8F2F;&#x4E0A;&#x7684;&#x6B67;&#x7FA9;&#x3002;</p>
Hello, &#x4E16;&#x754C;
</code></pre><p>&#x672C;&#x66F8;&#x4E2D;&#x6211;&#x5011;&#x6240;&#x6709;&#x7684;&#x4F8B;&#x5B50;&#x90FD;&#x505A;&#x4E86;&#x4E00;&#x500B;&#x7279;&#x6B8A;&#x6A19;&#x8A18;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x9019;&#x4E9B;&#x6A19;&#x8A18;&#x5728; <a href="http://gopl.io" target="_blank">http://gopl.io</a> &#x5728;&#x7DDA;&#x7DB2;&#x7AD9;&#x4E0A;&#x627E;&#x5230;&#x9019;&#x4E9B;&#x6A23;&#x4F8B;&#x4EE3;&#x78BC;&#xFF0C;&#x6BD4;&#x5982;&#x9019;&#x500B;</p>
<pre><code>gopl.io/ch1/helloworld
</code></pre><p>&#x5982;&#x679C;&#x4F60;&#x57F7;&#x884C; <code>go get gopl.io/ch1/helloworld</code> &#x547D;&#x4EE4;&#xFF0C;go&#x547D;&#x4EE4;&#x80FD;&#x5920;&#x81EA;&#x5DF1;&#x5F9E;&#x7DB2;&#x4E0A;&#x7A6B;&#x53D6;&#x5230;&#x9019;&#x4E9B;&#x4EE3;&#x78BC;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x9700;&#x8981;&#x5148;&#x5B89;&#x88DD;Git&#x6216;Hg&#x4E4B;&#x985E;&#x7684;&#x7248;&#x672C;&#x7BA1;&#x7406;&#x5DE5;&#x5177;&#xFF0C;&#x4F75;&#x5C07;&#x5C0D;&#x61C9;&#x7684;&#x547D;&#x4EE4;&#x6DFB;&#x52A0;&#x5230;PATH&#x74B0;&#x5883;&#x8B8A;&#x91CF;&#x4E2D;&#xFF09;&#xFF0C;&#x4F75;&#x4E14;&#x5C07;&#x9019;&#x4E9B;&#x4EE3;&#x78BC;&#x653E;&#x5230;&#x5C0D;&#x61C9;&#x7684;&#x76EE;&#x9332;&#x4E2D;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x5E8F;&#x8A00;&#x5DF2;&#x7D93;&#x63D0;&#x53CA;&#xFF0C;&#x9700;&#x8981;&#x5148;&#x8A2D;&#x7F6E;&#x597D;GOPATH&#x74B0;&#x5883;&#x8B8A;&#x91CF;&#xFF0C;&#x4E0B;&#x8F09;&#x7684;&#x4EE3;&#x78BC;&#x6703;&#x653E;&#x5728; $GOPATH/src/gopl.io/ch1/helloworld &#x76EE;&#x9332;&#xFF09;&#x3002;&#x66F4;&#x8A73;&#x7D30;&#x7684;&#x4ECB;&#x7D39;&#x5728;2.6&#x548C;10.7&#x7AE0;&#x7BC0;&#x4E2D;&#x3002;</p>
<p>&#x6211;&#x5011;&#x4F86;&#x8A0E;&#x8AD6;&#x4E00;&#x4E0B;&#x7A0B;&#x5E8F;&#x672C;&#x8EAB;&#x3002;Go&#x8A9E;&#x8A00;&#x7684;&#x4EE3;&#x78BC;&#x662F;&#x901A;&#x904E;package&#x4F86;&#x7D44;&#x7E54;&#x7684;&#xFF0C;package&#x7684;&#x6982;&#x5FF5;&#x548C;&#x4F60;&#x77E5;&#x9053;&#x7684;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x91CC;&#x7684;libraries&#x6216;&#x8005;modules&#x6982;&#x5FF5;&#x6BD4;&#x8F03;&#x985E;&#x4F3C;&#x3002;&#x4E00;&#x500B;package&#x6703;&#x5305;&#x542B;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;.go&#x7D50;&#x675F;&#x7684;&#x6E90;&#x4EE3;&#x78BC;&#x6587;&#x4EF6;&#x3002;&#x6BCF;&#x4E00;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x90FD;&#x662F;&#x4EE5;&#x4E00;&#x500B;package xxx&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x958B;&#x982D;&#x7684;&#xFF0C;&#x6BD4;&#x5982;&#x6211;&#x5011;&#x7684;&#x4F8B;&#x5B50;&#x91CC;&#x5C31;&#x662F;package main&#x3002;&#x9019;&#x884C;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x8868;&#x793A;&#x8A72;&#x6587;&#x4EF6;&#x662F;&#x5C6C;&#x65BC;&#x54EA;&#x4E00;&#x500B;package&#xFF0C;&#x7DCA;&#x8DDF;&#x7740;&#x662F;&#x4E00;&#x7E6B;&#x5217;import&#x7684;package&#x540D;&#xFF0C;&#x8868;&#x793A;&#x9019;&#x500B;&#x6587;&#x4EF6;&#x4E2D;&#x5F15;&#x5165;&#x7684;package&#x3002;&#x518D;&#x4E4B;&#x5F8C;&#x662F;&#x672C;&#x6587;&#x4EF6;&#x672C;&#x8EAB;&#x7684;&#x4EE3;&#x78BC;&#x3002;</p>
<p>Go&#x7684;&#x6A19;&#x6E96;&#x5EAB;&#x5DF2;&#x7D93;&#x63D0;&#x4F9B;&#x4E86;100&#x591A;&#x500B;package&#xFF0C;&#x7528;&#x4F86;&#x5B8C;&#x6210;&#x4E00;&#x9580;&#x7A0B;&#x5E8F;&#x8A9E;&#x8A00;&#x7684;&#x4E00;&#x4E9B;&#x5E38;&#x898B;&#x7684;&#x57FA;&#x672C;&#x4EFB;&#x52D9;&#xFF0C;&#x6BD4;&#x5982;&#x8F38;&#x5165;&#x3001;&#x8F38;&#x9F63;&#x3001;&#x6392;&#x5E8F;&#x6216;&#x8005;&#x5B57;&#x7B26;&#x4E32;/&#x6587;&#x672C;&#x8655;&#x7406;&#x3002;&#x6BD4;&#x5982;fmt&#x9019;&#x500B;package&#xFF0C;&#x5C31;&#x5305;&#x62EC;&#x63A5;&#x6536;&#x8F38;&#x5165;&#x3001;&#x683C;&#x5F0F;&#x5316;&#x8F38;&#x9F63;&#x7684;&#x5404;&#x7A2E;&#x51FD;&#x6578;&#x3002;Println&#x662F;&#x5176;&#x4E2D;&#x7684;&#x4E00;&#x500B;&#x5E38;&#x7528;&#x7684;&#x51FD;&#x6578;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x9019;&#x500B;&#x51FD;&#x6578;&#x4F86;&#x6253;&#x5370;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;&#x503C;&#xFF0C;&#x8A72;&#x51FD;&#x6578;&#x6703;&#x5C07;&#x9019;&#x4E9B;&#x53C3;&#x6578;&#x7528;&#x7A7A;&#x683C;&#x9694;&#x958B;&#x9032;&#x884C;&#x8F38;&#x9F63;&#xFF0C;&#x4F75;&#x5728;&#x8F38;&#x9F63;&#x5B8C;&#x7562;&#x4E4B;&#x5F8C;&#x5728;&#x884C;&#x672B;&#x52A0;&#x4E0A;&#x4E00;&#x500B;&#x63DB;&#x884C;&#x7B26;&#x3002;</p>
<p>package main&#x662F;&#x4E00;&#x500B;&#x6BD4;&#x8F03;&#x7279;&#x6B8A;&#x7684;package&#x3002;&#x9019;&#x500B;package&#x91CC;&#x6703;&#x5B9A;&#x7FA9;&#x4E00;&#x500B;&#x7368;&#x7ACB;&#x7684;&#x7A0B;&#x5E8F;&#xFF0C;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x662F;&#x53EF;&#x4EE5;&#x904B;&#x884C;&#x7684;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x50CF;&#x5176;&#x5B83;package&#x4E00;&#x6A23;&#x5C0D;&#x61C9;&#x4E00;&#x500B;library&#x3002;&#x5728;main&#x9019;&#x500B;package&#x91CC;&#xFF0C;main&#x51FD;&#x6578;&#x4E5F;&#x662F;&#x4E00;&#x500B;&#x7279;&#x6B8A;&#x7684;&#x51FD;&#x6578;&#xFF0C;&#x9019;&#x662F;&#x6211;&#x5011;&#x6574;&#x500B;&#x7A0B;&#x5E8F;&#x7684;&#x5165;&#x53E3;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x5176;&#x5BE6;C&#x7E6B;&#x8A9E;&#x8A00;&#x5DEE;&#x4E0D;&#x591A;&#x90FD;&#x662F;&#x9019;&#x6A23;&#xFF09;&#x3002;main&#x51FD;&#x6578;&#x6240;&#x505A;&#x7684;&#x4E8B;&#x60C5;&#x5C31;&#x662F;&#x6211;&#x5011;&#x7A0B;&#x5E8F;&#x505A;&#x7684;&#x4E8B;&#x60C5;&#x3002;&#x7576;&#x7136;&#x4E86;&#xFF0C;main&#x51FD;&#x6578;&#x4E00;&#x822C;&#x662F;&#x901A;&#x904E;&#x662F;&#x8ABF;&#x7528;&#x5176;&#x5B83;packge&#x91CC;&#x7684;&#x51FD;&#x6578;&#x4F86;&#x5B8C;&#x6210;&#x81EA;&#x5DF1;&#x7684;&#x5DE5;&#x4F5C;&#xFF0C;&#x6BD4;&#x5982;fmt.Println&#x3002;</p>
<p>&#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x544A;&#x8A34;&#x7DE8;&#x8B6F;&#x5668;&#x5982;&#x4F55;&#x8981;&#x6B63;&#x78BA;&#x5730;&#x57F7;&#x884C;&#x9019;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#xFF0C;&#x9700;&#x8981;&#x7528;&#x5230;&#x54EA;&#x4E9B;package&#xFF0C;&#x9019;&#x5C31;&#x662F;import&#x5728;&#x9019;&#x500B;&#x6587;&#x4EF6;&#x91CC;&#x626E;&#x6F14;&#x7684;&#x89D2;&#x8272;&#x3002;&#x4E0A;&#x8FF0;&#x7684;hello world&#x4F8B;&#x5B50;&#x96BB;&#x7528;&#x5230;&#x4E86;&#x4E00;&#x500B;&#x5176;&#x5B83;&#x7684;package&#xFF0C;&#x5C31;&#x662F;fmt&#x3002;&#x4E00;&#x822C;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x9700;&#x8981;import&#x7684;package&#x53EF;&#x80FD;&#x4E0D;&#x96BB;&#x4E00;&#x500B;&#x3002;</p>
<p>&#x9019;&#x4E5F;&#x6B63;&#x662F;&#x56E0;&#x7232;go&#x8A9E;&#x8A00;&#x5FC5;&#x9B1A;&#x5F15;&#x5165;&#x6240;&#x6709;&#x8981;&#x7528;&#x5230;&#x7684;package&#x7684;&#x539F;&#x5247;&#xFF0C;&#x5047;&#x5982;&#x4F60;&#x6C92;&#x6709;&#x5728;&#x4EE3;&#x78BC;&#x91CC;import&#x9700;&#x8981;&#x7528;&#x5230;&#x7684;package&#xFF0C;&#x7A0B;&#x5E8F;&#x5C07;&#x7121;&#x6CD5;&#x7DE8;&#x8B6F;&#x901A;&#x904E;&#xFF0C;&#x540C;&#x6642;&#x7576;&#x4F60;import&#x4E86;&#x6C92;&#x6709;&#x7528;&#x5230;&#x7684;package&#xFF0C;&#x4E5F;&#x6703;&#x7121;&#x6CD5;&#x7DE8;&#x8B6F;&#x901A;&#x904E;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;Go&#x8A9E;&#x8A00;&#x7DE8;&#x8B6F;&#x904E;&#x7A0B;&#x6C92;&#x6709;&#x8B66;&#x544A;&#x4FE1;&#x606F;&#xFF0C;&#x722D;&#x8B70;&#x7279;&#x6027;&#x4E4B;&#x4E00;&#xFF09;&#x3002;</p>
<p>import&#x8072;&#x660E;&#x5FC5;&#x9B1A;&#x8DDF;&#x5728;&#x6587;&#x4EF6;&#x7684;package&#x8072;&#x660E;&#x4E4B;&#x5F8C;&#x3002;&#x5728;import&#x8A9E;&#x53E5;&#x4E4B;&#x5F8C;&#xFF0C;&#x5247;&#x662F;&#x5404;&#x7A2E;&#x65B9;&#x6CD5;&#x3001;&#x8B8A;&#x91CF;&#x3001;&#x5E38;&#x91CF;&#x3001;&#x985E;&#x578B;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;(&#x5206;&#x522B;&#x7528;&#x95DC;&#x9375;&#x5B57;func, var, const, type&#x4F86;&#x9032;&#x884C;&#x5B9A;&#x7FA9;)&#x3002;&#x9019;&#x4E9B;&#x5167;&#x5BB9;&#x7684;&#x8072;&#x660E;&#x9806;&#x5E8F;&#x4F75;&#x6C92;&#x6709;&#x4EC0;&#x9EBD;&#x898F;&#x5B9A;&#xFF0C;&#x53EF;&#x4EE5;&#x96A8;&#x4FBF;&#x8ABF;&#x6574;&#x9806;&#x5E8F;(&#x8B6F;&#x8A3B;&#xFF1A;&#x6700;&#x597D;&#x9084;&#x662F;&#x5B9A;&#x4E00;&#x4E0B;&#x898F;&#x8303;)&#x3002;&#x6211;&#x5011;&#x4F8B;&#x5B50;&#x91CC;&#x7684;&#x7A0B;&#x5E8F;&#x6BD4;&#x8F03;&#x7C21;&#x55AE;&#xFF0C;&#x96BB;&#x5305;&#x542B;&#x4E86;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x3002;&#x4F75;&#x4E14;&#x5728;&#x8A72;&#x51FD;&#x6578;&#x91CC;&#x4E5F;&#x96BB;&#x8ABF;&#x7528;&#x4E86;&#x4E00;&#x500B;&#x5176;&#x5B83;&#x51FD;&#x6578;&#x3002;&#x7232;&#x4E86;&#x7BC0;&#x7701;&#x7A7A;&#x9593;&#xFF0C;&#x6709;&#x4E9B;&#x6642;&#x5019;&#x7684;&#x4F8B;&#x5B50;&#x6211;&#x5011;&#x6703;&#x7701;&#x7565;package&#x548C;import&#x8072;&#x660E;&#xFF0C;&#x4F46;&#x662F;&#x8B80;&#x8005;&#x9700;&#x8981;&#x8A3B;&#x610F;&#x9019;&#x4E9B;&#x8072;&#x660E;&#x662F;&#x4E00;&#x5B9A;&#x8981;&#x5305;&#x542B;&#x5728;&#x6E90;&#x6587;&#x4EF6;&#x91CC;&#x7684;&#x3002;</p>
<p>&#x4E00;&#x500B;&#x51FD;&#x6578;&#x7684;&#x8072;&#x660E;&#x5305;&#x542B;func&#x9019;&#x500B;&#x95DC;&#x9375;&#x5B57;&#x3001;&#x51FD;&#x6578;&#x540D;&#x3001;&#x53C3;&#x6578;&#x5217;&#x8868;&#x3001;&#x8FD4;&#x8FF4;&#x7D50;&#x679C;&#x5217;&#x8868;&#xFF08;&#x6211;&#x5011;&#x4F8B;&#x5B50;&#x91CC;&#x7684;main&#x51FD;&#x6578;&#x53C3;&#x6578;&#x5217;&#x8868;&#x548C;&#x8FD4;&#x8FF4;&#x503C;&#x90FD;&#x662F;&#x7A7A;&#x7684;&#xFF09;&#x4EE5;&#x53CA;&#x5305;&#x542B;&#x5728;&#x5927;&#x62EC;&#x865F;&#x91CC;&#x7684;&#x51FD;&#x6578;&#x9AD4;&#x3002;&#x95DC;&#x65BC;&#x51FD;&#x6578;&#x7684;&#x66F4;&#x8A73;&#x7D30;&#x63CF;&#x8FF0;&#x5728;&#x7B2C;&#x4E94;&#x7AE0;&#x3002;</p>
<p>Go&#x8A9E;&#x8A00;&#x662F;&#x4E00;&#x9580;&#x4E0D;&#x9700;&#x8981;&#x5206;&#x865F;&#x4F5C;&#x7232;&#x8A9E;&#x53E5;&#x6216;&#x8005;&#x8072;&#x660E;&#x7D50;&#x675F;&#x7684;&#x8A9E;&#x8A00;&#xFF0C;&#x9664;&#x975E;&#x8981;&#x5728;&#x4E00;&#x884C;&#x4E2D;&#x5C07;&#x591A;&#x500B;&#x8A9E;&#x53E5;&#x3001;&#x8072;&#x660E;&#x9694;&#x958B;&#x3002;&#x7136;&#x800C;&#x5728;&#x7DE8;&#x8B6F;&#x6642;&#xFF0C;&#x7DE8;&#x8B6F;&#x5668;&#x6703;&#x4E3B;&#x52D5;&#x5728;&#x4E00;&#x4E9B;&#x7279;&#x5B9A;&#x7684;&#x7B26;&#x865F;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x6BD4;&#x5982;&#x884C;&#x672B;&#x662F;&#xFF0C;&#x4E00;&#x500B;&#x6A19;&#x8B58;&#x7B26;&#x3001;&#x4E00;&#x500B;&#x6574;&#x6578;&#x3001;&#x6D6E;&#x9EDE;&#x6578;&#x3001;&#x865B;&#x6578;&#x3001;&#x5B57;&#x7B26;&#x6216;&#x5B57;&#x7B26;&#x4E32;&#x6587;&#x5B57;&#x3001;&#x95DC;&#x9375;&#x5B57;break&#x3001;continue&#x3001;fallthrough&#x6216;return&#x4E2D;&#x7684;&#x4E00;&#x500B;&#x3001;&#x904B;&#x7B97;&#x7B26;&#x548C;&#x5206;&#x9694;&#x7B26;++&#x3001;--&#x3001;)&#x3001;]&#x6216;}&#x4E2D;&#x7684;&#x4E00;&#x500B;&#xFF09; &#x5F8C;&#x6DFB;&#x52A0;&#x5206;&#x865F;&#xFF0C;&#x6240;&#x4EE5;&#x5728;&#x54EA;&#x91CC;&#x52A0;&#x5206;&#x865F;&#x5408;&#x9069;&#x662F;&#x53D6;&#x6C7A;&#x65BC;Go&#x8A9E;&#x8A00;&#x4EE3;&#x78BC;&#x7684;&#x3002;&#x4F8B;&#x5982;&#xFF1A;&#x5728;Go&#x8A9E;&#x8A00;&#x4E2D;&#x7684;&#x51FD;&#x6578;&#x8072;&#x660E;&#x548C; { &#x5927;&#x62EC;&#x865F;&#x5FC5;&#x9B1A;&#x5728;&#x540C;&#x4E00;&#x884C;&#xFF0C;&#x800C;&#x5728;x + y&#x9019;&#x6A23;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x4E2D;&#xFF0C;&#x5728;+&#x865F;&#x5F8C;&#x63DB;&#x884C;&#x53EF;&#x4EE5;&#xFF0C;&#x4F46;&#x662F;&#x5728;+&#x865F;&#x524D;&#x63DB;&#x884C;&#x5247;&#x6703;&#x6709;&#x554F;&#x984C;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x4EE5;+&#x7D50;&#x5C3E;&#x7684;&#x8A71;&#x4E0D;&#x6703;&#x88AB;&#x63D2;&#x5165;&#x5206;&#x865F;&#x5206;&#x9694;&#x7B26;&#xFF0C;&#x4F46;&#x662F;&#x4EE5;x&#x7D50;&#x5C3E;&#x7684;&#x8A71;&#x5247;&#x6703;&#x88AB;&#x5206;&#x865F;&#x5206;&#x9694;&#x7B26;&#xFF0C;&#x5F9E;&#x800C;&#x5C0E;&#x81F4;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;&#xFF09;&#x3002;</p>
<p>Go&#x8A9E;&#x8A00;&#x5728;&#x4EE3;&#x78BC;&#x683C;&#x5F0F;&#x4E0A;&#x91C7;&#x53D6;&#x4E86;&#x5F88;&#x5F37;&#x786C;&#x7684;&#x614B;&#x5EA6;&#x3002;gofmt&#x5DE5;&#x5177;&#x6703;&#x5C07;&#x4F60;&#x7684;&#x4EE3;&#x78BC;&#x683C;&#x5F0F;&#x5316;&#x7232;&#x6A19;&#x6E96;&#x683C;&#x5F0F;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x9019;&#x500B;&#x683C;&#x5F0F;&#x5316;&#x5DE5;&#x5177;&#x6C92;&#x6709;&#x4EFB;&#x4F55;&#x53EF;&#x4EE5;&#x8ABF;&#x6574;&#x4EE3;&#x78BC;&#x683C;&#x5F0F;&#x7684;&#x53C3;&#x6578;&#xFF0C;Go&#x8A9E;&#x8A00;&#x5C31;&#x662F;&#x9019;&#x9EBD;&#x4EFB;&#x6027;&#xFF09;&#xFF0C;&#x4F75;&#x4E14;go&#x5DE5;&#x5177;&#x4E2D;&#x7684;fmt&#x5B50;&#x547D;&#x4EE4;&#x6703;&#x81EA;&#x52D5;&#x5C0D;&#x7279;&#x5B9A;package&#x4E0B;&#x7684;&#x6240;&#x6709;.go&#x6E90;&#x6587;&#x4EF6;&#x61C9;&#x7528;gofmt&#x5DE5;&#x5177;&#x683C;&#x5F0F;&#x5316;&#x3002;&#x5982;&#x679C;&#x4E0D;&#x6307;&#x5B9A;package&#xFF0C;&#x5247;&#x9ED8;&#x8A8D;&#x5C0D;&#x7576;&#x524D;&#x76EE;&#x9332;&#x4E0B;&#x7684;&#x6E90;&#x6587;&#x4EF6;&#x9032;&#x884C;&#x683C;&#x5F0F;&#x5316;&#x3002;&#x672C;&#x66F8;&#x4E2D;&#x7684;&#x6240;&#x6709;&#x4EE3;&#x78BC;&#x5DF2;&#x7D93;&#x662F;&#x57F7;&#x884C;&#x904E;gofmt&#x5F8C;&#x7684;&#x6A19;&#x6E96;&#x683C;&#x5F0F;&#x4EE3;&#x78BC;&#x3002;&#x4F60;&#x61C9;&#x8A72;&#x5728;&#x81EA;&#x5DF1;&#x7684;&#x4EE3;&#x78BC;&#x4E0A;&#x4E5F;&#x57F7;&#x884C;&#x9019;&#x7A2E;&#x683C;&#x5F0F;&#x5316;&#x3002;&#x898F;&#x5B9A;&#x4E00;&#x7A2E;&#x6A19;&#x6E96;&#x7684;&#x4EE3;&#x78BC;&#x683C;&#x5F0F;&#x53EF;&#x4EE5;&#x898F;&#x907F;&#x6389;&#x7121;&#x76E1;&#x7684;&#x7121;&#x610F;&#x7FA9;&#x7684;&#x6495;&#x903C;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x4E5F;&#x5C0E;&#x81F4;&#x4E86;Go&#x8A9E;&#x8A00;&#x7684;TIOBE&#x6392;&#x540D;&#x8F03;&#x4F4E;&#xFF0C;&#x56E0;&#x7232;&#x7F3A;&#x5C11;&#x6495;&#x903C;&#x7684;&#x8A71;&#x984C;&#xFF09;&#x3002;&#x7576;&#x7136;&#x4E86;&#xFF0C;&#x9019;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x7531;&#x65BC;&#x4EE3;&#x78BC;&#x683C;&#x5F0F;&#x5C0E;&#x81F4;&#x7684;&#x908F;&#x8F2F;&#x4E0A;&#x7684;&#x6B67;&#x7FA9;&#x3002;</p>
<p>&#x5F88;&#x591A;&#x6587;&#x672C;&#x7DE8;&#x8F2F;&#x5668;&#x90FD;&#x53EF;&#x4EE5;&#x8A2D;&#x7F6E;&#x7232;&#x4FDD;&#x5B58;&#x6587;&#x4EF6;&#x6642;&#x81EA;&#x52D5;&#x57F7;&#x884C;gofmt&#xFF0C;&#x6240;&#x4EE5;&#x4F60;&#x7684;&#x6E90;&#x4EE3;&#x78BC;&#x61C9;&#x8A72;&#x7E3D;&#x662F;&#x6703;&#x88AB;&#x683C;&#x5F0F;&#x5316;&#x3002;&#x9019;&#x91CC;&#x9084;&#x6709;&#x4E00;&#x500B;&#x76F8;&#x95DC;&#x7684;&#x5DE5;&#x5177;&#xFF0C;goimports&#xFF0C;&#x6703;&#x81EA;&#x52D5;&#x5730;&#x6DFB;&#x52A0;&#x4F60;&#x4EE3;&#x78BC;&#x91CC;&#x9700;&#x8981;&#x7528;&#x5230;&#x7684;import&#x8072;&#x660E;&#x4EE5;&#x53CA;&#x9700;&#x8981;&#x79FB;&#x9664;&#x7684;import&#x8072;&#x660E;&#x3002;&#x9019;&#x500B;&#x5DE5;&#x5177;&#x4F75;&#x6C92;&#x6709;&#x5305;&#x542B;&#x5728;&#x6A19;&#x6E96;&#x7684;&#x5206;&#x767C;&#x5305;&#x4E2D;&#xFF0C;&#x7136;&#x800C;&#x4F60;&#x53EF;&#x4EE5;&#x81EA;&#x884C;&#x5B89;&#x88DD;&#xFF1A;</p>
<pre><code>$ go get golang.org/x/tools/cmd/goimports
</code></pre><p>&#x5C0D;&#x65BC;&#x5927;&#x591A;&#x6578;&#x7528;&#x6236;&#x4F86;&#x8AAC;&#xFF0C;&#x4E0B;&#x8F09;&#x3001;build package&#x3001;&#x904B;&#x884C;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#x3001;&#x986F;&#x793A;go&#x7684;&#x6587;&#x6A94;&#x7B49;&#x7B49;&#x5E38;&#x7528;&#x529F;&#x80FD;&#x90FD;&#x662F;&#x53EF;&#x4EE5;&#x7528;go&#x7684;&#x5DE5;&#x5177;&#x4F86;&#x5BE6;&#x73FE;&#x7684;&#x3002;&#x9019;&#x4E9B;&#x5DE5;&#x5177;&#x7684;&#x8A73;&#x7D30;&#x4ECB;&#x7D39;&#x6211;&#x5011;&#x6703;&#x5728;10.7&#x7BC0;&#x4E2D;&#x63D0;&#x5230;&#x3002;</p>
</code></pre><p>&#x5C0D;&#x65BC;&#x5927;&#x591A;&#x6578;&#x7528;&#x6236;&#x4F86;&#x8AAC;&#xFF0C;&#x4E0B;&#x8F09;&#x3001;build package&#x3001;&#x904B;&#x884C;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#x3001;&#x986F;&#x793A;Go&#x8A9E;&#x8A00;&#x7684;&#x6587;&#x6A94;&#x7B49;&#x7B49;&#x5E38;&#x7528;&#x529F;&#x80FD;&#x90FD;&#x662F;&#x53EF;&#x4EE5;&#x7528;go&#x7684;&#x5DE5;&#x5177;&#x4F86;&#x5BE6;&#x73FE;&#x7684;&#x3002;&#x9019;&#x4E9B;&#x5DE5;&#x5177;&#x7684;&#x8A73;&#x7D30;&#x4ECB;&#x7D39;&#x6211;&#x5011;&#x6703;&#x5728;10.7&#x7BC0;&#x4E2D;&#x63D0;&#x5230;&#x3002;</p>
</section>

View File

@@ -48,7 +48,7 @@
<body>
<div class="book" data-level="1.2" data-chapter-title="命令行參數" data-filepath="ch1/ch1-02.md" data-basepath=".." data-revision="Mon Dec 21 2015 12:51:02 GMT+0800 (中国标准时间)">
<div class="book" data-level="1.2" data-chapter-title="命令行參數" data-filepath="ch1/ch1-02.md" data-basepath=".." data-revision="Thu Dec 24 2015 14:42:02 GMT+0800 (中国标准时间)">
<div class="book-summary">
@@ -1975,16 +1975,16 @@
</li>
<li class="chapter " data-level="14" data-path="errata.html">
<li class="chapter " data-level="14" data-path="CONTRIBUTORS.html">
<a href="../errata.html">
<a href="../CONTRIBUTORS.html">
<i class="fa fa-check"></i>
<b>14.</b>
勘誤
附録
</a>
@@ -2025,49 +2025,51 @@
<h2 id="12-&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;">1.2. &#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;</h2>
<p>&#x5927;&#x591A;&#x6578;&#x7684;&#x7A0B;&#x5E8F;&#x90FD;&#x662F;&#x8655;&#x7406;&#x8F38;&#x5165;&#xFF0C;&#x7523;&#x751F;&#x8F38;&#x9F63;&#xFF1B;&#x9019;&#x4E5F;&#x6B63;&#x662F;&#x201C;&#x8A08;&#x7B97;&#x201D;&#x7684;&#x5B9A;&#x7FA9;&#x3002;&#x4F46;&#x662F;&#x4E00;&#x500B;&#x7A0B;&#x5E8F;&#x8981;&#x5982;&#x4F55;&#x7A6B;&#x53D6;&#x8F38;&#x5165;&#x5462;&#xFF1F;&#x4E00;&#x4E9B;&#x7A0B;&#x5E8F;&#x6703;&#x751F;&#x6210;&#x81EA;&#x5DF1;&#x7684;&#x6578;&#x64DA;&#xFF0C;&#x4F46;&#x901A;&#x5E38;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x8F38;&#x5165;&#x90FD;&#x4F86;&#x81EA;&#x65BC;&#x7A0B;&#x5E8F;&#x5916;&#x90E8;&#xFF1A;&#x6BD4;&#x5982;&#x6587;&#x4EF6;&#x3001;&#x7DB2;&#x7D61;&#x9023;&#x63A5;&#x3001;&#x5176;&#x5B83;&#x7A0B;&#x5E8F;&#x7684;&#x8F38;&#x9F63;&#x3001;&#x7528;&#x6236;&#x7684;&#x9375;&#x76E4;&#x3001;&#x547D;&#x4EE4;&#x884C;&#x7684;&#x53C3;&#x6578;&#x6216;&#x5176;&#x5B83;&#x985E;&#x4F3C;&#x8F38;&#x5165;&#x6E90;&#x3002;&#x4E0B;&#x9762;&#x5E7E;&#x500B;&#x4F8B;&#x5B50;&#x6703;&#x8A0E;&#x8AD6;&#x5176;&#x4E2D;&#x7684;&#x4E00;&#x4E9B;&#x8F38;&#x5165;&#x985E;&#x578B;&#xFF0C;&#x9996;&#x5148;&#x662F;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#x3002;</p>
<p>os&#x9019;&#x500B;package&#x63D0;&#x4F9B;&#x4E86;&#x64CD;&#x4F5C;&#x7E6B;&#x7D71;&#x7121;&#x95DC;(&#x8DE8;&#x5E73;&#x98B1;)&#x7684;&#xFF0C;&#x8207;&#x7E6B;&#x7D71;&#x4EA4;&#x4E92;&#x7684;&#x4E00;&#x4E9B;&#x51FD;&#x6578;&#x548C;&#x76F8;&#x95DC;&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x904B;&#x884C;&#x6642;&#x7A0B;&#x5E8F;&#x7684;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#x53EF;&#x4EE5;&#x7528;&#x4E00;&#x500B;&#x53EB;os&#x5305;&#x4E2D;&#x7684;Args&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x4F86;&#x7A6B;&#x53D6;&#xFF1B;&#x5728;&#x5916;&#x90E8;&#x9700;&#x8981;&#x4F7F;&#x7528;&#x8A72;&#x8B8A;&#x91CF;&#x6642;&#xFF0C;&#x9700;&#x8981;&#x7528;os.Args&#x4F86;&#x8A2A;&#x554F;&#x3002;</p>
<p>os.Args&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x662F;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;(string)&#x7684;slice&#xFF0C;slice&#x5728;go&#x8A9E;&#x8A00;&#x91CC;&#x662F;&#x4E00;&#x500B;&#x57FA;&#x790E;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#xFF0C;&#x4E4B;&#x5F8C;&#x6211;&#x5011;&#x5F88;&#x5FEB;&#x6703;&#x63D0;&#x5230;&#x3002;&#x73FE;&#x5728;&#x53EF;&#x4EE5;&#x5148;&#x628A;slice&#x7576;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x5143;&#x7D20;&#x5E8F;&#x5217;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x985E;&#x4F3C;s[i]&#x7684;&#x4E0B;&#x6A19;&#x8A2A;&#x554F;&#x5F62;&#x5F0F;&#x7A6B;&#x53D6;&#x5176;&#x5167;&#x5BB9;&#xFF0C;&#x4F75;&#x4E14;&#x53EF;&#x4EE5;&#x7528;&#x5F62;&#x5982;s[m:n]&#x7684;&#x5F62;&#x5F0F;&#x4F86;&#x7A6B;&#x53D6;&#x5230;&#x4E00;&#x500B;slice&#x7684;&#x5B50;&#x96C6;(&#x8B6F;&#x8A3B;&#xFF1A;&#x548C;python&#x91CC;&#x7684;&#x5DEE;&#x4E0D;&#x591A;)&#x3002;&#x5176;&#x9577;&#x5EA6;&#x53EF;&#x4EE5;&#x7528;len(s)&#x51FD;&#x6578;&#x4F86;&#x7A6B;&#x53D6;&#x3002;&#x548C;&#x5176;&#x5B83;&#x5927;&#x591A;&#x6578;&#x8A9E;&#x8A00;&#x5DEE;&#x4E0D;&#x591A;&#xFF0C;go&#x8A9E;&#x8A00;&#x91CC;&#x7684;&#x9019;&#x7A2E;&#x7D22;&#x5F15;&#x5F62;&#x5F0F;&#x4E5F;&#x91C7;&#x7528;&#x4E86;&#x958B;&#x5340;&#x9593;&#xFF0C;&#x5305;&#x62EC;m~n&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x4F46;&#x4E0D;&#x5305;&#x62EC;&#x6700;&#x5F8C;&#x90A3;&#x500B;&#x5143;&#x7D20;(&#x8B6F;&#x8A3B;&#xFF1A;&#x6BD4;&#x5982;a = [1, 2, 3, 4, 5], a[0: 3] =[1, 2, 3]&#xFF0C;&#x4E0D;&#x5305;&#x542B;&#x6700;&#x5F8C;&#x4E00;&#x500B;&#x5143;&#x7D20;)&#x3002;&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x7C21;&#x5316;&#x6211;&#x5011;&#x7684;&#x908F;&#x8F2F;&#x3002;&#x6BD4;&#x5982;s[m:n]&#x9019;&#x500B;slice&#xFF0C;0 &#x2264; m &#x2264; n &#x2264; len(s)&#xFF0C;&#x5305;&#x542B;n-m&#x500B;&#x5143;&#x7D20;&#x3002;</p>
<p>os.Args&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x537D;os.Args[0]&#x662F;&#x547D;&#x4EE4;&#x884C;&#x57F7;&#x884C;&#x6642;&#x7684;&#x547D;&#x4EE4;&#x672C;&#x8EAB;&#xFF1B;&#x5176;&#x5B83;&#x7684;&#x5143;&#x7D20;&#x5247;&#x662F;&#x57F7;&#x884C;&#x8A72;&#x547D;&#x4EE4;&#x6642;&#x50B3;&#x7D66;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x7684;&#x53C3;&#x6578;&#x3002;&#x524D;&#x9762;&#x63D0;&#x5230;&#x7684;&#x5207;&#x7247;&#x8868;&#x9054;&#x5F0F;&#xFF0C;s[m:n]&#x6703;&#x8FD4;&#x8FF4;&#x7B2C;m&#x5230;&#x7B2C;n-1&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x6240;&#x4EE5;&#x4E0B;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#x91CC;&#x9700;&#x8981;&#x7528;&#x5230;&#x7684;os.Args[1:len(os.Args)]&#x537D;&#x662F;&#x9664;&#x4E86;&#x547D;&#x4EE4;&#x672C;&#x8EAB;&#x5916;&#x7684;&#x6240;&#x6709;&#x50B3;&#x5165;&#x53C3;&#x6578;&#x3002;&#x5982;&#x679C;&#x6211;&#x5011;&#x7701;&#x7565;s[m:n]&#x91CC;&#x7684;m&#x548C;n&#xFF0C;&#x90A3;&#x9EBD;&#x9ED8;&#x8A8D;&#x9019;&#x500B;&#x8868;&#x9054;&#x5F0F;&#x6703;&#x586B;&#x5165;0:len(s)&#xFF0C;&#x6240;&#x4EE5;&#x9019;&#x91CC;&#x6211;&#x5011;&#x9084;&#x53EF;&#x4EE5;&#x7701;&#x7565;&#x6389;n&#xFF0C;&#x5BEB;os.Args[1:]&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x662F;&#x4E00;&#x500B;Unix&#x91CC;echo&#x547D;&#x4EE4;&#x7684;&#x5BE6;&#x73FE;&#xFF0C;&#x9019;&#x500B;&#x547D;&#x4EE4;&#x6703;&#x5728;&#x55AE;&#x884C;&#x5167;&#x6253;&#x5370;&#x9F63;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;import&#x4E86;&#x5169;&#x500B;package&#xFF0C;&#x4F75;&#x4E14;&#x7528;&#x62EC;&#x865F;&#x628A;&#x9019;&#x5169;&#x500B;package&#x5305;&#x4E86;&#x8D77;&#x4F86;&#xFF0C;&#x9019;&#x662F;&#x5206;&#x522B;import&#x5404;&#x500B;package&#x8072;&#x660E;&#x7684;&#x7C21;&#x5316;&#x5BEB;&#x6CD5;&#x3002;&#x7576;&#x7136;&#x4E86;&#x4F60;&#x5206;&#x958B;&#x4F86;&#x5BEB;import&#x4E5F;&#x6C92;&#x6709;&#x4EC0;&#x9EBD;&#x554F;&#x984C;&#xFF0C;&#x96BB;&#x662F;&#x4E00;&#x822C;&#x7232;&#x4E86;&#x65B9;&#x4FBF;&#x6211;&#x5011;&#x90FD;&#x6703;&#x50CF;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#x4F86;&#x5C0E;&#x5165;&#x591A;&#x500B;package&#x3002;&#x6211;&#x5011;&#x81EA;&#x5DF1;&#x5BEB;&#x7684;&#x5C0E;&#x5165;&#x9806;&#x5E8F;&#x4F75;&#x4E0D;&#x91CD;&#x8981;&#xFF0C;&#x56E0;&#x7232;gofmt&#x5DE5;&#x5177;&#x6703;&#x5E6B;&#x52A9;&#x6211;&#x5011;&#x6309;&#x7167;&#x5B57;&#x6BCD;&#x9806;&#x5E8F;&#x4F86;&#x6392;&#x5217;&#x597D;&#x9019;&#x4E9B;&#x5C0E;&#x5165;&#x5305;&#x540D;&#x3002;(&#x672C;&#x66F8;&#x4E2D;&#x5982;&#x679C;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#x6709;&#x591A;&#x7A2E;&#x7248;&#x672C;&#x6642;&#xFF0C;&#x6211;&#x5011;&#x6703;&#x7528;&#x7DE8;&#x865F;&#x6A19;&#x8A18;&#x9F63;&#x4F86;)</p>
<p>os&#x9019;&#x500B;package&#x63D0;&#x4F9B;&#x4E86;&#x64CD;&#x4F5C;&#x7E6B;&#x7D71;&#x7121;&#x95DC;&#xFF08;&#x8DE8;&#x5E73;&#x98B1;&#xFF09;&#x7684;&#xFF0C;&#x8207;&#x7E6B;&#x7D71;&#x4EA4;&#x4E92;&#x7684;&#x4E00;&#x4E9B;&#x51FD;&#x6578;&#x548C;&#x76F8;&#x95DC;&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x904B;&#x884C;&#x6642;&#x7A0B;&#x5E8F;&#x7684;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#x53EF;&#x4EE5;&#x901A;&#x904E;os&#x5305;&#x4E2D;&#x4E00;&#x500B;&#x53EB;Args&#x7684;&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x4F86;&#x7A6B;&#x53D6;&#xFF1B;&#x7576;&#x5728;os&#x5305;&#x5916;&#x90E8;&#x4F7F;&#x7528;&#x8A72;&#x8B8A;&#x91CF;&#x6642;&#xFF0C;&#x9700;&#x8981;&#x7528;os.Args&#x4F86;&#x8A2A;&#x554F;&#x3002;</p>
<p>os.Args&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x662F;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#xFF08;string&#xFF09;&#x7684;slice&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;slice&#x548C;Python&#x8A9E;&#x8A00;&#x4E2D;&#x7684;&#x5207;&#x7247;&#x985E;&#x4F3C;&#xFF0C;&#x662F;&#x4E00;&#x500B;&#x7C21;&#x7248;&#x7684;&#x52D5;&#x614B;&#x6578;&#x7D44;&#xFF09;&#xFF0C;slice&#x5728;Go&#x8A9E;&#x8A00;&#x91CC;&#x662F;&#x4E00;&#x500B;&#x57FA;&#x790E;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#xFF0C;&#x4E4B;&#x5F8C;&#x6211;&#x5011;&#x5F88;&#x5FEB;&#x6703;&#x63D0;&#x5230;&#x3002;&#x73FE;&#x5728;&#x53EF;&#x4EE5;&#x5148;&#x628A;slice&#x7576;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x5143;&#x7D20;&#x5E8F;&#x5217;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x985E;&#x4F3C;s[i]&#x7684;&#x4E0B;&#x6A19;&#x8A2A;&#x554F;&#x5F62;&#x5F0F;&#x7A6B;&#x53D6;&#x5176;&#x5167;&#x5BB9;&#xFF0C;&#x4F75;&#x4E14;&#x53EF;&#x4EE5;&#x7528;&#x5F62;&#x5982;s[m:n]&#x7684;&#x5F62;&#x5F0F;&#x4F86;&#x7A6B;&#x53D6;&#x5230;&#x4E00;&#x500B;slice&#x7684;&#x5B50;&#x96C6;(&#x8B6F;&#x8A3B;&#xFF1A;&#x548C;python&#x91CC;&#x7684;&#x8A9E;&#x6CD5;&#x5DEE;&#x4E0D;&#x591A;)&#x3002;&#x5176;&#x9577;&#x5EA6;&#x53EF;&#x4EE5;&#x7528;len(s)&#x51FD;&#x6578;&#x4F86;&#x7A6B;&#x53D6;&#x3002;&#x548C;&#x5176;&#x5B83;&#x5927;&#x591A;&#x6578;&#x7DE8;&#x7A0B;&#x8A9E;&#x8A00;&#x985E;&#x4F3C;&#xFF0C;Go&#x8A9E;&#x8A00;&#x91CC;&#x7684;&#x9019;&#x7A2E;&#x7D22;&#x5F15;&#x5F62;&#x5F0F;&#x4E5F;&#x91C7;&#x7528;&#x4E86;&#x5DE6;&#x9589;&#x53F3;&#x958B;&#x5340;&#x9593;&#xFF0C;&#x5305;&#x62EC;m~n&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x4F46;&#x4E0D;&#x5305;&#x62EC;&#x6700;&#x5F8C;&#x90A3;&#x500B;&#x5143;&#x7D20;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x6BD4;&#x5982;a = [1, 2, 3, 4, 5], a[0:3] = [1, 2, 3]&#xFF0C;&#x4E0D;&#x5305;&#x542B;&#x6700;&#x5F8C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#xFF09;&#x3002;&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x7C21;&#x5316;&#x6211;&#x5011;&#x7684;&#x8655;&#x7406;&#x908F;&#x8F2F;&#x3002;&#x6BD4;&#x5982;s[m:n]&#x9019;&#x500B;slice&#xFF0C;0 &#x2264; m &#x2264; n &#x2264; len(s)&#xFF0C;&#x5305;&#x542B;n-m&#x500B;&#x5143;&#x7D20;&#x3002;</p>
<p>os.Args&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x537D;os.Args[0]&#x662F;&#x547D;&#x4EE4;&#x884C;&#x57F7;&#x884C;&#x6642;&#x7684;&#x547D;&#x4EE4;&#x672C;&#x8EAB;&#xFF1B;&#x5176;&#x5B83;&#x7684;&#x5143;&#x7D20;&#x5247;&#x662F;&#x57F7;&#x884C;&#x8A72;&#x547D;&#x4EE4;&#x6642;&#x50B3;&#x7D66;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x7684;&#x53C3;&#x6578;&#x3002;&#x524D;&#x9762;&#x63D0;&#x5230;&#x7684;&#x5207;&#x7247;&#x8868;&#x9054;&#x5F0F;&#xFF0C;s[m:n]&#x6703;&#x8FD4;&#x8FF4;&#x7B2C;m&#x5230;&#x7B2C;n-1&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x6240;&#x4EE5;&#x4E0B;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#x91CC;&#x9700;&#x8981;&#x7528;&#x5230;&#x7684;os.Args[1:len(os.Args)]&#x537D;&#x662F;&#x9664;&#x4E86;&#x547D;&#x4EE4;&#x672C;&#x8EAB;&#x5916;&#x7684;&#x6240;&#x6709;&#x50B3;&#x5165;&#x53C3;&#x6578;&#x3002;&#x5982;&#x679C;&#x6211;&#x5011;&#x7701;&#x7565;s[m:n]&#x91CC;&#x7684;m&#x548C;n&#xFF0C;&#x90A3;&#x9EBD;&#x9ED8;&#x8A8D;&#x9019;&#x500B;&#x8868;&#x9054;&#x5F0F;&#x6703;&#x586B;&#x5165;0:len(s)&#xFF0C;&#x6240;&#x4EE5;&#x9019;&#x91CC;&#x6211;&#x5011;&#x9084;&#x53EF;&#x4EE5;&#x7701;&#x7565;&#x6389;n&#xFF0C;&#x5BEB;&#x6210;os.Args[1:]&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x662F;&#x4E00;&#x500B;Unix&#x91CC;echo&#x547D;&#x4EE4;&#x7684;&#x5BE6;&#x73FE;&#xFF0C;&#x9019;&#x500B;&#x547D;&#x4EE4;&#x6703;&#x5728;&#x55AE;&#x884C;&#x5167;&#x6253;&#x5370;&#x9F63;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;import&#x4E86;&#x5169;&#x500B;package&#xFF0C;&#x4F75;&#x4E14;&#x7528;&#x62EC;&#x865F;&#x628A;&#x9019;&#x5169;&#x500B;package&#x5305;&#x4E86;&#x8D77;&#x4F86;&#xFF0C;&#x9019;&#x662F;&#x5206;&#x522B;import&#x5404;&#x500B;package&#x8072;&#x660E;&#x7684;&#x7C21;&#x5316;&#x5BEB;&#x6CD5;&#x3002;&#x7576;&#x7136;&#x4E86;&#x4F60;&#x5206;&#x958B;&#x4F86;&#x5BEB;import&#x4E5F;&#x6C92;&#x6709;&#x4EC0;&#x9EBD;&#x554F;&#x984C;&#xFF0C;&#x96BB;&#x662F;&#x4E00;&#x822C;&#x7232;&#x4E86;&#x65B9;&#x4FBF;&#x6211;&#x5011;&#x90FD;&#x6703;&#x50CF;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#x4F86;&#x5C0E;&#x5165;&#x591A;&#x500B;package&#x3002;&#x6211;&#x5011;&#x81EA;&#x5DF1;&#x5BEB;&#x7684;&#x5C0E;&#x5165;&#x9806;&#x5E8F;&#x4F75;&#x4E0D;&#x91CD;&#x8981;&#xFF0C;&#x56E0;&#x7232;gofmt&#x5DE5;&#x5177;&#x6703;&#x5E6B;&#x52A9;&#x6211;&#x5011;&#x6309;&#x7167;&#x5B57;&#x6BCD;&#x9806;&#x5E8F;&#x4F86;&#x6392;&#x5217;&#x597D;&#x9019;&#x4E9B;&#x5C0E;&#x5165;&#x5305;&#x540D;&#x3002;&#xFF08;&#x672C;&#x66F8;&#x4E2D;&#x5982;&#x679C;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#x6709;&#x591A;&#x7A2E;&#x7248;&#x672C;&#x6642;&#xFF0C;&#x6211;&#x5011;&#x6703;&#x7528;&#x7DE8;&#x865F;&#x6A19;&#x8A18;&#x9F63;&#x4F86;&#xFF09;</p>
<pre><code class="lang-go">gopl.io/ch1/echo1
<span class="hljs-comment">// Echo1 prints its command-line arguments.</span>
<span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> (
<span class="hljs-string">&quot;fmt&quot;</span>
<span class="hljs-string">&quot;os&quot;</span>
)
<span class="hljs-keyword">func</span> main() {
<span class="hljs-keyword">var</span> s, sep <span class="hljs-typename">string</span>
<span class="hljs-keyword">for</span> i := <span class="hljs-number">1</span>; i &lt; <span class="hljs-built_in">len</span>(os.Args); i++ {
s += sep + os.Args[i]
sep = <span class="hljs-string">&quot; &quot;</span>
}
fmt.Println(s)
<span class="hljs-keyword">var</span> s, sep <span class="hljs-typename">string</span>
<span class="hljs-keyword">for</span> i := <span class="hljs-number">1</span>; i &lt; <span class="hljs-built_in">len</span>(os.Args); i++ {
s += sep + os.Args[i]
sep = <span class="hljs-string">&quot; &quot;</span>
}
fmt.Println(s)
}
</code></pre>
<p>Go&#x91CC;&#x7684;&#x8A3B;&#x91CB;&#x662F;&#x4EE5;//&#x4F86;&#x8868;&#x793A;&#x3002;//&#x5F8C;&#x7684;&#x5167;&#x5BB9;&#x4E00;&#x76F4;&#x5230;&#x884C;&#x672B;&#x90FD;&#x662F;&#x9019;&#x689D;&#x8A3B;&#x91CB;&#x7684;&#x4E00;&#x90E8;&#x5206;&#xFF0C;&#x4F75;&#x4E14;&#x9019;&#x4E9B;&#x8A3B;&#x91CB;&#x6703;&#x88AB;&#x7DE8;&#x8B6F;&#x5668;&#x5FFD;&#x7565;&#x3002;</p>
<p>Go&#x8A9E;&#x8A00;&#x91CC;&#x7684;&#x8A3B;&#x91CB;&#x662F;&#x4EE5;//&#x4F86;&#x8868;&#x793A;&#x3002;//&#x4E4B;&#x5F8C;&#x7684;&#x5167;&#x5BB9;&#x4E00;&#x76F4;&#x5230;&#x884C;&#x672B;&#x90FD;&#x662F;&#x9019;&#x689D;&#x8A3B;&#x91CB;&#x7684;&#x4E00;&#x90E8;&#x5206;&#xFF0C;&#x4F75;&#x4E14;&#x9019;&#x4E9B;&#x8A3B;&#x91CB;&#x6703;&#x88AB;&#x7DE8;&#x8B6F;&#x5668;&#x5FFD;&#x7565;&#x3002;</p>
<p>&#x6309;&#x7167;&#x6163;&#x4F8B;&#xFF0C;&#x6211;&#x5011;&#x6703;&#x5728;&#x6BCF;&#x4E00;&#x500B;package&#x524D;&#x9762;&#x653E;&#x4E0A;&#x9019;&#x500B;package&#x7684;&#x8A73;&#x76E1;&#x7684;&#x8A3B;&#x91CB;&#x5C0D;&#x5176;&#x9032;&#x884C;&#x8AAC;&#x660E;&#xFF1B;&#x5C0D;&#x65BC;&#x4E00;&#x500B;main package&#x4F86;&#x8AAC;&#xFF0C;&#x4E00;&#x822C;&#x9019;&#x6BB5;&#x8A55;&#x8AD6;&#x6703;&#x5305;&#x542B;&#x5E7E;&#x53E5;&#x8A71;&#x4F86;&#x8AAC;&#x660E;&#x9019;&#x500B;&#x9805;&#x76EE;/&#x7A0B;&#x5E8F;&#x6574;&#x9AD4;&#x662F;&#x505A;&#x4EC0;&#x9EBD;&#x7528;&#x7684;&#x3002;</p>
<p>var&#x95DC;&#x9375;&#x5B57;&#x7528;&#x4F86;&#x505A;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x3002;&#x9019;&#x91CC;&#x8072;&#x660E;&#x4E86;s&#x548C;sep&#x5169;&#x500B;string&#x8B8A;&#x91CF;&#x3002;&#x8B8A;&#x91CF;&#x53EF;&#x4EE5;&#x5728;&#x8072;&#x660E;&#x671F;&#x9593;&#x76F4;&#x63A5;&#x9032;&#x884C;&#x521D;&#x59CB;&#x5316;&#x3002;&#x5982;&#x679C;&#x6C92;&#x6709;&#x986F;&#x5F0F;&#x5730;&#x521D;&#x59CB;&#x5316;&#x7684;&#x8A71;&#xFF0C;Go&#x6703;&#x96B1;&#x5F0F;&#x5730;&#x7D66;&#x9019;&#x4E9B;&#x672A;&#x521D;&#x59CB;&#x5316;&#x7684;&#x8B8A;&#x91CF;&#x8CE6;&#x4E88;&#x5C0D;&#x61C9;&#x5176;&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;&#xFF0C;&#x6BD4;&#x5982;&#x6578;&#x503C;&#x985E;&#x578B;&#x5C31;&#x662F;0&#xFF0C;&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#x5C31;&#x662F;&#x201C;&#x201D;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#x3002;&#x5728;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x91CC;&#x7684;s&#x548C;sep&#x88AB;&#x96B1;&#x5F0F;&#x5730;&#x8CE6;&#x503C;&#x7232;&#x4E86;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#x3002;&#x5728;&#x7B2C;2&#x7AE0;&#x4E2D;&#x6211;&#x5011;&#x6703;&#x66F4;&#x8A73;&#x7D30;&#x5730;&#x8B1B;&#x89E3;&#x8B8A;&#x91CF;&#x548C;&#x8072;&#x660E;&#x3002;</p>
<p>&#x5C0D;&#x65BC;&#x6578;&#x5B57;&#x985E;&#x578B;&#xFF0C;Go&#x8A9E;&#x8A00;&#x63D0;&#x4F9B;&#x4E86;&#x5E38;&#x898F;&#x7684;&#x6578;&#x503C;&#x8A08;&#x7B97;&#x548C;&#x908F;&#x8F2F;&#x904B;&#x7B97;&#x7B26;&#x3002;&#x800C;&#x5C0D;&#x65BC;string&#x985E;&#x578B;&#xFF0C;+&#x865F;&#x8868;&#x793A;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x9023;&#x63A5;(&#x8B6F;&#x8A3B;&#xFF1A;&#x548C;C++&#x6216;&#x8005;js&#x662F;&#x4E00;&#x6A23;&#x7684;)&#x3002;&#x6240;&#x4EE5;&#x4E0B;&#x9762;&#x9019;&#x500B;&#x8868;&#x9054;&#x5F0F;&#xFF1A;</p>
<p>var&#x95DC;&#x9375;&#x5B57;&#x7528;&#x4F86;&#x505A;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x8072;&#x660E;&#x4E86;s&#x548C;sep&#x5169;&#x500B;string&#x8B8A;&#x91CF;&#x3002;&#x8B8A;&#x91CF;&#x53EF;&#x4EE5;&#x5728;&#x8072;&#x660E;&#x671F;&#x9593;&#x76F4;&#x63A5;&#x9032;&#x884C;&#x521D;&#x59CB;&#x5316;&#x3002;&#x5982;&#x679C;&#x6C92;&#x6709;&#x986F;&#x5F0F;&#x5730;&#x521D;&#x59CB;&#x5316;&#x7684;&#x8A71;&#xFF0C;Go&#x8A9E;&#x8A00;&#x6703;&#x96B1;&#x5F0F;&#x5730;&#x7D66;&#x9019;&#x4E9B;&#x672A;&#x521D;&#x59CB;&#x5316;&#x7684;&#x8B8A;&#x91CF;&#x8CE6;&#x4E88;&#x5C0D;&#x61C9;&#x5176;&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;&#xFF0C;&#x6BD4;&#x5982;&#x6578;&#x503C;&#x985E;&#x578B;&#x5C31;&#x662F;0&#xFF0C;&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#x5C31;&#x662F;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#x201C;&#x201D;&#x3002;&#x5728;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x91CC;&#x7684;s&#x548C;sep&#x88AB;&#x96B1;&#x5F0F;&#x5730;&#x8CE6;&#x503C;&#x7232;&#x4E86;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#x3002;&#x5728;&#x7B2C;2&#x7AE0;&#x4E2D;&#x6211;&#x5011;&#x6703;&#x66F4;&#x8A73;&#x7D30;&#x5730;&#x8B1B;&#x89E3;&#x8B8A;&#x91CF;&#x548C;&#x8072;&#x660E;&#x3002;</p>
<p>&#x5C0D;&#x65BC;&#x6578;&#x5B57;&#x985E;&#x578B;&#xFF0C;Go&#x8A9E;&#x8A00;&#x63D0;&#x4F9B;&#x4E86;&#x5E38;&#x898F;&#x7684;&#x6578;&#x503C;&#x8A08;&#x7B97;&#x548C;&#x908F;&#x8F2F;&#x904B;&#x7B97;&#x7B26;&#x3002;&#x800C;&#x5C0D;&#x65BC;string&#x985E;&#x578B;&#xFF0C;+&#x865F;&#x8868;&#x793A;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x9023;&#x63A5;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x548C;C++&#x6216;&#x8005;js&#x662F;&#x4E00;&#x6A23;&#x7684;&#xFF09;&#x3002;&#x6240;&#x4EE5;&#x4E0B;&#x9762;&#x9019;&#x500B;&#x8868;&#x9054;&#x5F0F;&#xFF1A;</p>
<pre><code class="lang-go">sep + os.Args[i]
</code></pre>
<p>&#x8868;&#x793A;&#x5C07;sep&#x5B57;&#x7B26;&#x4E32;&#x548C;os.Args[i]&#x5B57;&#x7B26;&#x4E32;&#x9032;&#x884C;&#x9023;&#x63A5;&#x3002;&#x6211;&#x5011;&#x5728;&#x7A0B;&#x5E8F;&#x91CC;&#x7528;&#x7684;&#x53E6;&#x5916;&#x4E00;&#x500B;&#x8868;&#x9054;&#x5F0F;&#xFF1A;</p>
<pre><code class="lang-go">s += sep + os.Args[i]
</code></pre>
<p>&#x6703;&#x5C07;sep&#x8207;os.Args[i]&#x9023;&#x63A5;&#xFF0C;&#x7136;&#x5F8C;&#x518D;&#x5C07;&#x5F97;&#x5230;&#x7684;&#x7D50;&#x679C;&#x8207;s&#x9032;&#x884C;&#x9023;&#x63A5;&#xFF0C;&#x9019;&#x7A2E;&#x65B9;&#x5F0F;&#x548C;&#x4E0B;&#x9762;&#x7684;&#x8868;&#x9054;&#x662F;&#x7B49;&#x50F9;&#x7684;&#xFF1A;</p>
<p>&#x6703;&#x5C07;sep&#x8207;os.Args[i]&#x9023;&#x63A5;&#xFF0C;&#x7136;&#x5F8C;&#x518D;&#x5C07;&#x5F97;&#x5230;&#x7684;&#x7D50;&#x679C;&#x8207;s&#x9032;&#x884C;&#x9023;&#x63A5;&#x4F75;&#x8CE6;&#x503C;&#x904B;&#x7D66;s&#xFF0C;&#x9019;&#x7A2E;&#x65B9;&#x5F0F;&#x548C;&#x4E0B;&#x9762;&#x7684;&#x8868;&#x9054;&#x662F;&#x7B49;&#x50F9;&#x7684;&#xFF1A;</p>
<pre><code class="lang-go">s = s + sep + os.Args[i]
</code></pre>
<p>&#x904B;&#x7B97;&#x7B26;+=&#x662F;&#x4E00;&#x500B;&#x8CE6;&#x503C;&#x904B;&#x7B97;&#x7B26;(assignment operator)&#xFF0C;&#x6BCF;&#x4E00;&#x7A2E;&#x6578;&#x503C;&#x548C;&#x908F;&#x8F2F;&#x904B;&#x7B97;&#x7B26;&#xFF0C;&#x4F8B;&#x5982;*&#x6216;&#x8005;+&#x90FD;&#x6709;&#x5176;&#x5C0D;&#x61C9;&#x7684;&#x8CE6;&#x503C;&#x904B;&#x7B97;&#x7B26;&#x3002;</p>
<p>echo&#x7A0B;&#x5E8F;&#x53EF;&#x4EE5;&#x6BCF;&#x5FAA;&#x74B0;&#x4E00;&#x6B21;&#x8F38;&#x9F63;&#x4E00;&#x500B;&#x53C3;&#x6578;&#xFF0C;&#x4E0D;&#x904E;&#x6211;&#x5011;&#x9019;&#x91CC;&#x7684;&#x7248;&#x672C;&#x662F;&#x4E0D;&#x65B7;&#x5730;&#x5C07;&#x5176;&#x7D50;&#x679C;&#x9023;&#x63A5;&#x5230;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x672B;&#x5C3E;&#x3002;s&#x9019;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x5728;&#x8072;&#x660E;&#x7684;&#x6642;&#x5019;&#x662F;&#x4E00;&#x500B;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x800C;&#x4E4B;&#x5F8C;&#x5FAA;&#x74B0;&#x6BCF;&#x6B21;&#x90FD;&#x6703;&#x88AB;&#x5728;&#x672B;&#x5C3E;&#x6DFB;&#x52A0;&#x4E00;&#x6BB5;&#x5B57;&#x7B26;&#x4E32;&#xFF1B;&#x7B2C;&#x4E00;&#x6B21;&#x8FED;&#x4EE3;&#x4E4B;&#x5F8C;&#xFF0C;&#x4E00;&#x500B;&#x7A7A;&#x683C;&#x6703;&#x88AB;&#x63D2;&#x5165;&#x5230;&#x5B57;&#x7B26;&#x4E32;&#x672B;&#x5C3E;&#xFF0C;&#x6240;&#x4EE5;&#x6BCF;&#x63D2;&#x5165;&#x4E00;&#x500B;&#x65B0;&#x503C;&#xFF0C;&#x90FD;&#x6703;&#x548C;&#x524D;&#x4E00;&#x500B;&#x4E2D;&#x9593;&#x6709;&#x4E00;&#x500B;&#x7A7A;&#x683C;&#x9694;&#x958B;&#x3002;&#x9019;&#x662F;&#x4E00;&#x7A2E;&#x975E;&#x7DDA;&#x6027;&#x7684;&#x64CD;&#x4F5C;&#xFF0C;&#x7576;&#x6211;&#x5011;&#x7684;&#x53C3;&#x6578;&#x6578;&#x91CF;&#x8B8A;&#x5F97;&#x9F90;&#x5927;&#x7684;&#x6642;&#x5019;(&#x7576;&#x7136;&#x4E0D;&#x662F;&#x8AAC;&#x9019;&#x91CC;&#x7684;echo&#xFF0C;&#x4E00;&#x822C;echo&#x4E5F;&#x4E0D;&#x6703;&#x6709;&#x592A;&#x591A;&#x53C3;&#x6578;)&#x5176;&#x904B;&#x884C;&#x958B;&#x92B7;&#x4E5F;&#x6703;&#x8B8A;&#x5F97;&#x9F90;&#x5927;&#x3002;&#x4E0B;&#x9762;&#x6211;&#x5011;&#x6703;&#x4ECB;&#x7D39;&#x4E00;&#x7E6B;&#x5217;&#x7684;echo&#x6539;&#x9032;&#x7248;&#xFF0C;&#x4F86;&#x61C9;&#x5C0D;&#x9019;&#x91CC;&#x8AAC;&#x5230;&#x7684;&#x904B;&#x884C;&#x6548;&#x7387;&#x4F4E;&#x4E0B;&#x3002;</p>
<p>&#x5728;for&#x5FAA;&#x74B0;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x7528;&#x5230;&#x4E86;i&#x4F86;&#x505A;&#x4E0B;&#x6A19;&#x7D22;&#x5F15;&#xFF0C;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x6211;&#x5011;&#x7528;&#x4E86;:=&#x7B26;&#x865F;&#x4F86;&#x7D66;i&#x9032;&#x884C;&#x521D;&#x59CB;&#x5316;&#x548C;&#x8CE6;&#x503C;&#xFF0C;&#x9019;&#x662F;var xxx=yyy&#x7684;&#x4E00;&#x7A2E;&#x7C21;&#x5BEB;&#x5F62;&#x5F0F;&#xFF0C;Go&#x6703;&#x6839;&#x64DA;&#x7B49;&#x865F;&#x53F3;&#x908A;&#x7684;&#x503C;&#x7684;&#x985E;&#x578B;&#x81EA;&#x52D5;&#x5224;&#x65B7;&#x5DE6;&#x908A;&#x7684;&#x503C;&#x985E;&#x578B;&#xFF0C;&#x4E0B;&#x4E00;&#x7AE0;&#x6703;&#x5C0D;&#x9019;&#x4E00;&#x9EDE;&#x9032;&#x884C;&#x8A73;&#x7D30;&#x8AAC;&#x660E;&#x3002;</p>
<p>&#x81EA;&#x589E;&#x8868;&#x9054;&#x5F0F;i++&#x6703;&#x7232;i&#x52A0;&#x4E0A;1&#xFF1B;&#x9019;&#x500B;i += 1&#x4EE5;&#x53CA;i = i + 1&#x90FD;&#x662F;&#x7B49;&#x50F9;&#x7684;&#x3002;&#x5C0D;&#x61C9;&#x7684;&#x9084;&#x6709;i--&#x662F;&#x7D66;i&#x6E1B;&#x53BB;1&#x3002;&#x9019;&#x4E9B;&#x5728;go&#x8A9E;&#x8A00;&#x91CC;&#x662F;&#x8A9E;&#x53E5;&#xFF0C;&#x800C;&#x4E0D;&#x50CF;C&#x7E6B;&#x7684;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x91CC;&#x662F;&#x8868;&#x9054;&#x5F0F;&#x3002;&#x6240;&#x4EE5;&#x5728;Go&#x8A9E;&#x8A00;&#x91CC;j = i++&#x662F;&#x975E;&#x6CD5;&#x7684;&#xFF0C;&#x800C;&#x4E14;++&#x548C;--&#x90FD;&#x96BB;&#x80FD;&#x653E;&#x5728;&#x8B8A;&#x91CF;&#x540D;&#x5F8C;&#x9762;&#xFF0C;&#x56E0;&#x6B64;--i&#x4E5F;&#x662F;&#x975E;&#x6CD5;&#x7684;&#x3002;</p>
<p>echo&#x7A0B;&#x5E8F;&#x53EF;&#x4EE5;&#x6BCF;&#x5FAA;&#x74B0;&#x4E00;&#x6B21;&#x8F38;&#x9F63;&#x4E00;&#x500B;&#x53C3;&#x6578;&#xFF0C;&#x4E0D;&#x904E;&#x6211;&#x5011;&#x9019;&#x91CC;&#x7684;&#x7248;&#x672C;&#x662F;&#x4E0D;&#x65B7;&#x5730;&#x5C07;&#x5176;&#x7D50;&#x679C;&#x9023;&#x63A5;&#x5230;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x672B;&#x5C3E;&#x3002;s&#x9019;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x5728;&#x8072;&#x660E;&#x7684;&#x6642;&#x5019;&#x662F;&#x4E00;&#x500B;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x800C;&#x4E4B;&#x5F8C;&#x5FAA;&#x74B0;&#x6BCF;&#x6B21;&#x90FD;&#x6703;&#x88AB;&#x5728;&#x672B;&#x5C3E;&#x6DFB;&#x52A0;&#x4E00;&#x6BB5;&#x5B57;&#x7B26;&#x4E32;&#xFF1B;&#x7B2C;&#x4E00;&#x6B21;&#x8FED;&#x4EE3;&#x4E4B;&#x5F8C;&#xFF0C;&#x4E00;&#x500B;&#x7A7A;&#x683C;&#x6703;&#x88AB;&#x63D2;&#x5165;&#x5230;&#x5B57;&#x7B26;&#x4E32;&#x672B;&#x5C3E;&#xFF0C;&#x6240;&#x4EE5;&#x6BCF;&#x63D2;&#x5165;&#x4E00;&#x500B;&#x65B0;&#x503C;&#xFF0C;&#x90FD;&#x6703;&#x548C;&#x524D;&#x4E00;&#x500B;&#x4E2D;&#x9593;&#x6709;&#x4E00;&#x500B;&#x7A7A;&#x683C;&#x9694;&#x958B;&#x3002;&#x9019;&#x662F;&#x4E00;&#x7A2E;&#x975E;&#x7DDA;&#x6027;&#x7684;&#x64CD;&#x4F5C;&#xFF0C;&#x7576;&#x6211;&#x5011;&#x7684;&#x53C3;&#x6578;&#x6578;&#x91CF;&#x8B8A;&#x5F97;&#x9F90;&#x5927;&#x7684;&#x6642;&#x5019;&#xFF08;&#x7576;&#x7136;&#x4E0D;&#x662F;&#x8AAC;&#x9019;&#x91CC;&#x7684;echo&#xFF0C;&#x4E00;&#x822C;echo&#x4E5F;&#x4E0D;&#x6703;&#x6709;&#x592A;&#x591A;&#x53C3;&#x6578;&#xFF09;&#x5176;&#x904B;&#x884C;&#x958B;&#x92B7;&#x4E5F;&#x6703;&#x8B8A;&#x5F97;&#x9F90;&#x5927;&#x3002;&#x4E0B;&#x9762;&#x6211;&#x5011;&#x6703;&#x4ECB;&#x7D39;&#x4E00;&#x7E6B;&#x5217;&#x7684;echo&#x6539;&#x9032;&#x7248;&#xFF0C;&#x4F86;&#x61C9;&#x5C0D;&#x9019;&#x91CC;&#x8AAC;&#x5230;&#x7684;&#x904B;&#x884C;&#x6548;&#x7387;&#x4F4E;&#x4E0B;&#x3002;</p>
<p>&#x5728;for&#x5FAA;&#x74B0;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x7528;&#x5230;&#x4E86;i&#x4F86;&#x505A;&#x4E0B;&#x6A19;&#x7D22;&#x5F15;&#xFF0C;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x6211;&#x5011;&#x7528;&#x4E86;:=&#x7B26;&#x865F;&#x4F86;&#x7D66;i&#x9032;&#x884C;&#x521D;&#x59CB;&#x5316;&#x548C;&#x8CE6;&#x503C;&#xFF0C;&#x9019;&#x662F;var xxx=yyy&#x7684;&#x4E00;&#x7A2E;&#x7C21;&#x5BEB;&#x5F62;&#x5F0F;&#xFF0C;Go&#x8A9E;&#x8A00;&#x6703;&#x6839;&#x64DA;&#x7B49;&#x865F;&#x53F3;&#x908A;&#x7684;&#x503C;&#x7684;&#x985E;&#x578B;&#x81EA;&#x52D5;&#x5224;&#x65B7;&#x5DE6;&#x908A;&#x7684;&#x503C;&#x985E;&#x578B;&#xFF0C;&#x4E0B;&#x4E00;&#x7AE0;&#x6703;&#x5C0D;&#x9019;&#x4E00;&#x9EDE;&#x9032;&#x884C;&#x8A73;&#x7D30;&#x8AAC;&#x660E;&#x3002;</p>
<p>&#x81EA;&#x589E;&#x8868;&#x9054;&#x5F0F;i++&#x6703;&#x7232;i&#x52A0;&#x4E0A;1&#xFF1B;&#x9019;&#x548C;i += 1&#x4EE5;&#x53CA;i = i + 1&#x90FD;&#x662F;&#x7B49;&#x50F9;&#x7684;&#x3002;&#x5C0D;&#x61C9;&#x7684;&#x9084;&#x6709;i--&#x662F;&#x7D66;i&#x6E1B;&#x53BB;1&#x3002;&#x9019;&#x4E9B;&#x5728;Go&#x8A9E;&#x8A00;&#x91CC;&#x662F;&#x8A9E;&#x53E5;&#xFF0C;&#x800C;&#x4E0D;&#x50CF;C&#x7E6B;&#x7684;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x91CC;&#x662F;&#x8868;&#x9054;&#x5F0F;&#x3002;&#x6240;&#x4EE5;&#x5728;Go&#x8A9E;&#x8A00;&#x91CC;j = i++&#x662F;&#x975E;&#x6CD5;&#x7684;&#xFF0C;&#x800C;&#x4E14;++&#x548C;--&#x90FD;&#x96BB;&#x80FD;&#x653E;&#x5728;&#x8B8A;&#x91CF;&#x540D;&#x5F8C;&#x9762;&#xFF0C;&#x56E0;&#x6B64;--i&#x4E5F;&#x662F;&#x975E;&#x6CD5;&#x7684;&#x3002;</p>
<p>&#x5728;Go&#x8A9E;&#x8A00;&#x91CC;&#x96BB;&#x6709;for&#x5FAA;&#x74B0;&#x4E00;&#x7A2E;&#x5FAA;&#x74B0;&#x3002;&#x7576;&#x7136;&#x4E86;&#x7232;&#x4E86;&#x6EFF;&#x8DB3;&#x9700;&#x6C42;&#xFF0C;Go&#x7684;for&#x5FAA;&#x74B0;&#x6709;&#x5F88;&#x591A;&#x7A2E;&#x5F62;&#x5F0F;&#xFF0C;&#x4E0B;&#x9762;&#x662F;&#x5176;&#x4E2D;&#x7684;&#x4E00;&#x7A2E;&#xFF1A;</p>
<pre><code class="lang-go"><span class="hljs-keyword">for</span> initialization; condition; post {
<span class="hljs-comment">// zero or more statements</span>
}
</code></pre>
<p>&#x9019;&#x91CC;&#x9700;&#x8981;&#x8A3B;&#x610F;&#xFF0C;for&#x5FAA;&#x74B0;&#x7684;&#x5169;&#x908A;&#x662F;&#x4E0D;&#x9700;&#x8981;&#x50CF;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x4E00;&#x6A23;&#x5BEB;&#x62EC;&#x865F;&#x7684;&#x3002;&#x4F75;&#x4E14;&#x5DE6;&#x5927;&#x62EC;&#x865F;&#x9700;&#x8981;&#x548C;for&#x8A9E;&#x53E5;&#x5728;&#x540C;&#x4E00;&#x884C;&#x3002;</p>
<p>initialization&#x90E8;&#x5206;&#x662F;&#x53EF;&#x9078;&#x7684;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x5BEB;&#x4E86;&#x9019;&#x90E8;&#x5206;&#x7684;&#x8A71;&#xFF0C;&#x5728;for&#x5FAA;&#x74B0;&#x4E4B;&#x524D;&#x9019;&#x90E8;&#x5206;&#x7684;&#x908F;&#x8F2F;&#x6703;&#x88AB;&#x57F7;&#x884C;&#x3002;&#x9700;&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;&#x9019;&#x90E8;&#x5206;&#x5FC5;&#x9B1A;&#x662F;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x8A9E;&#x53E5;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x662F;&#x4E00;&#x500B;&#x7C21;&#x77ED;&#x7684;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#xFF0C;&#x4E00;&#x500B;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#xFF0C;&#x6216;&#x662F;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x3002;condition&#x90E8;&#x5206;&#x5FC5;&#x9B1A;&#x662F;&#x4E00;&#x500B;&#x7D50;&#x679C;&#x7232;boolean&#x503C;&#x7684;&#x8868;&#x9054;&#x5F0F;&#xFF0C;&#x5728;&#x6BCF;&#x6B21;&#x5FAA;&#x74B0;&#x4E4B;&#x524D;&#xFF0C;&#x8A9E;&#x8A00;&#x90FD;&#x6703;&#x6AA2;&#x67FB;&#x7576;&#x524D;&#x662F;&#x5426;&#x6EFF;&#x8DB3;&#x9019;&#x500B;&#x689D;&#x4EF6;&#xFF0C;&#x5982;&#x679C;&#x4E0D;&#x6EFF;&#x8DB3;&#x7684;&#x8A71;&#x4FBF;&#x6703;&#x7D50;&#x675F;&#x5FAA;&#x74B0;&#xFF1B;post&#x90E8;&#x5206;&#x7684;&#x8A9E;&#x53E5;&#x5247;&#x662F;&#x5728;&#x6BCF;&#x6B21;&#x5FAA;&#x74B0;&#x7D50;&#x675F;&#x4E4B;&#x5F8C;&#x88AB;&#x57F7;&#x884C;&#xFF0C;&#x4E4B;&#x5F8C;conditon&#x90E8;&#x5206;&#x6703;&#x5728;&#x4E0B;&#x4E00;&#x6B21;&#x57F7;&#x884C;&#x524D;&#x518D;&#x88AB;&#x57F7;&#x884C;&#xFF0C;&#x4F9D;&#x6B64;&#x5F80;&#x8907;&#x3002;&#x7576;condition&#x689D;&#x4EF6;&#x91CC;&#x7684;&#x5224;&#x65B7;&#x7D50;&#x679C;&#x8B8A;&#x7232;false&#x4E4B;&#x5F8C;&#xFF0C;&#x5FAA;&#x74B0;&#x537D;&#x7D50;&#x675F;&#x3002;</p>
<p>initialization&#x90E8;&#x5206;&#x662F;&#x53EF;&#x9078;&#x7684;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x5BEB;&#x4E86;&#x9019;&#x90E8;&#x5206;&#x7684;&#x8A71;&#xFF0C;&#x5728;for&#x5FAA;&#x74B0;&#x4E4B;&#x524D;&#x9019;&#x90E8;&#x5206;&#x7684;&#x908F;&#x8F2F;&#x6703;&#x88AB;&#x57F7;&#x884C;&#x3002;&#x9700;&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;&#x9019;&#x90E8;&#x5206;&#x5FC5;&#x9B1A;&#x662F;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x8A9E;&#x53E5;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x662F;&#x4E00;&#x500B;&#x7C21;&#x77ED;&#x7684;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#xFF0C;&#x4E00;&#x500B;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#xFF0C;&#x6216;&#x662F;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x3002;condition&#x90E8;&#x5206;&#x5FC5;&#x9B1A;&#x662F;&#x4E00;&#x500B;&#x7D50;&#x679C;&#x7232;boolean&#x503C;&#x7684;&#x8868;&#x9054;&#x5F0F;&#xFF0C;&#x5728;&#x6BCF;&#x6B21;&#x5FAA;&#x74B0;&#x4E4B;&#x524D;&#xFF0C;&#x8A9E;&#x8A00;&#x90FD;&#x6703;&#x6AA2;&#x67FB;&#x7576;&#x524D;&#x662F;&#x5426;&#x6EFF;&#x8DB3;&#x9019;&#x500B;&#x689D;&#x4EF6;&#xFF0C;&#x5982;&#x679C;&#x4E0D;&#x6EFF;&#x8DB3;&#x7684;&#x8A71;&#x4FBF;&#x6703;&#x7D50;&#x675F;&#x5FAA;&#x74B0;&#xFF1B;post&#x90E8;&#x5206;&#x7684;&#x8A9E;&#x53E5;&#x5247;&#x662F;&#x5728;&#x6BCF;&#x6B21;&#x5FAA;&#x74B0;&#x8FED;&#x4EE3;&#x7D50;&#x675F;&#x4E4B;&#x5F8C;&#x88AB;&#x57F7;&#x884C;&#xFF0C;&#x4E4B;&#x5F8C;conditon&#x90E8;&#x5206;&#x6703;&#x5728;&#x4E0B;&#x4E00;&#x6B21;&#x57F7;&#x884C;&#x524D;&#x518D;&#x88AB;&#x57F7;&#x884C;&#xFF0C;&#x4F9D;&#x6B64;&#x5F80;&#x8907;&#x3002;&#x7576;condition&#x689D;&#x4EF6;&#x91CC;&#x7684;&#x5224;&#x65B7;&#x7D50;&#x679C;&#x8B8A;&#x7232;false&#x4E4B;&#x5F8C;&#xFF0C;&#x5FAA;&#x74B0;&#x537D;&#x7D50;&#x675F;&#x3002;</p>
<p>&#x4E0A;&#x9762;&#x63D0;&#x5230;&#x662F;for&#x5FAA;&#x74B0;&#x91CC;&#x7684;&#x4E09;&#x500B;&#x90E8;&#x5206;&#x90FD;&#x662F;&#x53EF;&#x4EE5;&#x88AB;&#x7701;&#x7565;&#x7684;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x628A;initialization&#x548C;post&#x90E8;&#x5206;&#x90FD;&#x7701;&#x7565;&#x7684;&#x8A71;&#xFF0C;&#x90A3;&#x9EBD;&#x9023;&#x4E2D;&#x9593;&#x9694;&#x96E2;&#x4ED6;&#x5011;&#x7684;&#x5206;&#x865F;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x88AB;&#x7701;&#x7565;&#x7684;&#xFF0C;&#x6BD4;&#x5982;&#x4E0B;&#x9762;&#x9019;&#x7A2E;for&#x5FAA;&#x74B0;&#xFF0C;&#x5C31;&#x548C;&#x50B3;&#x7D71;&#x7684;while&#x5FAA;&#x74B0;&#x662F;&#x4E00;&#x6A23;&#x7684;&#xFF1A;</p>
<pre><code class="lang-go"><span class="hljs-comment">// a traditional &quot;while&quot; loop</span>
<span class="hljs-keyword">for</span> condition {
@@ -2080,8 +2082,8 @@
<span class="hljs-comment">// ...</span>
}
</code></pre>
<p>&#x5728;&#x7121;&#x9650;&#x5FAA;&#x74B0;&#x4E2D;&#xFF0C;&#x4F60;&#x9084;&#x662F;&#x53EF;&#x4EE5;&#x9760;break&#x6216;&#x8005;return&#x4F86;&#x7D42;&#x6B62;&#x6389;&#x5FAA;&#x74B0;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4F60;&#x7684;&#x904D;&#x6B77;&#x5C0D;&#x8C61;&#x662F;string&#x6216;&#x8005;slice&#x91CC;&#x7684;&#x503C;&#x7684;&#x8A71;&#xFF0C;&#x9084;&#x6709;&#x53E6;&#x5916;&#x4E00;&#x7A2E;&#x5FAA;&#x74B0;&#x7684;&#x5BEB;&#x6CD5;&#xFF0C;&#x6211;&#x5011;&#x4F86;&#x770B;&#x770B;&#x53E6;&#x4E00;&#x500B;&#x7248;&#x672C;&#x7684;echo&#xFF1A;</p>
<p>&#x5728;&#x7121;&#x9650;&#x5FAA;&#x74B0;&#x4E2D;&#xFF0C;&#x4F60;&#x9084;&#x662F;&#x53EF;&#x4EE5;&#x9760;break&#x6216;&#x8005;return&#x8A9E;&#x53E5;&#x4F86;&#x7D42;&#x6B62;&#x6389;&#x5FAA;&#x74B0;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4F60;&#x7684;&#x904D;&#x6B77;&#x5C0D;&#x8C61;&#x662F;string&#x6216;&#x8005;slice&#x985E;&#x578B;&#x503C;&#x7684;&#x8A71;&#xFF0C;&#x9084;&#x6709;&#x53E6;&#x5916;&#x4E00;&#x7A2E;&#x5FAA;&#x74B0;&#x7684;&#x5BEB;&#x6CD5;&#xFF0C;&#x6211;&#x5011;&#x4F86;&#x770B;&#x770B;&#x53E6;&#x4E00;&#x500B;&#x7248;&#x672C;&#x7684;echo&#xFF1A;</p>
<pre><code class="lang-go">gopl.io/ch1/echo2
<span class="hljs-comment">// Echo2 prints its command-line arguments.</span>
<span class="hljs-keyword">package</span> main
@@ -2099,18 +2101,17 @@
fmt.Println(s)
}
</code></pre>
<p>&#x6BCF;&#x4E00;&#x6B21;&#x5FAA;&#x74B0;&#x8FED;&#x4EE3;&#xFF0C;range&#x90FD;&#x6703;&#x8FD4;&#x8FF4;&#x4E00;&#x5C0D;&#x7D50;&#x679C;&#xFF1B;&#x7576;&#x524D;&#x8FED;&#x4EE3;&#x7684;&#x4E0B;&#x6A19;&#x4EE5;&#x53CA;&#x5728;&#x8A72;&#x4E0B;&#x6A19;&#x8655;&#x7684;&#x5143;&#x7D20;&#x7684;&#x503C;&#x3002;&#x5728;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x91CC;&#xFF0C;&#x6211;&#x5011;&#x4E0D;&#x9700;&#x8981;&#x9019;&#x500B;&#x4E0B;&#x6A19;&#xFF0C;&#x4F46;&#x662F;&#x56E0;&#x7232;range&#x7684;&#x8655;&#x7406;&#x8981;&#x6C42;&#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x8981;&#x540C;&#x6642;&#x8655;&#x7406;&#x4E0B;&#x6A19;&#x548C;&#x503C;&#x3002;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5728;&#x9019;&#x91CC;&#x8072;&#x660E;&#x4E00;&#x500B;&#x63A5;&#x6536;index&#x7684;&#x81E8;&#x6642;&#x8B8A;&#x91CF;&#x4F86;&#x89E3;&#x6C7A;&#x9019;&#x500B;&#x554F;&#x984C;&#xFF0C;&#x4F46;&#x662F;go&#x8A9E;&#x8A00;&#x53C8;&#x4E0D;&#x5141;&#x8A31;&#x96BB;&#x8072;&#x660E;&#x800C;&#x5728;&#x5F8C;&#x7E8C;&#x4EE3;&#x78BC;&#x91CC;&#x4E0D;&#x4F7F;&#x7528;&#x9019;&#x500B;&#x8B8A;&#x91CF;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x9019;&#x6A23;&#x505A;&#x4E86;&#x7DE8;&#x8B6F;&#x5668;&#x6703;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;&#x3002;</p>
<p>&#x5728;Go&#x8A9E;&#x8A00;&#x4E2D;&#xFF0C;&#x61C9;&#x5C0D;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x7684;&#x89E3;&#x6C7A;&#x65B9;&#x6CD5;&#x662F;&#x7528;&#x7A7A;&#x767D;&#x6A19;&#x8B58;&#x7B26;&#xFF0C;&#x5C0D;&#xFF0C;&#x5C31;&#x662F;&#x4E0A;&#x9762;&#x90A3;&#x500B;&#x4E0B;&#x5283;&#x7DDA;<em>&#x3002;&#x7A7A;&#x767D;&#x6A19;&#x8B58;&#x7B26;&#x53EF;&#x4EE5;&#x5728;&#x4EFB;&#x4F55;&#x4F60;&#x63A5;&#x6536;&#x81EA;&#x5DF1;&#x4E0D;&#x9700;&#x8981;&#x8655;&#x7406;&#x7684;&#x503C;&#x6642;&#x4F7F;&#x7528;&#x3002;&#x5728;&#x9019;&#x91CC;&#xFF0C;&#x6211;&#x5011;&#x7528;&#x4ED6;&#x4F86;&#x5FFD;&#x7565;&#x6389;range&#x8FD4;&#x8FF4;&#x7684;&#x90A3;&#x500B;&#x6C92;&#x7528;&#x7684;&#x4E0B;&#x6A19;&#x503C;&#x3002;&#x5927;&#x591A;&#x6578;&#x7684;Go&#x7A0B;&#x5E8F;&#x54E1;&#x90FD;&#x6703;&#x50CF;&#x4E0A;&#x9762;&#x9019;&#x6A23;&#x4F86;&#x5BEB;&#x985E;&#x4F3C;&#x7684;os.Args&#x904D;&#x6B77;&#xFF0C;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x932F;&#x8AA4;&#x7684;&#x4E0B;&#x6A19;&#x5F15;&#x7528;&#x3002;(&#x9019;&#x91CC;&#x53EF;&#x80FD;&#x6709;&#x7FFB;&#x8B6F;&#x932F;&#xFF0C;&#x9644;&#x4E0A;&#x539F;&#x6587;)
Most Go programmers would likely use range and </em> to write the echo program as above, since the indexing over os.Args is implicit, not explicit, and thus easier to get right.</p>
<p>&#x6BCF;&#x4E00;&#x6B21;&#x5FAA;&#x74B0;&#x8FED;&#x4EE3;&#xFF0C;range&#x90FD;&#x6703;&#x8FD4;&#x8FF4;&#x4E00;&#x5C0D;&#x7D50;&#x679C;&#xFF1B;&#x7576;&#x524D;&#x8FED;&#x4EE3;&#x7684;&#x4E0B;&#x6A19;&#x4EE5;&#x53CA;&#x5728;&#x8A72;&#x4E0B;&#x6A19;&#x8655;&#x7684;&#x5143;&#x7D20;&#x7684;&#x503C;&#x3002;&#x5728;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x91CC;&#xFF0C;&#x6211;&#x5011;&#x4E0D;&#x9700;&#x8981;&#x9019;&#x500B;&#x4E0B;&#x6A19;&#xFF0C;&#x4F46;&#x662F;&#x56E0;&#x7232;range&#x7684;&#x8655;&#x7406;&#x8981;&#x6C42;&#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x8981;&#x540C;&#x6642;&#x8655;&#x7406;&#x4E0B;&#x6A19;&#x548C;&#x503C;&#x3002;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5728;&#x9019;&#x91CC;&#x8072;&#x660E;&#x4E00;&#x500B;&#x63A5;&#x6536;index&#x7684;&#x81E8;&#x6642;&#x8B8A;&#x91CF;&#x4F86;&#x89E3;&#x6C7A;&#x9019;&#x500B;&#x554F;&#x984C;&#xFF0C;&#x4F46;&#x662F;Go&#x8A9E;&#x8A00;&#x53C8;&#x4E0D;&#x5141;&#x8A31;&#x96BB;&#x8072;&#x660E;&#x800C;&#x5728;&#x5F8C;&#x7E8C;&#x4EE3;&#x78BC;&#x91CC;&#x4E0D;&#x4F7F;&#x7528;&#x9019;&#x500B;&#x8B8A;&#x91CF;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x9019;&#x6A23;&#x505A;&#x4E86;&#x7DE8;&#x8B6F;&#x5668;&#x6703;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;&#x3002;</p>
<p>&#x5728;Go&#x8A9E;&#x8A00;&#x4E2D;&#xFF0C;&#x61C9;&#x5C0D;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x7684;&#x89E3;&#x6C7A;&#x65B9;&#x6CD5;&#x662F;&#x7528;&#x7A7A;&#x767D;&#x6A19;&#x8B58;&#x7B26;&#xFF0C;&#x5C0D;&#xFF0C;&#x5C31;&#x662F;&#x4E0A;&#x9762;&#x90A3;&#x500B;&#x4E0B;&#x5283;&#x7DDA;_&#x3002;&#x7A7A;&#x767D;&#x6A19;&#x8B58;&#x7B26;&#x53EF;&#x4EE5;&#x5728;&#x4EFB;&#x4F55;&#x4F60;&#x63A5;&#x6536;&#x81EA;&#x5DF1;&#x4E0D;&#x9700;&#x8981;&#x8655;&#x7406;&#x7684;&#x503C;&#x6642;&#x4F7F;&#x7528;&#x3002;&#x5728;&#x9019;&#x91CC;&#xFF0C;&#x6211;&#x5011;&#x7528;&#x5B83;&#x4F86;&#x5FFD;&#x7565;&#x6389;range&#x8FD4;&#x8FF4;&#x7684;&#x90A3;&#x500B;&#x6C92;&#x7528;&#x7684;&#x4E0B;&#x6A19;&#x503C;&#x3002;&#x5927;&#x591A;&#x6578;&#x7684;Go&#x7A0B;&#x5E8F;&#x54E1;&#x90FD;&#x6703;&#x50CF;&#x4E0A;&#x9762;&#x9019;&#x6A23;&#x4F86;&#x5BEB;&#x985E;&#x4F3C;&#x7684;os.Args&#x904D;&#x6B77;&#xFF0C;&#x7531;&#x65BC;&#x904D;&#x6B77;os.Args&#x7684;&#x4E0B;&#x6A19;&#x7D22;&#x5F15;&#x662F;&#x96B1;&#x5F0F;&#x81EA;&#x52D5;&#x751F;&#x6210;&#x7684;&#xFF0C;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x56E0;&#x986F;&#x5F0F;&#x66F4;&#x65B0;&#x7D22;&#x5F15;&#x5C0E;&#x81F4;&#x7684;&#x932F;&#x8AA4;&#x3002;</p>
<p>&#x4E0A;&#x9762;&#x9019;&#x500B;&#x7248;&#x672C;&#x5C07;s&#x548C;sep&#x7684;&#x8072;&#x660E;&#x548C;&#x521D;&#x59CB;&#x5316;&#x90FD;&#x653E;&#x5230;&#x4E86;&#x4E00;&#x8D77;&#xFF0C;&#x4F46;&#x662F;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7B49;&#x50F9;&#x5730;&#x5C07;&#x8072;&#x660E;&#x548C;&#x8CE6;&#x503C;&#x5206;&#x958B;&#x4F86;&#x5BEB;&#xFF0C;&#x4E0B;&#x9762;&#x9019;&#x4E9B;&#x5BEB;&#x6CD5;&#x90FD;&#x662F;&#x7B49;&#x50F9;&#x7684;</p>
<pre><code class="lang-go">s := <span class="hljs-string">&quot;&quot;</span>
<span class="hljs-keyword">var</span> s <span class="hljs-typename">string</span>
<span class="hljs-keyword">var</span> s = <span class="hljs-string">&quot;&quot;</span>
<span class="hljs-keyword">var</span> s <span class="hljs-typename">string</span> = <span class="hljs-string">&quot;&quot;</span>
</code></pre>
<p>&#x90A3;&#x9EBD;&#x9019;&#x4E9B;&#x7B49;&#x50F9;&#x7684;&#x5F62;&#x5F0F;&#x61C9;&#x8A72;&#x600E;&#x9EBD;&#x505A;&#x9078;&#x64C7;&#x5462;&#xFF1F;&#x9019;&#x91CC;&#x63D0;&#x4F9B;&#x4E00;&#x4E9B;&#x5EFA;&#x8B70;&#xFF1A;&#x7B2C;&#x4E00;&#x7A2E;&#x5F62;&#x5F0F;&#xFF0C;&#x6700;&#x597D;&#x96BB;&#x7528;&#x5728;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x5167;&#x90E8;&#xFF0C;&#x800C;package&#x7D1A;&#x522B;&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x8ACB;&#x4E0D;&#x8981;&#x4F7F;&#x7528;&#x9019;&#x6A23;&#x7684;&#x8072;&#x660E;&#x65B9;&#x5F0F;&#x3002;&#x7B2C;&#x4E8C;&#x7A2E;&#x5F62;&#x5F0F;&#x4F9D;&#x8CF4;&#x65BC;string&#x985E;&#x578B;&#x7684;&#x5167;&#x90E8;&#x521D;&#x59CB;&#x5316;&#x6A5F;&#x88FD;&#xFF0C;&#x88AB;&#x521D;&#x59CB;&#x5316;&#x7232;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#x3002;&#x7B2C;&#x4E09;&#x7A2E;&#x5F62;&#x5F0F;&#x4F7F;&#x7528;&#x5F97;&#x5F88;&#x5C11;&#xFF0C;&#x9664;&#x975E;&#x540C;&#x6642;&#x8072;&#x660E;&#x591A;&#x500B;&#x8B8A;&#x91CF;&#x3002;&#x7B2C;&#x56DB;&#x7A2E;&#x5F62;&#x5F0F;&#x6703;&#x986F;&#x5F0F;&#x5730;&#x6A19;&#x660E;&#x8B8A;&#x91CF;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x5728;&#x591A;&#x8B8A;&#x91CF;&#x540C;&#x6642;&#x8072;&#x660E;&#x6642;&#x53EF;&#x4EE5;&#x7528;&#x5230;&#x3002;&#x5BE6;&#x8E10;&#x4E2D;&#x4F60;&#x61C9;&#x8A72;&#x96BB;&#x4F7F;&#x7528;&#x4E0A;&#x9762;&#x7684;&#x524D;&#x5169;&#x7A2E;&#x5F62;&#x5F0F;&#xFF0C;&#x986F;&#x5F0F;&#x5730;&#x6307;&#x5B9A;&#x8B8A;&#x91CF;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x8B93;&#x7DE8;&#x8B6F;&#x5668;&#x81EA;&#x5DF1;&#x53BB;&#x521D;&#x59CB;&#x5316;&#x5176;&#x503C;&#xFF0C;&#x6216;&#x8005;&#x76F4;&#x63A5;&#x7528;&#x96B1;&#x5F0F;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x8868;&#x660E;&#x521D;&#x59CB;&#x503C;&#x600E;&#x9EBD;&#x6A23;&#x4F75;&#x4E0D;&#x91CD;&#x8981;&#x3002;</p>
<p>&#x50CF;&#x4E0A;&#x9762;&#x63D0;&#x5230;&#x7684;&#xFF0C;&#x6BCF;&#x6B21;&#x5FAA;&#x74B0;&#x4E2D;&#x5B57;&#x7B26;&#x4E32;s&#x90FD;&#x6703;&#x5F97;&#x5230;&#x4E00;&#x500B;&#x65B0;&#x5167;&#x5BB9;&#x3002;+=&#x8A9E;&#x53E5;&#x6703;&#x5206;&#x914D;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x4F75;&#x5C07;&#x8001;&#x5B57;&#x7B26;&#x4E32;&#x9023;&#x63A5;&#x8D77;&#x4F86;&#x7684;&#x503C;&#x8CE6;&#x4E88;&#x7D66;&#x5B83;&#x3002;&#x800C;&#x76EE;&#x6A19;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x8001;&#x5B57;&#x9762;&#x503C;&#x5728;&#x5F97;&#x5230;&#x65B0;&#x503C;&#x4EE5;&#x5F8C;&#x5C31;&#x5931;&#x53BB;&#x4E86;&#x7528;&#x8655;&#xFF0C;&#x9019;&#x4E9B;&#x81E8;&#x6642;&#x503C;&#x6703;&#x88AB;go&#x7684;&#x5783;&#x573E;&#x6536;&#x96C6;&#x5668;&#x69A6;&#x6389;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4E0D;&#x65B7;&#x9023;&#x63A5;&#x7684;&#x6578;&#x64DA;&#x91CF;&#x5F88;&#x5927;&#xFF0C;&#x90A3;&#x9EBD;&#x4E0A;&#x9762;&#x9019;&#x7A2E;&#x64CD;&#x4F5C;&#x5C31;&#x662F;&#x6210;&#x672C;&#x975E;&#x5E38;&#x9AD8;&#x7684;&#x64CD;&#x4F5C;&#x3002;&#x66F4;&#x7C21;&#x55AE;&#x4F75;&#x4E14;&#x6709;&#x6548;&#x7684;&#x4E00;&#x7A2E;&#x65B9;&#x5F0F;&#x662F;&#x4F7F;&#x7528;&#x5B57;&#x7B26;&#x4E32;&#x7684;Join&#x51FD;&#x6578;&#xFF0C;&#x50CF;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#xFF1A;</p>
<p>&#x90A3;&#x9EBD;&#x9019;&#x4E9B;&#x7B49;&#x50F9;&#x7684;&#x5F62;&#x5F0F;&#x61C9;&#x8A72;&#x600E;&#x9EBD;&#x505A;&#x9078;&#x64C7;&#x5462;&#xFF1F;&#x9019;&#x91CC;&#x63D0;&#x4F9B;&#x4E00;&#x4E9B;&#x5EFA;&#x8B70;&#xFF1A;&#x7B2C;&#x4E00;&#x7A2E;&#x5F62;&#x5F0F;&#xFF0C;&#x96BB;&#x80FD;&#x7528;&#x5728;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x5167;&#x90E8;&#xFF0C;&#x800C;package&#x7D1A;&#x522B;&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x7981;&#x6B62;&#x7528;&#x9019;&#x6A23;&#x7684;&#x8072;&#x660E;&#x65B9;&#x5F0F;&#x3002;&#x7B2C;&#x4E8C;&#x7A2E;&#x5F62;&#x5F0F;&#x4F9D;&#x8CF4;&#x65BC;string&#x985E;&#x578B;&#x7684;&#x5167;&#x90E8;&#x521D;&#x59CB;&#x5316;&#x6A5F;&#x88FD;&#xFF0C;&#x88AB;&#x521D;&#x59CB;&#x5316;&#x7232;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#x3002;&#x7B2C;&#x4E09;&#x7A2E;&#x5F62;&#x5F0F;&#x4F7F;&#x7528;&#x5F97;&#x5F88;&#x5C11;&#xFF0C;&#x9664;&#x975E;&#x540C;&#x6642;&#x8072;&#x660E;&#x591A;&#x500B;&#x8B8A;&#x91CF;&#x3002;&#x7B2C;&#x56DB;&#x7A2E;&#x5F62;&#x5F0F;&#x6703;&#x986F;&#x5F0F;&#x5730;&#x6A19;&#x660E;&#x8B8A;&#x91CF;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x5728;&#x591A;&#x8B8A;&#x91CF;&#x540C;&#x6642;&#x8072;&#x660E;&#x6642;&#x53EF;&#x4EE5;&#x7528;&#x5230;&#x3002;&#x5BE6;&#x8E10;&#x4E2D;&#x4F60;&#x61C9;&#x8A72;&#x96BB;&#x4F7F;&#x7528;&#x4E0A;&#x9762;&#x7684;&#x524D;&#x5169;&#x7A2E;&#x5F62;&#x5F0F;&#xFF0C;&#x986F;&#x5F0F;&#x5730;&#x6307;&#x5B9A;&#x8B8A;&#x91CF;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x8B93;&#x7DE8;&#x8B6F;&#x5668;&#x81EA;&#x5DF1;&#x53BB;&#x521D;&#x59CB;&#x5316;&#x5176;&#x503C;&#xFF0C;&#x6216;&#x8005;&#x76F4;&#x63A5;&#x7528;&#x96B1;&#x5F0F;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x8868;&#x660E;&#x521D;&#x59CB;&#x503C;&#x600E;&#x9EBD;&#x6A23;&#x4F75;&#x4E0D;&#x91CD;&#x8981;&#x3002;</p>
<p>&#x50CF;&#x4E0A;&#x9762;&#x63D0;&#x5230;&#x7684;&#xFF0C;&#x6BCF;&#x6B21;&#x5FAA;&#x74B0;&#x8FED;&#x4EE3;&#x4E2D;&#x5B57;&#x7B26;&#x4E32;s&#x90FD;&#x6703;&#x5F97;&#x5230;&#x4E00;&#x500B;&#x65B0;&#x5167;&#x5BB9;&#x3002;+=&#x8A9E;&#x53E5;&#x6703;&#x5206;&#x914D;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x4F75;&#x5C07;&#x8001;&#x5B57;&#x7B26;&#x4E32;&#x9023;&#x63A5;&#x8D77;&#x4F86;&#x7684;&#x503C;&#x8CE6;&#x4E88;&#x7D66;&#x5B83;&#x3002;&#x800C;&#x76EE;&#x6A19;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x8001;&#x5B57;&#x9762;&#x503C;&#x5728;&#x5F97;&#x5230;&#x65B0;&#x503C;&#x4EE5;&#x5F8C;&#x5C31;&#x5931;&#x53BB;&#x4E86;&#x7528;&#x8655;&#xFF0C;&#x9019;&#x4E9B;&#x81E8;&#x6642;&#x503C;&#x6703;&#x88AB;Go&#x8A9E;&#x8A00;&#x7684;&#x5783;&#x573E;&#x6536;&#x96C6;&#x5668;&#x69A6;&#x6389;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4E0D;&#x65B7;&#x9023;&#x63A5;&#x7684;&#x6578;&#x64DA;&#x91CF;&#x5F88;&#x5927;&#xFF0C;&#x90A3;&#x9EBD;&#x4E0A;&#x9762;&#x9019;&#x7A2E;&#x64CD;&#x4F5C;&#x5C31;&#x662F;&#x6210;&#x672C;&#x975E;&#x5E38;&#x9AD8;&#x7684;&#x64CD;&#x4F5C;&#x3002;&#x66F4;&#x7C21;&#x55AE;&#x4F75;&#x4E14;&#x6709;&#x6548;&#x7684;&#x4E00;&#x7A2E;&#x65B9;&#x5F0F;&#x662F;&#x4F7F;&#x7528;strings&#x5305;&#x63D0;&#x4F9B;&#x7684;Join&#x51FD;&#x6578;&#xFF0C;&#x50CF;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#xFF1A;</p>
<pre><code class="lang-go">gopl.io/ch1/echo3
<span class="hljs-keyword">func</span> main() {
fmt.Println(strings.Join(os.Args[<span class="hljs-number">1</span>:], <span class="hljs-string">&quot; &quot;</span>))
@@ -2119,12 +2120,11 @@ Most Go programmers would likely use range and </em> to write the echo program a
<p>&#x6700;&#x5F8C;&#xFF0C;&#x5982;&#x679C;&#x6211;&#x5011;&#x5C0D;&#x8F38;&#x9F63;&#x7684;&#x683C;&#x5F0F;&#x4E5F;&#x4E0D;&#x662F;&#x5F88;&#x95DC;&#x5FC3;&#xFF0C;&#x96BB;&#x662F;&#x60F3;&#x7C21;&#x55AE;&#x5730;&#x8F38;&#x9F63;&#x503C;&#x5F97;&#x7684;&#x8A71;&#xFF0C;&#x9084;&#x53EF;&#x4EE5;&#x50CF;&#x4E0B;&#x9762;&#x9019;&#x9EBD;&#x5BEB;&#xFF0C;Println&#x51FD;&#x6578;&#x6703;&#x7232;&#x6211;&#x5011;&#x81EA;&#x52D5;&#x683C;&#x5F0F;&#x5316;&#x8F38;&#x9F63;&#x3002;</p>
<pre><code class="lang-go">fmt.Println(os.Args[<span class="hljs-number">1</span>:])
</code></pre>
<p>&#x9019;&#x500B;&#x8F38;&#x9F63;&#x7D50;&#x679C;&#x548C;&#x524D;&#x9762;&#x7684;string.Join&#x5F97;&#x5230;&#x7684;&#x7D50;&#x679C;&#x5F88;&#x76F8;&#x4F3C;&#xFF0C;&#x96BB;&#x662F;&#x88AB;&#x81EA;&#x52D5;&#x5730;&#x653E;&#x5230;&#x4E86;&#x4E00;&#x500B;&#x62EC;&#x865F;&#x91CC;&#xFF0C;&#x5C0D;slice&#x8ABF;&#x7528;Println&#x51FD;&#x6578;&#x90FD;&#x6703;&#x88AB;&#x6253;&#x5370;&#x6210;&#x9019;&#x6A23;&#x5F62;&#x5F0F;&#x7684;&#x7D50;&#x679C;&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x662F;&#x5E7E;&#x9053;&#x7DF4;&#x7FD2;&#x984C;&#xFF1A;</p>
<pre><code>Exercise 1.1:&#x8129;&#x6539;echo&#x7A0B;&#x5E8F;&#xFF0C;&#x4F7F;&#x5176;&#x80FD;&#x5920;&#x6253;&#x5370;os.Args[0]&#x3002;
Exercise 1.2:&#x8129;&#x6539;echo&#x7A0B;&#x5E8F;&#xFF0C;&#x4F7F;&#x5176;&#x6253;&#x5370;value&#x548C;index&#xFF0C;&#x6BCF;&#x500B;value&#x548C;index&#x986F;&#x793A;&#x4E00;&#x884C;&#x3002;
Exercise 1.3:&#x4E0A;&#x624B;&#x5BE6;&#x8E10;&#x524D;&#x9762;&#x63D0;&#x5230;&#x7684;strings.Join&#x548C;&#x76F4;&#x63A5;Println&#xFF0C;&#x4F75;&#x89C0;&#x5BDF;&#x8F38;&#x9F63;&#x7D50;&#x679C;&#x7684;&#x5340;&#x522B;&#x3002;
</code></pre>
<p>&#x9019;&#x500B;&#x8F38;&#x9F63;&#x7D50;&#x679C;&#x548C;&#x524D;&#x9762;&#x7684;string.Join&#x5F97;&#x5230;&#x7684;&#x7D50;&#x679C;&#x5F88;&#x76F8;&#x4F3C;&#xFF0C;&#x96BB;&#x662F;&#x88AB;&#x81EA;&#x52D5;&#x5730;&#x653E;&#x5230;&#x4E86;&#x4E00;&#x500B;&#x65B9;&#x62EC;&#x865F;&#x91CC;&#xFF0C;&#x5C0D;slice&#x8ABF;&#x7528;Println&#x51FD;&#x6578;&#x90FD;&#x6703;&#x88AB;&#x6253;&#x5370;&#x6210;&#x9019;&#x6A23;&#x5F62;&#x5F0F;&#x7684;&#x7D50;&#x679C;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 1.1&#xFF1A;</strong> &#x8129;&#x6539;echo&#x7A0B;&#x5E8F;&#xFF0C;&#x4F7F;&#x5176;&#x80FD;&#x5920;&#x6253;&#x5370;os.Args[0]&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 1.2&#xFF1A;</strong> &#x8129;&#x6539;echo&#x7A0B;&#x5E8F;&#xFF0C;&#x4F7F;&#x5176;&#x6253;&#x5370;value&#x548C;index&#xFF0C;&#x6BCF;&#x500B;value&#x548C;index&#x986F;&#x793A;&#x4E00;&#x884C;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 1.3&#xFF1A;</strong> &#x4E0A;&#x624B;&#x5BE6;&#x8E10;&#x524D;&#x9762;&#x63D0;&#x5230;&#x7684;strings.Join&#x548C;&#x76F4;&#x63A5;Println&#xFF0C;&#x4F75;&#x89C0;&#x5BDF;&#x8F38;&#x9F63;&#x7D50;&#x679C;&#x7684;&#x5340;&#x522B;&#x3002;</p>
</section>

View File

@@ -48,7 +48,7 @@
<body>
<div class="book" data-level="1.3" data-chapter-title="査找重複的行" data-filepath="ch1/ch1-03.md" data-basepath=".." data-revision="Mon Dec 21 2015 12:51:02 GMT+0800 (中国标准时间)">
<div class="book" data-level="1.3" data-chapter-title="査找重複的行" data-filepath="ch1/ch1-03.md" data-basepath=".." data-revision="Thu Dec 24 2015 14:42:02 GMT+0800 (中国标准时间)">
<div class="book-summary">
@@ -1975,16 +1975,16 @@
</li>
<li class="chapter " data-level="14" data-path="errata.html">
<li class="chapter " data-level="14" data-path="CONTRIBUTORS.html">
<a href="../errata.html">
<a href="../CONTRIBUTORS.html">
<i class="fa fa-check"></i>
<b>14.</b>
勘誤
附録
</a>
@@ -2024,8 +2024,8 @@
<section class="normal" id="section-">
<h2 id="13-&#x67FB;&#x627E;&#x91CD;&#x8907;&#x7684;&#x884C;">1.3. &#x67FB;&#x627E;&#x91CD;&#x8907;&#x7684;&#x884C;</h2>
<p>&#x6587;&#x4EF6;&#x62F7;&#x8C9D;&#x3001;&#x6587;&#x4EF6;&#x6253;&#x5370;&#x3001;&#x6587;&#x4EF6;&#x8490;&#x7D22;&#x3001;&#x6587;&#x4EF6;&#x6392;&#x5E8F;&#x3001;&#x6587;&#x4EF6;&#x7D71;&#x8A08;&#x985E;&#x7684;&#x7A0B;&#x5E8F;&#x4E00;&#x822C;&#x90FD;&#x6703;&#x6709;&#x6BD4;&#x8F03;&#x76F8;&#x4F3C;&#x7684;&#x7A0B;&#x5E8F;&#x7D50;&#x69CB;&#xFF1A;&#x8655;&#x7406;&#x8F38;&#x5165;&#x7684;&#x4E00;&#x500B;&#x5FAA;&#x74B0;&#xFF0C;&#x5728;&#x6BCF;&#x4E00;&#x500B;&#x8F38;&#x5165;&#x5143;&#x7D20;&#x4E0A;&#x57F7;&#x884C;&#x8A08;&#x7B97;&#x8655;&#x7406;&#xFF0C;&#x5728;&#x8655;&#x7406;&#x7684;&#x540C;&#x6642;&#x6216;&#x8005;&#x8655;&#x7406;&#x5B8C;&#x6210;&#x4E4B;&#x5F8C;&#x9032;&#x884C;&#x7D50;&#x679C;&#x8F38;&#x9F63;&#x3002;&#x6211;&#x5011;&#x6703;&#x5C55;&#x793A;&#x4E00;&#x500B;&#x53EB;dup&#x7A0B;&#x5E8F;&#x7684;&#x4E09;&#x500B;&#x7248;&#x672C;&#xFF1B;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x7684;&#x9748;&#x611F;&#x4F86;&#x81EA;&#x65BC;linux&#x7684;uniq&#x547D;&#x4EE4;&#xFF0C;&#x6211;&#x5011;&#x7684;&#x7A0B;&#x5E8F;&#x5C07;&#x6703;&#x627E;&#x5230;&#x76F8;&#x9130;&#x7684;&#x91CD;&#x8907;&#x7684;&#x884C;&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x63D0;&#x4F9B;&#x7684;&#x6A21;&#x5F0F;&#x53EF;&#x4EE5;&#x5F88;&#x65B9;&#x4FBF;&#x5730;&#x88AB;&#x8129;&#x6539;&#x4F86;&#x5B8C;&#x6210;&#x4E0D;&#x540C;&#x7684;&#x9700;&#x6C42;&#x3002;</p>
<p>&#x7B2C;&#x4E00;&#x500B;&#x7248;&#x672C;&#x7684;dup&#x6703;&#x8F38;&#x9F63;&#x6A19;&#x6E96;&#x8F38;&#x5165;&#x6D41;&#x4E2D;&#x7684;&#x9F63;&#x73FE;&#x591A;&#x6B21;&#x7684;&#x884C;&#xFF0C;&#x5728;&#x884C;&#x5167;&#x5BB9;&#x524D;&#x6703;&#x6709;&#x5176;&#x9F63;&#x73FE;&#x6B21;&#x6578;&#x7684;&#x8A08;&#x6578;&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x5C07;&#x5F15;&#x5165;if&#x8868;&#x9054;&#x5F0F;&#xFF0C;map&#x5167;&#x7F6E;&#x6578;&#x64DA;&#x7D50;&#x679C;&#x548C;bufio&#x7684;package&#x3002;</p>
<p>&#x6587;&#x4EF6;&#x62F7;&#x8C9D;&#x3001;&#x6587;&#x4EF6;&#x6253;&#x5370;&#x3001;&#x6587;&#x4EF6;&#x8490;&#x7D22;&#x3001;&#x6587;&#x4EF6;&#x6392;&#x5E8F;&#x3001;&#x6587;&#x4EF6;&#x7D71;&#x8A08;&#x985E;&#x7684;&#x7A0B;&#x5E8F;&#x4E00;&#x822C;&#x90FD;&#x6703;&#x6709;&#x6BD4;&#x8F03;&#x76F8;&#x4F3C;&#x7684;&#x7A0B;&#x5E8F;&#x7D50;&#x69CB;&#xFF1A;&#x4E00;&#x500B;&#x8655;&#x7406;&#x8F38;&#x5165;&#x7684;&#x5FAA;&#x74B0;&#xFF0C;&#x5728;&#x6BCF;&#x4E00;&#x500B;&#x8F38;&#x5165;&#x5143;&#x7D20;&#x4E0A;&#x57F7;&#x884C;&#x8A08;&#x7B97;&#x8655;&#x7406;&#xFF0C;&#x5728;&#x8655;&#x7406;&#x7684;&#x540C;&#x6642;&#x6216;&#x8005;&#x8655;&#x7406;&#x5B8C;&#x6210;&#x4E4B;&#x5F8C;&#x9032;&#x884C;&#x7D50;&#x679C;&#x8F38;&#x9F63;&#x3002;&#x6211;&#x5011;&#x6703;&#x5C55;&#x793A;&#x4E00;&#x500B;&#x53EB;dup&#x7A0B;&#x5E8F;&#x7684;&#x4E09;&#x500B;&#x7248;&#x672C;&#xFF1B;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x7684;&#x9748;&#x611F;&#x4F86;&#x81EA;&#x65BC;linux&#x7684;uniq&#x547D;&#x4EE4;&#xFF0C;&#x6211;&#x5011;&#x7684;&#x7A0B;&#x5E8F;&#x5C07;&#x6703;&#x627E;&#x5230;&#x76F8;&#x9130;&#x7684;&#x91CD;&#x8907;&#x7684;&#x884C;&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x63D0;&#x4F9B;&#x7684;&#x6A21;&#x5F0F;&#x53EF;&#x4EE5;&#x5F88;&#x65B9;&#x4FBF;&#x5730;&#x88AB;&#x8129;&#x6539;&#x4F86;&#x5B8C;&#x6210;&#x4E0D;&#x540C;&#x7684;&#x9700;&#x6C42;&#x3002;</p>
<p>&#x7B2C;&#x4E00;&#x500B;&#x7248;&#x672C;&#x7684;dup&#x6703;&#x8F38;&#x9F63;&#x6A19;&#x6E96;&#x8F38;&#x5165;&#x6D41;&#x4E2D;&#x7684;&#x9F63;&#x73FE;&#x591A;&#x6B21;&#x7684;&#x884C;&#xFF0C;&#x5728;&#x884C;&#x5167;&#x5BB9;&#x524D;&#x6703;&#x6709;&#x5176;&#x9F63;&#x73FE;&#x6B21;&#x6578;&#x7684;&#x8A08;&#x6578;&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x5C07;&#x5F15;&#x5165;if&#x8868;&#x9054;&#x5F0F;&#xFF0C;map&#x5167;&#x7F6E;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x548C;bufio&#x7684;package&#x3002;</p>
<pre><code class="lang-go">gopl.io/ch1/dup1
<span class="hljs-comment">// Dup1 prints the text of each line that appears more than</span>
<span class="hljs-comment">// once in the standard input, preceded by its count.</span>
@@ -2051,31 +2051,31 @@
}
}
</code></pre>
<p>&#x548C;&#x6211;&#x5011;&#x524D;&#x9762;&#x63D0;&#x5230;&#x7684;for&#x5FAA;&#x74B0;&#x4E00;&#x6A23;&#xFF0C;&#x5728;if&#x689D;&#x4EF6;&#x7684;&#x5169;&#x908A;&#xFF0C;&#x6211;&#x5011;&#x4E5F;&#x4E0D;&#x9700;&#x8981;&#x52A0;&#x62EC;&#x865F;&#xFF0C;&#x4F46;&#x662F;if&#x8868;&#x9054;&#x5F0F;&#x5F8C;&#x7684;&#x908F;&#x8F2F;&#x9AD4;&#x7684;&#x82B1;&#x62EC;&#x865F;&#x662F;&#x4E0D;&#x80FD;&#x7701;&#x7565;&#x7684;&#x3002;&#x5982;&#x679C;&#x9700;&#x8981;&#x7684;&#x8A71;&#xFF0C;&#x50CF;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x4E00;&#x6A23;&#xFF0C;&#x9019;&#x500B;&#x8868;&#x9054;&#x5F0F;&#x4E5F;&#x53EF;&#x4EE5;&#x6709;else&#x90E8;&#x5206;&#xFF0C;&#x9019;&#x90E8;&#x5206;&#x908F;&#x8F2F;&#x6703;&#x5728;if&#x4E2D;&#x7684;&#x689D;&#x4EF6;&#x7D50;&#x679C;&#x7232;false&#x6642;&#x88AB;&#x57F7;&#x884C;&#x3002;</p>
<p>map&#x662F;go&#x8A9E;&#x8A00;&#x5167;&#x7F6E;&#x7684;key/value&#x6578;&#x64DA;&#x7D50;&#x69CB;&#xFF0C;&#x9019;&#x500B;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x80FD;&#x5920;&#x63D0;&#x4F9B;&#x5E38;&#x6578;&#x6642;&#x9593;&#x7684;&#x5B58;&#x5132;&#x3001;&#x7A6B;&#x53D6;&#x3001;&#x6E2C;&#x8A66;&#x64CD;&#x4F5C;&#x3002;key&#x53EF;&#x4EE5;&#x662F;&#x4EFB;&#x610F;&#x6578;&#x64DA;&#x985E;&#x578B;&#xFF0C;&#x96BB;&#x8981;&#x8A72;&#x985E;&#x578B;&#x80FD;&#x5920;&#x7528;==&#x4F86;&#x9032;&#x884C;&#x6BD4;&#x8F03;&#xFF0C;string&#x662F;&#x6700;&#x5E38;&#x7528;&#x7684;key&#x985E;&#x578B;&#x3002;&#x800C;value&#x985E;&#x578B;&#x7684;&#x8303;&#x570D;&#x5C31;&#x66F4;&#x5927;&#x4E86;&#xFF0C;&#x57FA;&#x672C;&#x4E0A;&#x4EC0;&#x9EBD;&#x985E;&#x578B;&#x90FD;&#x662F;&#x53EF;&#x4EE5;&#x7684;&#x3002;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x4E2D;&#x7684;key&#x90FD;&#x662F;string&#x985E;&#x578B;&#xFF0C;value&#x7528;&#x7684;&#x662F;int&#x985E;&#x578B;&#x3002;&#x6211;&#x5011;&#x7528;&#x5167;&#x7F6E;make&#x51FD;&#x6578;&#x4F86;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x7A7A;&#x7684;map&#xFF0C;&#x7576;&#x7136;&#x4E86;&#xFF0C;make&#x65B9;&#x6CD5;&#x9084;&#x53EF;&#x4EE5;&#x6709;&#x522B;&#x7684;&#x7528;&#x8655;&#x3002;&#x5728;4.3&#x7AE0;&#x4E2D;&#x6211;&#x5011;&#x9084;&#x6703;&#x5C0D;map&#x9032;&#x884C;&#x66F4;&#x6DF1;&#x5EA6;&#x7684;&#x8A0E;&#x8AD6;&#x3002;</p>
<p>&#x548C;&#x6211;&#x5011;&#x524D;&#x9762;&#x63D0;&#x5230;&#x7684;for&#x5FAA;&#x74B0;&#x4E00;&#x6A23;&#xFF0C;&#x5728;if&#x689D;&#x4EF6;&#x7684;&#x5169;&#x908A;&#xFF0C;&#x6211;&#x5011;&#x4E5F;&#x4E0D;&#x9700;&#x8981;&#x52A0;&#x62EC;&#x865F;&#xFF0C;&#x4F46;&#x662F;if&#x8868;&#x9054;&#x5F0F;&#x5F8C;&#x7684;&#x908F;&#x8F2F;&#x9AD4;&#x7684;&#x82B1;&#x62EC;&#x865F;&#x662F;&#x4E0D;&#x80FD;&#x7701;&#x7565;&#x7684;&#x3002;&#x5982;&#x679C;&#x9700;&#x8981;&#x7684;&#x8A71;&#xFF0C;&#x50CF;&#x5176;&#x5B83;&#x7DE8;&#x7A0B;&#x8A9E;&#x8A00;&#x4E00;&#x6A23;&#xFF0C;&#x9019;&#x500B;if&#x8868;&#x9054;&#x5F0F;&#x4E5F;&#x53EF;&#x4EE5;&#x6709;else&#x90E8;&#x5206;&#xFF0C;&#x9019;&#x90E8;&#x5206;&#x908F;&#x8F2F;&#x6703;&#x5728;if&#x4E2D;&#x7684;&#x689D;&#x4EF6;&#x7D50;&#x679C;&#x7232;false&#x6642;&#x88AB;&#x57F7;&#x884C;&#x3002;</p>
<p>map&#x662F;Go&#x8A9E;&#x8A00;&#x5167;&#x7F6E;&#x7684;key/value&#x578B;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#xFF0C;&#x9019;&#x500B;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x80FD;&#x5920;&#x63D0;&#x4F9B;&#x5E38;&#x6578;&#x6642;&#x9593;&#x7684;&#x5B58;&#x5132;&#x3001;&#x7A6B;&#x53D6;&#x3001;&#x6E2C;&#x8A66;&#x64CD;&#x4F5C;&#x3002;key&#x53EF;&#x4EE5;&#x662F;&#x4EFB;&#x610F;&#x6578;&#x64DA;&#x985E;&#x578B;&#xFF0C;&#x96BB;&#x8981;&#x8A72;&#x985E;&#x578B;&#x80FD;&#x5920;&#x7528;==&#x904B;&#x7B97;&#x7B26;&#x4F86;&#x9032;&#x884C;&#x6BD4;&#x8F03;&#xFF0C;string&#x662F;&#x6700;&#x5E38;&#x7528;&#x7684;key&#x985E;&#x578B;&#x3002;&#x800C;value&#x985E;&#x578B;&#x7684;&#x8303;&#x570D;&#x5C31;&#x66F4;&#x5927;&#x4E86;&#xFF0C;&#x57FA;&#x672C;&#x4E0A;&#x4EC0;&#x9EBD;&#x985E;&#x578B;&#x90FD;&#x662F;&#x53EF;&#x4EE5;&#x7684;&#x3002;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x4E2D;&#x7684;key&#x90FD;&#x662F;string&#x985E;&#x578B;&#xFF0C;value&#x7528;&#x7684;&#x662F;int&#x985E;&#x578B;&#x3002;&#x6211;&#x5011;&#x7528;&#x5167;&#x7F6E;make&#x51FD;&#x6578;&#x4F86;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x7A7A;&#x7684;map&#xFF0C;&#x7576;&#x7136;&#x4E86;&#xFF0C;make&#x65B9;&#x6CD5;&#x9084;&#x53EF;&#x4EE5;&#x6709;&#x522B;&#x7684;&#x7528;&#x8655;&#x3002;&#x5728;4.3&#x7AE0;&#x4E2D;&#x6211;&#x5011;&#x9084;&#x6703;&#x5C0D;map&#x9032;&#x884C;&#x66F4;&#x6DF1;&#x5165;&#x7684;&#x8A0E;&#x8AD6;&#x3002;</p>
<p>dup&#x7A0B;&#x5E8F;&#x6BCF;&#x6B21;&#x8B80;&#x53D6;&#x8F38;&#x5165;&#x7684;&#x4E00;&#x884C;&#xFF0C;&#x9019;&#x4E00;&#x884C;&#x7684;&#x5167;&#x5BB9;&#x6703;&#x88AB;&#x7576;&#x505A;&#x4E00;&#x500B;map&#x7684;key&#xFF0C;&#x800C;&#x5176;value&#x503C;&#x6703;&#x88AB;+1&#x3002;counts[input.Text()]++&#x9019;&#x500B;&#x8A9E;&#x53E5;&#x548C;&#x4E0B;&#x9762;&#x7684;&#x5169;&#x53E5;&#x662F;&#x7B49;&#x50F9;&#x7684;&#xFF1A;</p>
<pre><code class="lang-go">line := input.Text()
counts[line] = counts[line] + <span class="hljs-number">1</span>
</code></pre>
<p>&#x7576;&#x7136;&#x4E86;&#xFF0C;&#x5728;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x91CC;&#x6211;&#x5011;&#x4F75;&#x4E0D;&#x7528;&#x64D4;&#x5FC3;map&#x5728;&#x6C92;&#x6709;&#x7576;&#x524D;&#x7684;key&#x6642;&#x5C31;&#x5C0D;&#x5176;&#x9032;&#x884C;++&#x64CD;&#x4F5C;&#x6703;&#x6709;&#x4EC0;&#x9EBD;&#x554F;&#x984C;&#xFF0C;&#x56E0;&#x7232;go&#x8A9E;&#x8A00;&#x5728;&#x78B0;&#x5230;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x6642;&#xFF0C;&#x6703;&#x81EA;&#x52D5;&#x5C07;&#x5176;&#x521D;&#x59CB;&#x5316;&#x7232;0&#xFF0C;&#x7136;&#x5F8C;&#x518D;&#x9032;&#x884C;&#x64CD;&#x4F5C;&#x3002;</p>
<p>&#x5728;&#x9019;&#x91CC;&#x6211;&#x5011;&#x53C8;&#x7528;&#x4E86;&#x4E00;&#x500B;range&#x7684;&#x5FAA;&#x74B0;&#x4F86;&#x6253;&#x5370;&#x7D50;&#x679C;&#xFF0C;&#x9019;&#x6B21;range&#x662F;&#x88AB;&#x7528;&#x5728;map&#x9019;&#x500B;&#x6578;&#x64DA;&#x7D50;&#x679C;&#x4E0A;&#x3002;&#x9019;&#x4E00;&#x6B21;&#x7684;&#x60C5;&#x6CC1;&#x548C;&#x4E0A;&#x6B21;&#x6BD4;&#x8F03;&#x985E;&#x578B;&#xFF0C;range&#x6703;&#x8FD4;&#x8FF4;&#x5169;&#x500B;&#x503C;&#xFF0C;&#x4E00;&#x500B;key&#x548C;&#x5728;map&#x5C0D;&#x61C9;&#x9019;&#x500B;key&#x7684;value&#x3002;&#x5C0D;map&#x9032;&#x884C;range&#x5FAA;&#x74B0;&#x6642;&#xFF0C;&#x5176;&#x9806;&#x5E8F;&#x662F;&#x4E0D;&#x78BA;&#x5B9A;&#x7684;&#xFF0C;&#x5F9E;&#x5BE6;&#x8E10;&#x4F86;&#x770B;&#xFF0C;&#x5F88;&#x53EF;&#x80FD;&#x6BCF;&#x6B21;&#x904B;&#x884C;&#x90FD;&#x6703;&#x6709;&#x4E0D;&#x4E00;&#x6A23;&#x7684;&#x7D50;&#x679C;(&#x8B6F;&#x8A3B;&#xFF1A;&#x9019;&#x662F;go&#x7684;&#x8A2D;&#x8A08;&#x8005;&#x6709;&#x610F;&#x7232;&#x4E4B;&#x7684;&#xFF0C;&#x56E0;&#x7232;&#x5176;&#x5E95;&#x5C64;&#x5BE6;&#x73FE;&#x4E0D;&#x4FDD;&#x8B49;&#x63D2;&#x5165;&#x9806;&#x5E8F;&#x548C;&#x904D;&#x6B77;&#x9806;&#x5E8F;&#x4E00;&#x81F4;&#xFF0C;&#x800C;&#x5E0C;&#x671B;&#x7A0B;&#x5E8F;&#x54E1;&#x4E0D;&#x8981;&#x4F9D;&#x8CF4;&#x904D;&#x6B77;&#x6642;&#x7684;&#x9806;&#x5E8F;&#xFF0C;&#x6240;&#x4EE5;&#x69A6;&#x8106;&#x76F4;&#x63A5;&#x5728;&#x904D;&#x6B77;&#x7684;&#x6642;&#x5019;&#x505A;&#x4E86;&#x96A8;&#x6A5F;&#x5316;&#x8655;&#x7406;&#xFF0C;&#x9189;&#x4E86;)&#xFF0C;&#x4F86;&#x907F;&#x514D;&#x7A0B;&#x5E8F;&#x54E1;&#x5728;&#x696D;&#x52D9;&#x4E2D;&#x4F9D;&#x8CF4;&#x904D;&#x6B77;&#x6642;&#x7684;&#x9806;&#x5E8F;&#x3002;</p>
<p>&#x7576;&#x7136;&#x4E86;&#xFF0C;&#x5728;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x91CC;&#x6211;&#x5011;&#x4F75;&#x4E0D;&#x7528;&#x64D4;&#x5FC3;map&#x5728;&#x6C92;&#x6709;&#x7576;&#x524D;&#x7684;key&#x6642;&#x5C31;&#x5C0D;&#x5176;&#x9032;&#x884C;++&#x64CD;&#x4F5C;&#x6703;&#x6709;&#x4EC0;&#x9EBD;&#x554F;&#x984C;&#xFF0C;&#x56E0;&#x7232;Go&#x8A9E;&#x8A00;&#x5728;&#x78B0;&#x5230;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x6642;&#xFF0C;&#x6703;&#x81EA;&#x52D5;&#x5C07;&#x5176;&#x521D;&#x59CB;&#x5316;&#x7232;0&#xFF0C;&#x7136;&#x5F8C;&#x518D;&#x9032;&#x884C;&#x64CD;&#x4F5C;&#x3002;</p>
<p>&#x5728;&#x9019;&#x91CC;&#x6211;&#x5011;&#x53C8;&#x7528;&#x4E86;&#x4E00;&#x500B;range&#x7684;&#x5FAA;&#x74B0;&#x4F86;&#x6253;&#x5370;&#x7D50;&#x679C;&#xFF0C;&#x9019;&#x6B21;range&#x662F;&#x88AB;&#x7528;&#x5728;map&#x9019;&#x500B;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x4E4B;&#x4E0A;&#x3002;&#x9019;&#x4E00;&#x6B21;&#x7684;&#x60C5;&#x6CC1;&#x548C;&#x4E0A;&#x6B21;&#x6BD4;&#x8F03;&#x985E;&#x4F3C;&#xFF0C;range&#x6703;&#x8FD4;&#x8FF4;&#x5169;&#x500B;&#x503C;&#xFF0C;&#x4E00;&#x500B;key&#x548C;&#x5728;map&#x5C0D;&#x61C9;&#x9019;&#x500B;key&#x7684;value&#x3002;&#x5C0D;map&#x9032;&#x884C;range&#x5FAA;&#x74B0;&#x6642;&#xFF0C;&#x5176;&#x8FED;&#x4EE3;&#x9806;&#x5E8F;&#x662F;&#x4E0D;&#x78BA;&#x5B9A;&#x7684;&#xFF0C;&#x5F9E;&#x5BE6;&#x8E10;&#x4F86;&#x770B;&#xFF0C;&#x5F88;&#x53EF;&#x80FD;&#x6BCF;&#x6B21;&#x904B;&#x884C;&#x90FD;&#x6703;&#x6709;&#x4E0D;&#x4E00;&#x6A23;&#x7684;&#x7D50;&#x679C;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x9019;&#x662F;Go&#x8A9E;&#x8A00;&#x7684;&#x8A2D;&#x8A08;&#x8005;&#x6709;&#x610F;&#x7232;&#x4E4B;&#x7684;&#xFF0C;&#x56E0;&#x7232;&#x5176;&#x5E95;&#x5C64;&#x5BE6;&#x73FE;&#x4E0D;&#x4FDD;&#x8B49;&#x63D2;&#x5165;&#x9806;&#x5E8F;&#x548C;&#x904D;&#x6B77;&#x9806;&#x5E8F;&#x4E00;&#x81F4;&#xFF0C;&#x4E5F;&#x5E0C;&#x671B;&#x7A0B;&#x5E8F;&#x54E1;&#x4E0D;&#x8981;&#x4F9D;&#x8CF4;&#x904D;&#x6B77;&#x6642;&#x7684;&#x9806;&#x5E8F;&#xFF0C;&#x6240;&#x4EE5;&#x69A6;&#x8106;&#x76F4;&#x63A5;&#x5728;&#x904D;&#x6B77;&#x7684;&#x6642;&#x5019;&#x505A;&#x4E86;&#x96A8;&#x6A5F;&#x5316;&#x8655;&#x7406;&#xFF0C;&#x9189;&#x4E86;&#x3002;&#x88DC;&#x5145;&#xFF1A;&#x597D;&#x50CF;&#x8AAC;&#x96A8;&#x6A5F;&#x5E8F;&#x53EF;&#x4EE5;&#x9632;&#x6B62;&#x67D0;&#x7A2E;&#x985E;&#x578B;&#x7684;&#x653B;&#x64CA;&#xFF0C;&#x96D6;&#x7136;&#x4E0D;&#x592A;&#x660E;&#x767D;&#xFF0C;&#x4F46;&#x662F;&#x611F;&#x89BA;&#x9084;&#x883B;&#x53B2;&#x5BB3;&#x7684;&#xFF09;&#xFF0C;&#x4F86;&#x907F;&#x514D;&#x7A0B;&#x5E8F;&#x54E1;&#x5728;&#x696D;&#x52D9;&#x4E2D;&#x4F9D;&#x8CF4;&#x904D;&#x6B77;&#x6642;&#x7684;&#x9806;&#x5E8F;&#x3002;</p>
<p>&#x7136;&#x5F8C;&#x8F2A;&#x5230;&#x6211;&#x5011;&#x4F8B;&#x5B50;&#x4E2D;&#x7684;bufio&#x9019;&#x500B;package&#x4E86;&#xFF0C;&#x9019;&#x500B;package&#x4E3B;&#x8981;&#x7684;&#x76EE;&#x7684;&#x662F;&#x5E6B;&#x52A9;&#x6211;&#x5011;&#x66F4;&#x65B9;&#x4FBF;&#x6709;&#x6548;&#x5730;&#x8655;&#x7406;&#x7A0B;&#x5E8F;&#x7684;&#x8F38;&#x5165;&#x548C;&#x8F38;&#x9F63;&#x3002;&#x800C;&#x9019;&#x500B;&#x5305;&#x6700;&#x6709;&#x7528;&#x7684;&#x4E00;&#x500B;&#x7279;&#x6027;&#x5C31;&#x662F;&#x5176;&#x4E2D;&#x7684;&#x4E00;&#x500B;Scanner&#x985E;&#x578B;&#xFF0C;&#x7528;&#x5B83;&#x53EF;&#x4EE5;&#x7C21;&#x55AE;&#x5730;&#x63A5;&#x6536;&#x8F38;&#x5165;&#xFF0C;&#x6216;&#x8005;&#x628A;&#x8F38;&#x5165;&#x6253;&#x6563;&#x6210;&#x884C;&#x6216;&#x8005;&#x55AE;&#x8A5E;&#xFF1B;&#x9019;&#x500B;&#x985E;&#x578B;&#x901A;&#x5E38;&#x662F;&#x8655;&#x7406;&#x884C;&#x5F62;&#x5F0F;&#x7684;&#x8F38;&#x5165;&#x6700;&#x7C21;&#x55AE;&#x7684;&#x65B9;&#x6CD5;&#x4E86;&#x3002;</p>
<p>&#x672C;&#x7A0B;&#x5E8F;&#x4E2D;&#x7528;&#x4E86;&#x4E00;&#x500B;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#xFF0C;&#x4F86;&#x5275;&#x5EFA;&#x4E00;&#x500B;buffio.Scanner&#x5C0D;&#x8C61;&#xFF1A;</p>
<pre><code>input := bufio.NewScanner(os.Stdin)
</code></pre><p>scanner&#x5C0D;&#x8C61;&#x53EF;&#x4EE5;&#x5F9E;&#x7A0B;&#x5E8F;&#x7684;&#x6A19;&#x6E96;&#x8F38;&#x5165;&#x4E2D;&#x8B80;&#x53D6;&#x5167;&#x5BB9;&#x3002;&#x5C0D;input.Scanner&#x7684;&#x6BCF;&#x4E00;&#x6B21;&#x8ABF;&#x7528;&#x90FD;&#x6703;&#x8ABF;&#x5165;&#x4E00;&#x500B;&#x65B0;&#x884C;&#xFF0C;&#x4F75;&#x4E14;&#x6703;&#x81EA;&#x52D5;&#x5C07;&#x5176;&#x884C;&#x672B;&#x7684;&#x63DB;&#x884C;&#x7B26;&#x53BB;&#x6389;&#xFF1B;&#x5176;&#x7D50;&#x679C;&#x53EF;&#x4EE5;&#x7528;input.Text()&#x5F97;&#x5230;&#x3002;Scan&#x65B9;&#x6CD5;&#x5728;&#x8B80;&#x5230;&#x4E86;&#x65B0;&#x884C;&#x7684;&#x6642;&#x5019;&#x6703;&#x8FD4;&#x8FF4;true&#xFF0C;&#x800C;&#x5728;&#x6C92;&#x6709;&#x65B0;&#x884C;&#x88AB;&#x8B80;&#x5165;&#x6642;&#xFF0C;&#x6703;&#x8FD4;&#x8FF4;false&#x3002;</p>
<p>&#x4F8B;&#x5B50;&#x4E2D;&#x9084;&#x6709;&#x4E00;&#x500B;fmt.Printf&#xFF0C;&#x9019;&#x500B;&#x51FD;&#x6578;&#x548C;C&#x7E6B;&#x7684;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x91CC;&#x7684;&#x90A3;&#x500B;printf&#x51FD;&#x6578;&#x5DEE;&#x4E0D;&#x591A;&#xFF0C;&#x90FD;&#x662F;&#x683C;&#x5F0F;&#x5316;&#x8F38;&#x9F63;&#x7684;&#x65B9;&#x6CD5;&#x3002;fmt.Printf&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x53C3;&#x6578;&#x537D;&#x662F;&#x8F38;&#x9F63;&#x5167;&#x5BB9;&#x7684;&#x683C;&#x5F0F;&#x898F;&#x7D04;&#xFF0C;&#x6BCF;&#x4E00;&#x500B;&#x53C3;&#x6578;&#x5982;&#x679C;&#x683C;&#x5F0F;&#x5316;&#x662F;&#x53D6;&#x6C7A;&#x65BC;&#x5728;&#x683C;&#x5F0F;&#x5316;&#x5B57;&#x7B26;&#x4E32;&#x91CC;&#x9F63;&#x73FE;&#x7684;&#x201C;&#x8F49;&#x63DB;&#x5B57;&#x7B26;&#x201D;&#xFF0C;&#x9019;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x662F;&#x8DDF;&#x7740;%&#x865F;&#x5F8C;&#x7684;&#x4E00;&#x500B;&#x5B57;&#x6BCD;&#x3002;&#x6BD4;&#x5982;%d&#x8868;&#x793A;&#x4EE5;&#x4E00;&#x500B;&#x6574;&#x6578;&#x7684;&#x5F62;&#x5F0F;&#x4F86;&#x6253;&#x5370;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#xFF0C;&#x800C;%s&#xFF0C;&#x5247;&#x8868;&#x793A;&#x4EE5;string&#x5F62;&#x5F0F;&#x4F86;&#x6253;&#x5370;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x3002;</p>
<p>Printf&#x6709;&#x4E00;&#x5927;&#x5806;&#x9019;&#x7A2E;&#x8F49;&#x63DB;&#xFF0C;Go&#x7A0B;&#x5E8F;&#x54E1;&#x628A;&#x9019;&#x4E9B;&#x53EB;&#x505A;verb(&#x52D5;&#x8A5E;)&#x3002;&#x4E0B;&#x9762;&#x7684;&#x8868;&#x683C;&#x5217;&#x9F63;&#x4E86;&#x5E38;&#x7528;&#x7684;&#x52D5;&#x8A5E;&#xFF0C;&#x7576;&#x7136;&#x4E86;&#x4E0D;&#x662F;&#x5168;&#x90E8;&#xFF0C;&#x4F46;&#x57FA;&#x672C;&#x4E5F;&#x5920;&#x7528;&#x4E86;&#x3002;</p>
<p>&#x4F8B;&#x5B50;&#x4E2D;&#x9084;&#x6709;&#x4E00;&#x500B;fmt.Printf&#xFF0C;&#x9019;&#x500B;&#x51FD;&#x6578;&#x548C;C&#x7E6B;&#x7684;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x91CC;&#x7684;&#x90A3;&#x500B;printf&#x51FD;&#x6578;&#x5DEE;&#x4E0D;&#x591A;&#xFF0C;&#x90FD;&#x662F;&#x683C;&#x5F0F;&#x5316;&#x8F38;&#x9F63;&#x7684;&#x65B9;&#x6CD5;&#x3002;fmt.Printf&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x53C3;&#x6578;&#x537D;&#x662F;&#x8F38;&#x9F63;&#x5167;&#x5BB9;&#x7684;&#x683C;&#x5F0F;&#x898F;&#x7D04;&#xFF0C;&#x6BCF;&#x4E00;&#x500B;&#x53C3;&#x6578;&#x5982;&#x4F55;&#x683C;&#x5F0F;&#x5316;&#x662F;&#x53D6;&#x6C7A;&#x65BC;&#x5728;&#x683C;&#x5F0F;&#x5316;&#x5B57;&#x7B26;&#x4E32;&#x91CC;&#x9F63;&#x73FE;&#x7684;&#x201C;&#x8F49;&#x63DB;&#x5B57;&#x7B26;&#x201D;&#xFF0C;&#x9019;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x662F;&#x8DDF;&#x7740;%&#x865F;&#x5F8C;&#x7684;&#x4E00;&#x500B;&#x5B57;&#x6BCD;&#x3002;&#x6BD4;&#x5982;%d&#x8868;&#x793A;&#x4EE5;&#x4E00;&#x500B;&#x6574;&#x6578;&#x7684;&#x5F62;&#x5F0F;&#x4F86;&#x6253;&#x5370;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#xFF0C;&#x800C;%s&#xFF0C;&#x5247;&#x8868;&#x793A;&#x4EE5;string&#x5F62;&#x5F0F;&#x4F86;&#x6253;&#x5370;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x3002;</p>
<p>Printf&#x6709;&#x4E00;&#x5927;&#x5806;&#x9019;&#x7A2E;&#x8F49;&#x63DB;&#xFF0C;Go&#x8A9E;&#x8A00;&#x7A0B;&#x5E8F;&#x54E1;&#x628A;&#x9019;&#x4E9B;&#x53EB;&#x505A;verb&#xFF08;&#x52D5;&#x8A5E;&#xFF09;&#x3002;&#x4E0B;&#x9762;&#x7684;&#x8868;&#x683C;&#x5217;&#x9F63;&#x4E86;&#x5E38;&#x7528;&#x7684;&#x52D5;&#x8A5E;&#xFF0C;&#x7576;&#x7136;&#x4E86;&#x4E0D;&#x662F;&#x5168;&#x90E8;&#xFF0C;&#x4F46;&#x57FA;&#x672C;&#x4E5F;&#x5920;&#x7528;&#x4E86;&#x3002;</p>
<pre><code>%d int&#x8B8A;&#x91CF;
%x, %o, %b &#x5206;&#x522B;&#x7232;16&#x9032;&#x88FD;&#xFF0C;8&#x9032;&#x88FD;&#xFF0C;2&#x9032;&#x88FD;&#x5F62;&#x5F0F;&#x7684;int
%f, %g, %e &#x6D6E;&#x9EDE;&#x6578;&#xFF1A; 3.141593 3.141592653589793 3.141593e+00
%t &#x5E03;&#x723E;&#x8B8A;&#x91CF;&#xFF1A;true &#x6216; false
%c rune (Unicode code point)&#xFF0C;go&#x8A9E;&#x8A00;&#x91CC;&#x7279;&#x6709;&#x7684;Unicode&#x5B57;&#x7B26;&#x985E;&#x578B;
%c rune (Unicode&#x78BC;&#x9EDE;)&#xFF0C;Go&#x8A9E;&#x8A00;&#x91CC;&#x7279;&#x6709;&#x7684;Unicode&#x5B57;&#x7B26;&#x985E;&#x578B;
%s string
%q quoted string &quot;abc&quot; or rune &apos;c&apos;
%q &#x5E36;&#x96D9;&#x5F15;&#x865F;&#x7684;&#x5B57;&#x7B26;&#x4E32; &quot;abc&quot; &#x6216; &#x5E36;&#x55AE;&#x5F15;&#x865F;&#x7684; rune &apos;c&apos;
%v &#x6703;&#x5C07;&#x4EFB;&#x610F;&#x8B8A;&#x91CF;&#x4EE5;&#x6613;&#x8B80;&#x7684;&#x5F62;&#x5F0F;&#x6253;&#x5370;&#x9F63;&#x4F86;
%T &#x6253;&#x5370;&#x8B8A;&#x91CF;&#x7684;&#x985E;&#x578B;
%% &#x5B57;&#x7B26;&#x578B;&#x767E;&#x5206;&#x6BD4;&#x6A19;&#x8A8C;(&#x4E0D;&#x78BA;&#x5B9A;) literal percent sign (no operand)
</code></pre><p>dup1&#x4E2D;&#x7684;&#x7A0B;&#x5E8F;&#x9084;&#x5305;&#x542B;&#x4E86;&#x4E00;&#x500B;\t&#x548C;\n&#x7684;&#x683C;&#x5F0F;&#x5316;&#x5B57;&#x7B26;&#x4E32;&#x3002;&#x5728;&#x5B57;&#x7B26;&#x4E32;&#x4E2D;&#x6703;&#x4EE5;&#x9019;&#x4E9B;&#x7279;&#x6B8A;&#x7684;&#x8F49;&#x7FA9;&#x5B57;&#x7B26;&#x4F86;&#x8868;&#x793A;&#x4E0D;&#x53EF;&#x898B;&#x5B57;&#x7B26;&#x3002;Printf&#x9ED8;&#x8A8D;&#x4E0D;&#x6703;&#x5728;&#x8F38;&#x9F63;&#x5167;&#x5BB9;&#x5F8C;&#x52A0;&#x4E0A;&#x63DB;&#x884C;&#x7B26;&#x3002;&#x6309;&#x7167;&#x6163;&#x4F8B;&#xFF0C;&#x7528;&#x4F86;&#x683C;&#x5F0F;&#x5316;&#x7684;&#x51FD;&#x6578;&#x90FD;&#x6703;&#x5728;&#x672B;&#x5C3E;&#x4EE5;f&#x5B57;&#x6BCD;&#x7D50;&#x5C3E;&#xFF0C;&#x6BD4;&#x5982;log.Printf&#xFF0C;fmt.Errorf&#xFF0C;&#x540C;&#x6642;&#x9084;&#x6709;&#x4E00;&#x7E6B;&#x5217;&#x5C0D;&#x61C9;&#x4EE5;ln&#x7D50;&#x5C3E;&#x7684;&#x51FD;&#x6578;&#xFF0C;&#x9019;&#x4E9B;&#x51FD;&#x6578;&#x9ED8;&#x8A8D;&#x4EE5;%v&#x4F86;&#x683C;&#x5F0F;&#x5316;&#x4ED6;&#x5011;&#x7684;&#x53C3;&#x6578;&#xFF0C;&#x4F75;&#x4E14;&#x6703;&#x5728;&#x8F38;&#x9F63;&#x7D50;&#x675F;&#x5F8C;&#x5728;&#x6700;&#x5F8C;&#x81EA;&#x52D5;&#x52A0;&#x4E0A;&#x4E00;&#x500B;&#x63DB;&#x884C;&#x7B26;&#x3002;</p>
%% &#x5B57;&#x7B26;&#x578B;&#x767E;&#x5206;&#x6BD4;&#x6A19;&#x8A8C;&#xFF08;%&#x7B26;&#x865F;&#x672C;&#x8EAB;&#xFF0C;&#x6C92;&#x6709;&#x5176;&#x4ED6;&#x64CD;&#x4F5C;&#xFF09;
</code></pre><p>dup1&#x4E2D;&#x7684;&#x7A0B;&#x5E8F;&#x9084;&#x5305;&#x542B;&#x4E86;&#x4E00;&#x500B;\t&#x548C;\n&#x7684;&#x683C;&#x5F0F;&#x5316;&#x5B57;&#x7B26;&#x4E32;&#x3002;&#x5728;&#x5B57;&#x7B26;&#x4E32;&#x4E2D;&#x6703;&#x4EE5;&#x9019;&#x4E9B;&#x7279;&#x6B8A;&#x7684;&#x8F49;&#x7FA9;&#x5B57;&#x7B26;&#x4F86;&#x8868;&#x793A;&#x4E0D;&#x53EF;&#x898B;&#x5B57;&#x7B26;&#x3002;Printf&#x9ED8;&#x8A8D;&#x4E0D;&#x6703;&#x5728;&#x8F38;&#x9F63;&#x5167;&#x5BB9;&#x5F8C;&#x52A0;&#x4E0A;&#x63DB;&#x884C;&#x7B26;&#x3002;&#x6309;&#x7167;&#x6163;&#x4F8B;&#xFF0C;&#x7528;&#x4F86;&#x683C;&#x5F0F;&#x5316;&#x7684;&#x51FD;&#x6578;&#x90FD;&#x6703;&#x5728;&#x672B;&#x5C3E;&#x4EE5;f&#x5B57;&#x6BCD;&#x7D50;&#x5C3E;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;f&#x5F8C;&#x7DB4;&#x5C0D;&#x61C9;format&#x6216;fmt&#x7E2E;&#x5BEB;&#xFF09;&#xFF0C;&#x6BD4;&#x5982;log.Printf&#xFF0C;fmt.Errorf&#xFF0C;&#x540C;&#x6642;&#x9084;&#x6709;&#x4E00;&#x7E6B;&#x5217;&#x5C0D;&#x61C9;&#x4EE5;ln&#x7D50;&#x5C3E;&#x7684;&#x51FD;&#x6578;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;ln&#x5F8C;&#x7DB4;&#x5C0D;&#x61C9;line&#x7E2E;&#x5BEB;&#xFF09;&#xFF0C;&#x9019;&#x4E9B;&#x51FD;&#x6578;&#x9ED8;&#x8A8D;&#x4EE5;%v&#x4F86;&#x683C;&#x5F0F;&#x5316;&#x4ED6;&#x5011;&#x7684;&#x53C3;&#x6578;&#xFF0C;&#x4F75;&#x4E14;&#x6703;&#x5728;&#x8F38;&#x9F63;&#x7D50;&#x675F;&#x5F8C;&#x5728;&#x6700;&#x5F8C;&#x81EA;&#x52D5;&#x52A0;&#x4E0A;&#x4E00;&#x500B;&#x63DB;&#x884C;&#x7B26;&#x3002;</p>
<p>&#x8A31;&#x591A;&#x7A0B;&#x5E8F;&#x5F9E;&#x6A19;&#x6E96;&#x8F38;&#x5165;&#x4E2D;&#x8B80;&#x53D6;&#x6578;&#x64DA;&#xFF0C;&#x50CF;&#x4E0A;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x90A3;&#x6A23;&#x3002;&#x9664;&#x6B64;&#x4E4B;&#x5916;&#xFF0C;&#x9084;&#x53EF;&#x80FD;&#x5F9E;&#x4E00;&#x7E6B;&#x5217;&#x7684;&#x6587;&#x4EF6;&#x4E2D;&#x8B80;&#x53D6;&#x3002;&#x4E0B;&#x4E00;&#x500B;dup&#x7A0B;&#x5E8F;&#x5C31;&#x662F;&#x5F9E;&#x6A19;&#x6E96;&#x8F38;&#x5165;&#x4E2D;&#x8B80;&#x5230;&#x4E00;&#x4E9B;&#x6587;&#x4EF6;&#x540D;&#xFF0C;&#x7528;os.Open&#x51FD;&#x6578;&#x4F86;&#x6253;&#x958B;&#x6BCF;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x7A6B;&#x53D6;&#x5167;&#x5BB9;&#x7684;&#x3002;</p>
<pre><code class="lang-go">gopl.io/ch1/dup2
<span class="hljs-comment">// Dup2 prints the count and text of lines that appear more than once</span>
@@ -2120,12 +2120,12 @@ counts[line] = counts[line] + <span class="hljs-number">1</span>
}
</code></pre>
<p>os.Open&#x51FD;&#x6578;&#x6703;&#x8FD4;&#x8FF4;&#x5169;&#x500B;&#x503C;&#x3002;&#x7B2C;&#x4E00;&#x500B;&#x503C;&#x662F;&#x4E00;&#x500B;&#x6253;&#x958B;&#x7684;&#x6587;&#x4EF6;&#x985E;&#x578B;(*os.File)&#xFF0C;&#x9019;&#x500B;&#x5C0D;&#x8C61;&#x5728;&#x4E0B;&#x9762;&#x7684;&#x7A0B;&#x5E8F;&#x4E2D;&#x88AB;Scanner&#x8B80;&#x53D6;&#x3002;</p>
<p>os.Open&#x8FD4;&#x8FF4;&#x7684;&#x7B2C;&#x4E8C;&#x500B;&#x503C;&#x662F;&#x4E00;&#x500B;go&#x5167;&#x7F6E;&#x7684;error&#x985E;&#x578B;&#x3002;&#x5982;&#x679C;&#x9019;&#x500B;error&#x548C;&#x5167;&#x7F6E;&#x503C;&#x7684;nil(&#x8B6F;&#x8A3B;&#xFF1A;&#x76F8;&#x7576;&#x65BC;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x91CC;&#x7684;NULL)&#x76F8;&#x7B49;&#x7684;&#x8A71;&#xFF0C;&#x8AAC;&#x660E;&#x6587;&#x4EF6;&#x88AB;&#x6210;&#x529F;&#x7684;&#x6253;&#x958B;&#x4E86;&#x3002;&#x4E4B;&#x5F8C;&#x6587;&#x4EF6;&#x88AB;&#x8B80;&#x53D6;&#xFF0C;&#x4E00;&#x76F4;&#x5230;&#x6587;&#x4EF6;&#x7684;&#x6700;&#x5F8C;&#xFF0C;Close&#x51FD;&#x6578;&#x95DC;&#x9589;&#x8A72;&#x6587;&#x4EF6;&#xFF0C;&#x4F75;&#x91CB;&#x653E;&#x76F8;&#x61C9;&#x7684;&#x5360;&#x7528;&#x4E00;&#x5207;&#x8CC7;&#x6E90;&#x3002;&#x53E6;&#x4E00;&#x65B9;&#x9762;&#xFF0C;&#x5982;&#x679C;err&#x7684;&#x503C;&#x4E0D;&#x662F;nil&#x7684;&#x8A71;&#xFF0C;&#x90A3;&#x8AAC;&#x660E;&#x5728;&#x6253;&#x958B;&#x6587;&#x4EF6;&#x7684;&#x6642;&#x5019;&#x9F63;&#x4E86;&#x67D0;&#x7A2E;&#x932F;&#x8AA4;&#x3002;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;error&#x985E;&#x578B;&#x7684;&#x503C;&#x6703;&#x63CF;&#x8FF0;&#x5177;&#x9AD4;&#x7684;&#x554F;&#x984C;&#x3002;&#x6211;&#x5011;&#x4F8B;&#x5B50;&#x91CC;&#x7684;&#x7C21;&#x55AE;&#x932F;&#x8AA4;&#x8655;&#x7406;&#x6703;&#x5728;&#x6A19;&#x6E96;&#x932F;&#x8AA4;&#x6D41;&#x4E2D;&#x7528;Fprintf&#x548C;%v&#x4F86;&#x683C;&#x5F0F;&#x5316;&#x8A72;&#x932F;&#x8AA4;&#x5B57;&#x7B26;&#x4E32;&#x3002;&#x7136;&#x5F8C;&#x7E7C;&#x7E8C;&#x8655;&#x7406;&#x4E0B;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#xFF1B;continue&#x8A9E;&#x53E5;&#x6703;&#x76F4;&#x63A5;&#x8DF3;&#x904E;&#x4E4B;&#x5F8C;&#x7684;&#x8A9E;&#x53E5;&#xFF0C;&#x76F4;&#x63A5;&#x958B;&#x59CB;&#x57F7;&#x884C;&#x4E0B;&#x4E00;&#x6B21;&#x5FAA;&#x74B0;&#x3002;</p>
<p>&#x6211;&#x5011;&#x5728;&#x672C;&#x66F8;&#x4E2D;&#x65E9;&#x671F;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#x505A;&#x4E86;&#x6BD4;&#x8F03;&#x8A73;&#x76E1;&#x7684;&#x932F;&#x8AA4;&#x8655;&#x7406;&#xFF0C;&#x7576;&#x7136;&#x4E86;&#xFF0C;&#x5728;&#x5BE6;&#x969B;&#x7DE8;&#x78BC;&#x904E;&#x7A0B;&#x4E2D;&#xFF0C;&#x50CF;os.Open&#x9019;&#x985E;&#x7684;&#x51FD;&#x6578;&#x662F;&#x4E00;&#x5B9A;&#x8981;&#x6AA2;&#x67FB;&#x5176;&#x8FD4;&#x8FF4;&#x7684;error&#x503C;&#x7684;&#xFF1B;&#x7232;&#x4E86;&#x6E1B;&#x5C11;&#x4F8B;&#x5B50;&#x7A0B;&#x5E8F;&#x7684;&#x4EE3;&#x78BC;&#x91CF;&#xFF0C;&#x6211;&#x5011;&#x59D1;&#x4E14;&#x7C21;&#x5316;&#x6389;&#x9019;&#x4E9B;&#x4E0D;&#x592A;&#x53EF;&#x80FD;&#x8FD4;&#x8FF4;&#x932F;&#x8AA4;&#x7684;&#x908F;&#x8F2F;&#x3002;&#x5F8C;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x91CC;&#x6211;&#x5011;&#x6703;&#x8DF3;&#x904E;&#x932F;&#x8AA4;&#x6AA2;&#x67FB;&#x3002;&#x5728;5.4&#x7BC0;&#x4E2D;&#x6211;&#x5011;&#x6703;&#x5C0D;&#x932F;&#x8AA4;&#x8655;&#x7406;&#x505A;&#x66F4;&#x8A73;&#x7D30;&#x7684;&#x95E1;&#x8FF0;&#x3002;</p>
<p>&#x8B80;&#x8005;&#x53EF;&#x4EE5;&#x518D;&#x89C0;&#x5BDF;&#x4E00;&#x4E0B;&#x4E0A;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#xFF0C;&#x6211;&#x5011;&#x7684;countLines&#x51FD;&#x6578;&#x662F;&#x5728;&#x5176;&#x8072;&#x660E;&#x4E4B;&#x524D;&#x5C31;&#x88AB;&#x8ABF;&#x7528;&#x4E86;&#x3002;&#x5728;Go&#x8A9E;&#x8A00;&#x91CC;&#xFF0C;&#x51FD;&#x6578;&#x548C;&#x5305;&#x7D1A;&#x522B;&#x7684;&#x8B8A;&#x91CF;&#x53EF;&#x4EE5;&#x4EE5;&#x4EFB;&#x610F;&#x7684;&#x9806;&#x5E8F;&#x88AB;&#x8072;&#x660E;&#xFF0C;&#x4F75;&#x4E0D;&#x5F71;&#x97FF;&#x5176;&#x88AB;&#x8ABF;&#x7528;&#x3002;(&#x8B6F;&#x8A3B;&#xFF1A;&#x6700;&#x597D;&#x9084;&#x662F;&#x9075;&#x5FAA;&#x4E00;&#x5B9A;&#x7684;&#x898F;&#x8303;)</p>
<p>&#x518D;&#x4F86;&#x8B1B;&#x8B1B;map&#x9019;&#x500B;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#xFF0C;map&#x662F;&#x7528;make&#x51FD;&#x6578;&#x5275;&#x5EFA;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x7684;&#x4E00;&#x500B;&#x5F15;&#x7528;&#x3002;&#x7576;&#x4E00;&#x500B;map&#x88AB;&#x4F5C;&#x7232;&#x53C3;&#x6578;&#x50B3;&#x905E;&#x7D66;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x6642;&#xFF0C;&#x51FD;&#x6578;&#x63A5;&#x6536;&#x5230;&#x7684;&#x662F;&#x4E00;&#x4EFD;&#x5F15;&#x7528;&#x7684;&#x62F7;&#x8C9D;&#xFF0C;&#x96D6;&#x7136;&#x672C;&#x8EAB;&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x6771;&#x897F;&#xFF0C;&#x4F46;&#x56E0;&#x7232;&#x4ED6;&#x5011;&#x6307;&#x5411;&#x7684;&#x662F;&#x540C;&#x4E00;&#x584A;&#x6578;&#x64DA;&#x5C0D;&#x8C61;(&#x8B6F;&#x8A3B;&#xFF1A;&#x985E;&#x4F3C;&#x65BC;C&#x8279;&#x91CC;&#x7684;&#x5F15;&#x7528;&#x50B3;&#x905E;)&#xFF0C;&#x6240;&#x4EE5;&#x4F60;&#x5728;&#x51FD;&#x6578;&#x91CC;&#x5C0D;map&#x91CC;&#x7684;&#x503C;&#x9032;&#x884C;&#x8129;&#x6539;&#x6642;&#xFF0C;&#x539F;&#x59CB;&#x7684;map&#x5167;&#x7684;&#x503C;&#x4E5F;&#x6703;&#x6539;&#x8B8A;&#x3002;&#x5728;&#x6211;&#x5011;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x5728;countLines&#x51FD;&#x6578;&#x4E2D;&#x63D2;&#x5165;&#x5230;counts&#x9019;&#x500B;map&#x91CC;&#x7684;&#x503C;&#xFF0C;&#x5728;&#x4E3B;&#x51FD;&#x6578;&#x4E2D;&#x4E5F;&#x662F;&#x770B;&#x5F97;&#x5230;&#x7684;&#x3002;</p>
<p>&#x4E0A;&#x9762;&#x9019;&#x500B;&#x7248;&#x672C;&#x7684;dup&#x662F;&#x4EE5;&#x6D41;&#x7684;&#x5F62;&#x5F0F;&#x4F86;&#x8655;&#x7406;&#x8F38;&#x5165;&#xFF0C;&#x4F75;&#x5C07;&#x5176;&#x6253;&#x6563;&#x7232;&#x884C;&#x3002;&#x7406;&#x8AD6;&#x4E0A;&#x9019;&#x4E9B;&#x7A0B;&#x5E8F;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x4EE5;&#x4E8C;&#x9032;&#x88FD;&#x5F62;&#x5F0F;&#x4F86;&#x8655;&#x7406;&#x8F38;&#x5165;&#x7684;&#x3002;&#x6211;&#x5011;&#x4E5F;&#x53EF;&#x4EE5;&#x4E00;&#x6B21;&#x6027;&#x7684;&#x628A;&#x6574;&#x500B;&#x8F38;&#x5165;&#x5167;&#x5BB9;&#x5168;&#x90E8;&#x8B80;&#x5230;&#x5167;&#x5B58;&#x4E2D;&#xFF0C;&#x7136;&#x5F8C;&#x518D;&#x628A;&#x5176;&#x5206;&#x5272;&#x7232;&#x591A;&#x884C;&#xFF0C;&#x7136;&#x5F8C;&#x518D;&#x53BB;&#x8655;&#x7406;&#x9019;&#x4E9B;&#x884C;&#x5167;&#x7684;&#x6578;&#x64DA;&#x3002;&#x4E0B;&#x9762;&#x7684;dup3&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x5C31;&#x662F;&#x4EE5;&#x9019;&#x7A2E;&#x5F62;&#x5F0F;&#x4F86;&#x9032;&#x884C;&#x64CD;&#x4F5C;&#x7684;&#x3002;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x5F15;&#x5165;&#x4E86;&#x4E00;&#x500B;&#x65B0;&#x51FD;&#x6578;ReadFile(&#x5F9E;io/ioutil&#x9019;&#x500B;&#x5305;)&#xFF0C;&#x9019;&#x500B;&#x51FD;&#x6578;&#x6703;&#x628A;&#x4E00;&#x500B;&#x6307;&#x5B9A;&#x540D;&#x5B57;&#x7684;&#x6587;&#x4EF6;&#x5167;&#x5BB9;&#x4E00;&#x6B21;&#x6027;&#x8ABF;&#x5165;&#xFF0C;&#x4E4B;&#x5F8C;&#x6211;&#x5011;&#x7528;strings.Split&#x51FD;&#x6578;&#x628A;&#x6587;&#x4EF6;&#x5206;&#x5272;&#x7232;&#x591A;&#x500B;&#x5B50;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x4F75;&#x5B58;&#x5132;&#x5230;slice&#x7D50;&#x69CB;&#x4E2D;&#x3002;(Split&#x51FD;&#x6578;&#x662F;strings.Join&#x7684;&#x9006;&#x51FD;&#x6578;&#xFF0C;Join&#x51FD;&#x6578;&#x4E4B;&#x524D;&#x63D0;&#x5230;&#x904E;)</p>
<p>&#x6211;&#x5011;&#x7C21;&#x5316;&#x4E86;dup3&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x3002;&#x9996;&#x5148;&#xFF0C;&#x4ED6;&#x96BB;&#x8B80;&#x53D6;&#x547D;&#x540D;&#x7684;&#x6587;&#x4EF6;&#xFF0C;&#x800C;&#x4E0D;&#x53BB;&#x8B80;&#x6A19;&#x6E96;&#x8F38;&#x5165;&#xFF0C;&#x56E0;&#x7232;ReadFile&#x51FD;&#x6578;&#x9700;&#x8981;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x540D;&#x53C3;&#x6578;&#x3002;&#x5176;&#x6B21;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x884C;&#x8A08;&#x6578;&#x908F;&#x8F2F;&#x79FB;&#x8FF4;&#x5230;&#x4E86;main&#x51FD;&#x6578;&#xFF0C;&#x56E0;&#x7232;&#x73FE;&#x5728;&#x9019;&#x500B;&#x908F;&#x8F2F;&#x96BB;&#x6709;&#x4E00;&#x500B;&#x5730;&#x65B9;&#x9700;&#x8981;&#x7528;&#x5230;&#x3002;</p>
<p>os.Open&#x8FD4;&#x8FF4;&#x7684;&#x7B2C;&#x4E8C;&#x500B;&#x503C;&#x662F;&#x4E00;&#x500B;Go&#x8A9E;&#x8A00;&#x5167;&#x7F6E;&#x7684;error&#x985E;&#x578B;&#x3002;&#x5982;&#x679C;&#x9019;&#x500B;error&#x548C;&#x5167;&#x7F6E;&#x503C;&#x7684;nil&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x76F8;&#x7576;&#x65BC;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x91CC;&#x7684;NULL&#xFF09;&#x76F8;&#x7B49;&#x7684;&#x8A71;&#xFF0C;&#x8AAC;&#x660E;&#x6587;&#x4EF6;&#x88AB;&#x6210;&#x529F;&#x7684;&#x6253;&#x958B;&#x4E86;&#x3002;&#x4E4B;&#x5F8C;&#x6587;&#x4EF6;&#x88AB;&#x8B80;&#x53D6;&#xFF0C;&#x4E00;&#x76F4;&#x5230;&#x6587;&#x4EF6;&#x7684;&#x6700;&#x5F8C;&#xFF0C;&#x6587;&#x4EF6;&#x7684;Close&#x65B9;&#x6CD5;&#x95DC;&#x9589;&#x8A72;&#x6587;&#x4EF6;&#xFF0C;&#x4F75;&#x91CB;&#x653E;&#x76F8;&#x61C9;&#x7684;&#x5360;&#x7528;&#x4E00;&#x5207;&#x8CC7;&#x6E90;&#x3002;&#x53E6;&#x4E00;&#x65B9;&#x9762;&#xFF0C;&#x5982;&#x679C;err&#x7684;&#x503C;&#x4E0D;&#x662F;nil&#x7684;&#x8A71;&#xFF0C;&#x90A3;&#x8AAC;&#x660E;&#x5728;&#x6253;&#x958B;&#x6587;&#x4EF6;&#x7684;&#x6642;&#x5019;&#x9F63;&#x4E86;&#x67D0;&#x7A2E;&#x932F;&#x8AA4;&#x3002;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;error&#x985E;&#x578B;&#x7684;&#x503C;&#x6703;&#x63CF;&#x8FF0;&#x5177;&#x9AD4;&#x7684;&#x554F;&#x984C;&#x3002;&#x6211;&#x5011;&#x4F8B;&#x5B50;&#x91CC;&#x7684;&#x7C21;&#x55AE;&#x932F;&#x8AA4;&#x8655;&#x7406;&#x6703;&#x5728;&#x6A19;&#x6E96;&#x932F;&#x8AA4;&#x6D41;&#x4E2D;&#x7528;Fprintf&#x548C;%v&#x4F86;&#x683C;&#x5F0F;&#x5316;&#x8A72;&#x932F;&#x8AA4;&#x5B57;&#x7B26;&#x4E32;&#x3002;&#x7136;&#x5F8C;&#x7E7C;&#x7E8C;&#x8655;&#x7406;&#x4E0B;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#xFF1B;continue&#x8A9E;&#x53E5;&#x6703;&#x76F4;&#x63A5;&#x8DF3;&#x904E;&#x4E4B;&#x5F8C;&#x7684;&#x8A9E;&#x53E5;&#xFF0C;&#x76F4;&#x63A5;&#x958B;&#x59CB;&#x57F7;&#x884C;&#x4E0B;&#x4E00;&#x500B;&#x5FAA;&#x74B0;&#x8FED;&#x4EE3;&#x3002;</p>
<p>&#x6211;&#x5011;&#x5728;&#x672C;&#x66F8;&#x4E2D;&#x65E9;&#x671F;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#x505A;&#x4E86;&#x6BD4;&#x8F03;&#x8A73;&#x76E1;&#x7684;&#x932F;&#x8AA4;&#x8655;&#x7406;&#xFF0C;&#x7576;&#x7136;&#x4E86;&#xFF0C;&#x5728;&#x5BE6;&#x969B;&#x7DE8;&#x78BC;&#x904E;&#x7A0B;&#x4E2D;&#xFF0C;&#x50CF;os.Open&#x9019;&#x985E;&#x7684;&#x51FD;&#x6578;&#x662F;&#x4E00;&#x5B9A;&#x8981;&#x6AA2;&#x67FB;&#x5176;&#x8FD4;&#x8FF4;&#x7684;error&#x503C;&#x7684;&#xFF1B;&#x7232;&#x4E86;&#x6E1B;&#x5C11;&#x4F8B;&#x5B50;&#x7A0B;&#x5E8F;&#x7684;&#x4EE3;&#x78BC;&#x91CF;&#xFF0C;&#x6211;&#x5011;&#x59D1;&#x4E14;&#x7C21;&#x5316;&#x6389;&#x9019;&#x4E9B;&#x4E0D;&#x592A;&#x53EF;&#x80FD;&#x8FD4;&#x8FF4;&#x932F;&#x8AA4;&#x7684;&#x8655;&#x7406;&#x908F;&#x8F2F;&#x3002;&#x5F8C;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x91CC;&#x6211;&#x5011;&#x6703;&#x8DF3;&#x904E;&#x932F;&#x8AA4;&#x6AA2;&#x67FB;&#x3002;&#x5728;5.4&#x7BC0;&#x4E2D;&#x6211;&#x5011;&#x6703;&#x5C0D;&#x932F;&#x8AA4;&#x8655;&#x7406;&#x505A;&#x66F4;&#x8A73;&#x7D30;&#x7684;&#x95E1;&#x8FF0;&#x3002;</p>
<p>&#x8B80;&#x8005;&#x53EF;&#x4EE5;&#x518D;&#x89C0;&#x5BDF;&#x4E00;&#x4E0B;&#x4E0A;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#xFF0C;&#x6211;&#x5011;&#x7684;countLines&#x51FD;&#x6578;&#x662F;&#x5728;&#x5176;&#x8072;&#x660E;&#x4E4B;&#x524D;&#x5C31;&#x88AB;&#x8ABF;&#x7528;&#x4E86;&#x3002;&#x5728;Go&#x8A9E;&#x8A00;&#x91CC;&#xFF0C;&#x51FD;&#x6578;&#x548C;&#x5305;&#x7D1A;&#x522B;&#x7684;&#x8B8A;&#x91CF;&#x53EF;&#x4EE5;&#x4EE5;&#x4EFB;&#x610F;&#x7684;&#x9806;&#x5E8F;&#x88AB;&#x8072;&#x660E;&#xFF0C;&#x4F75;&#x4E0D;&#x5F71;&#x97FF;&#x5176;&#x88AB;&#x8ABF;&#x7528;&#x3002;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x6700;&#x597D;&#x9084;&#x662F;&#x9075;&#x5FAA;&#x4E00;&#x5B9A;&#x7684;&#x898F;&#x8303;&#xFF09;</p>
<p>&#x518D;&#x4F86;&#x8B1B;&#x8B1B;map&#x9019;&#x500B;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#xFF0C;map&#x662F;&#x7528;make&#x51FD;&#x6578;&#x5275;&#x5EFA;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x7684;&#x4E00;&#x500B;&#x5F15;&#x7528;&#x3002;&#x7576;&#x4E00;&#x500B;map&#x88AB;&#x4F5C;&#x7232;&#x53C3;&#x6578;&#x50B3;&#x905E;&#x7D66;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x6642;&#xFF0C;&#x51FD;&#x6578;&#x63A5;&#x6536;&#x5230;&#x7684;&#x662F;&#x4E00;&#x4EFD;&#x5F15;&#x7528;&#x7684;&#x62F7;&#x8C9D;&#xFF0C;&#x96D6;&#x7136;&#x672C;&#x8EAB;&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x6771;&#x897F;&#xFF0C;&#x4F46;&#x56E0;&#x7232;&#x4ED6;&#x5011;&#x6307;&#x5411;&#x7684;&#x662F;&#x540C;&#x4E00;&#x584A;&#x6578;&#x64DA;&#x5C0D;&#x8C61;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x985E;&#x4F3C;&#x65BC;C++&#x91CC;&#x7684;&#x5F15;&#x7528;&#x50B3;&#x905E;&#xFF09;&#xFF0C;&#x6240;&#x4EE5;&#x4F60;&#x5728;&#x51FD;&#x6578;&#x91CC;&#x5C0D;map&#x91CC;&#x7684;&#x503C;&#x9032;&#x884C;&#x8129;&#x6539;&#x6642;&#xFF0C;&#x539F;&#x59CB;&#x7684;map&#x5167;&#x7684;&#x503C;&#x4E5F;&#x6703;&#x6539;&#x8B8A;&#x3002;&#x5728;&#x6211;&#x5011;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x5728;countLines&#x51FD;&#x6578;&#x4E2D;&#x63D2;&#x5165;&#x5230;counts&#x9019;&#x500B;map&#x91CC;&#x7684;&#x503C;&#xFF0C;&#x5728;&#x4E3B;&#x51FD;&#x6578;&#x4E2D;&#x4E5F;&#x662F;&#x770B;&#x5F97;&#x5230;&#x7684;&#x3002;</p>
<p>&#x4E0A;&#x9762;&#x9019;&#x500B;&#x7248;&#x672C;&#x7684;dup&#x662F;&#x4EE5;&#x6D41;&#x7684;&#x5F62;&#x5F0F;&#x4F86;&#x8655;&#x7406;&#x8F38;&#x5165;&#xFF0C;&#x4F75;&#x5C07;&#x5176;&#x6253;&#x6563;&#x7232;&#x884C;&#x3002;&#x7406;&#x8AD6;&#x4E0A;&#x9019;&#x4E9B;&#x7A0B;&#x5E8F;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x4EE5;&#x4E8C;&#x9032;&#x88FD;&#x5F62;&#x5F0F;&#x4F86;&#x8655;&#x7406;&#x8F38;&#x5165;&#x7684;&#x3002;&#x6211;&#x5011;&#x4E5F;&#x53EF;&#x4EE5;&#x4E00;&#x6B21;&#x6027;&#x7684;&#x628A;&#x6574;&#x500B;&#x8F38;&#x5165;&#x5167;&#x5BB9;&#x5168;&#x90E8;&#x8B80;&#x5230;&#x5167;&#x5B58;&#x4E2D;&#xFF0C;&#x7136;&#x5F8C;&#x518D;&#x628A;&#x5176;&#x5206;&#x5272;&#x7232;&#x591A;&#x884C;&#xFF0C;&#x7136;&#x5F8C;&#x518D;&#x53BB;&#x8655;&#x7406;&#x9019;&#x4E9B;&#x884C;&#x5167;&#x7684;&#x6578;&#x64DA;&#x3002;&#x4E0B;&#x9762;&#x7684;dup3&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x5C31;&#x662F;&#x4EE5;&#x9019;&#x7A2E;&#x5F62;&#x5F0F;&#x4F86;&#x9032;&#x884C;&#x64CD;&#x4F5C;&#x7684;&#x3002;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x5F15;&#x5165;&#x4E86;&#x4E00;&#x500B;&#x65B0;&#x51FD;&#x6578;ReadFile&#xFF08;&#x5F9E;io/ioutil&#x5305;&#x63D0;&#x4F9B;&#xFF09;&#xFF0C;&#x9019;&#x500B;&#x51FD;&#x6578;&#x6703;&#x628A;&#x4E00;&#x500B;&#x6307;&#x5B9A;&#x540D;&#x5B57;&#x7684;&#x6587;&#x4EF6;&#x5167;&#x5BB9;&#x4E00;&#x6B21;&#x6027;&#x8ABF;&#x5165;&#xFF0C;&#x4E4B;&#x5F8C;&#x6211;&#x5011;&#x7528;strings.Split&#x51FD;&#x6578;&#x628A;&#x6587;&#x4EF6;&#x5206;&#x5272;&#x7232;&#x591A;&#x500B;&#x5B50;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x4F75;&#x5B58;&#x5132;&#x5230;slice&#x7D50;&#x69CB;&#x4E2D;&#x3002;&#xFF08;Split&#x51FD;&#x6578;&#x662F;strings.Join&#x7684;&#x9006;&#x51FD;&#x6578;&#xFF0C;Join&#x51FD;&#x6578;&#x4E4B;&#x524D;&#x63D0;&#x5230;&#x904E;&#xFF09;</p>
<p>&#x6211;&#x5011;&#x7C21;&#x5316;&#x4E86;dup3&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x3002;&#x9996;&#x5148;&#xFF0C;&#x5B83;&#x96BB;&#x8B80;&#x53D6;&#x547D;&#x540D;&#x7684;&#x6587;&#x4EF6;&#xFF0C;&#x800C;&#x4E0D;&#x53BB;&#x8B80;&#x6A19;&#x6E96;&#x8F38;&#x5165;&#xFF0C;&#x56E0;&#x7232;ReadFile&#x51FD;&#x6578;&#x9700;&#x8981;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x540D;&#x53C3;&#x6578;&#x3002;&#x5176;&#x6B21;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x884C;&#x8A08;&#x6578;&#x908F;&#x8F2F;&#x79FB;&#x8FF4;&#x5230;&#x4E86;main&#x51FD;&#x6578;&#xFF0C;&#x56E0;&#x7232;&#x73FE;&#x5728;&#x9019;&#x500B;&#x908F;&#x8F2F;&#x96BB;&#x6709;&#x4E00;&#x500B;&#x5730;&#x65B9;&#x9700;&#x8981;&#x7528;&#x5230;&#x3002;</p>
<pre><code class="lang-go">gopl.io/ch1/dup3
<span class="hljs-keyword">package</span> main
@@ -2155,10 +2155,10 @@ counts[line] = counts[line] + <span class="hljs-number">1</span>
}
}
</code></pre>
<p>ReadFile&#x51FD;&#x6578;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;byte&#x7684;slice&#xFF0C;&#x9019;&#x500B;slice&#x5FC5;&#x9B1A;&#x88AB;&#x8F49;&#x63DB;&#x7232;string&#xFF0C;&#x4E4B;&#x5F8C;&#x7E94;&#x80FD;&#x5920;&#x7528;string.Split&#x65B9;&#x6CD5;&#x4F86;&#x9032;&#x884C;&#x8655;&#x7406;&#x3002;&#x6211;&#x5011;&#x5728;3.5.4&#x7BC0;&#x4E2D;&#x6703;&#x66F4;&#x8A73;&#x7D30;&#x5730;&#x8B1B;&#x89E3;string&#x548C;byte slice(&#x5B57;&#x7BC0;&#x6578;&#x7D44;)&#x3002;</p>
<p>ReadFile&#x51FD;&#x6578;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;byte&#x7684;slice&#xFF0C;&#x9019;&#x500B;slice&#x5FC5;&#x9B1A;&#x88AB;&#x8F49;&#x63DB;&#x7232;string&#xFF0C;&#x4E4B;&#x5F8C;&#x7E94;&#x80FD;&#x5920;&#x7528;string.Split&#x65B9;&#x6CD5;&#x4F86;&#x9032;&#x884C;&#x8655;&#x7406;&#x3002;&#x6211;&#x5011;&#x5728;3.5.4&#x7BC0;&#x4E2D;&#x6703;&#x66F4;&#x8A73;&#x7D30;&#x5730;&#x8B1B;&#x89E3;string&#x548C;byte slice&#xFF08;&#x5B57;&#x7BC0;&#x6578;&#x7D44;&#xFF09;&#x3002;</p>
<p>&#x5728;&#x66F4;&#x5E95;&#x5C64;&#x4E00;&#x4E9B;&#x7684;&#x5730;&#x65B9;&#xFF0C;bufio.Scanner&#xFF0C;ioutil.ReadFile&#x548C;ioutil.WriteFile&#x4F7F;&#x7528;&#x7684;&#x662F;*os.File&#x7684;Read&#x548C;Write&#x65B9;&#x6CD5;&#xFF0C;&#x4E0D;&#x904E;&#x4E00;&#x822C;&#x7A0B;&#x5E8F;&#x54E1;&#x4F75;&#x4E0D;&#x9700;&#x8981;&#x53BB;&#x76F4;&#x63A5;&#x4E86;&#x89E3;&#x5230;&#x5176;&#x5E95;&#x5C64;&#x5BE6;&#x73FE;&#x7D30;&#x7BC0;&#xFF0C;&#x5728;bufio&#x548C;io/ioutil&#x5305;&#x4E2D;&#x63D0;&#x4F9B;&#x7684;&#x65B9;&#x6CD5;&#x5DF2;&#x7D93;&#x8DB3;&#x5920;&#x597D;&#x7528;&#x3002;</p>
<pre><code>Exercise 1.4: &#x8129;&#x6539;dup2&#xFF0C;&#x4F7F;&#x5176;&#x53EF;&#x4EE5;&#x6253;&#x5370;&#x91CD;&#x8907;&#x7684;&#x884C;&#x5206;&#x522B;&#x9F63;&#x73FE;&#x5728;&#x54EA;&#x4E9B;&#x6587;&#x4EF6;&#x3002;
</code></pre>
<p><strong>&#x7DF4;&#x7FD2; 1.4&#xFF1A;</strong> &#x8129;&#x6539;dup2&#xFF0C;&#x4F7F;&#x5176;&#x53EF;&#x4EE5;&#x6253;&#x5370;&#x91CD;&#x8907;&#x7684;&#x884C;&#x5206;&#x522B;&#x9F63;&#x73FE;&#x5728;&#x54EA;&#x4E9B;&#x6587;&#x4EF6;&#x3002;</p>
</section>

View File

@@ -48,7 +48,7 @@
<body>
<div class="book" data-level="1.4" data-chapter-title="GIF動畵" data-filepath="ch1/ch1-04.md" data-basepath=".." data-revision="Mon Dec 21 2015 12:51:02 GMT+0800 (中国标准时间)">
<div class="book" data-level="1.4" data-chapter-title="GIF動畵" data-filepath="ch1/ch1-04.md" data-basepath=".." data-revision="Thu Dec 24 2015 14:42:02 GMT+0800 (中国标准时间)">
<div class="book-summary">
@@ -1975,16 +1975,16 @@
</li>
<li class="chapter " data-level="14" data-path="errata.html">
<li class="chapter " data-level="14" data-path="CONTRIBUTORS.html">
<a href="../errata.html">
<a href="../CONTRIBUTORS.html">
<i class="fa fa-check"></i>
<b>14.</b>
勘誤
附録
</a>
@@ -2024,15 +2024,16 @@
<section class="normal" id="section-">
<h2 id="14-gif&#x52D5;&#x7575;">1.4. GIF&#x52D5;&#x7575;</h2>
<p>&#x4E0B;&#x9762;&#x7684;&#x7A0B;&#x5E8F;&#x6703;&#x6F14;&#x793A;Go&#x8A9E;&#x8A00;&#x6A19;&#x6E96;&#x5EAB;&#x91CC;&#x7684;image&#x9019;&#x500B;package&#x7684;&#x7528;&#x6CD5;&#xFF0C;&#x6211;&#x5011;&#x6703;&#x7528;&#x9019;&#x500B;&#x5305;&#x4F86;&#x751F;&#x6210;&#x4E00;&#x7E6B;&#x5217;&#x7684;bit-mapped&#x5716;&#xFF0C;&#x7136;&#x5F8C;&#x5C07;&#x9019;&#x4E9B;&#x5716;&#x7247;&#x7DE8;&#x78BC;&#x7232;&#x4E00;&#x500B;GIF&#x52D5;&#x7575;&#x3002;&#x6211;&#x5011;&#x751F;&#x6210;&#x7684;&#x5716;&#x5F62;&#x540D;&#x5B57;&#x53EB;&#x5229;&#x85A9;&#x5982;&#x5716;&#x5F62;(Lissajous figures)&#xFF0C;&#x9019;&#x7A2E;&#x6548;&#x679C;&#x662F;&#x5728;1960&#x5E74;&#x4EE3;&#x7684;&#x8001;&#x96FB;&#x5F71;&#x91CC;&#x9F63;&#x73FE;&#x7684;&#x4E00;&#x7A2E;&#x8996;&#x89BA;&#x7279;&#x6548;&#x3002;&#x4ED6;&#x5011;&#x662F;&#x5354;&#x632F;&#x5B50;&#x5728;&#x5169;&#x500B;&#x7DEF;&#x5EA6;&#x4E0A;&#x632F;&#x52D5;&#x6240;&#x7523;&#x751F;&#x7684;&#x9EB4;&#x7DDA;&#xFF0C;&#x6BD4;&#x5982;&#x5169;&#x500B;sin&#x6B63;&#x7D43;&#x6CE2;&#x5206;&#x522B;&#x5728;x&#x8EF8;&#x548C;y&#x8EF8;&#x8F38;&#x5165;&#x6703;&#x7523;&#x751F;&#x7684;&#x9EB4;&#x7DDA;&#x3002;&#x5716;1.1&#x662F;&#x9019;&#x6A23;&#x7684;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#xFF1A;</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x7A0B;&#x5E8F;&#x6703;&#x6F14;&#x793A;Go&#x8A9E;&#x8A00;&#x6A19;&#x6E96;&#x5EAB;&#x91CC;&#x7684;image&#x9019;&#x500B;package&#x7684;&#x7528;&#x6CD5;&#xFF0C;&#x6211;&#x5011;&#x6703;&#x7528;&#x9019;&#x500B;&#x5305;&#x4F86;&#x751F;&#x6210;&#x4E00;&#x7E6B;&#x5217;&#x7684;bit-mapped&#x5716;&#xFF0C;&#x7136;&#x5F8C;&#x5C07;&#x9019;&#x4E9B;&#x5716;&#x7247;&#x7DE8;&#x78BC;&#x7232;&#x4E00;&#x500B;GIF&#x52D5;&#x7575;&#x3002;&#x6211;&#x5011;&#x751F;&#x6210;&#x7684;&#x5716;&#x5F62;&#x540D;&#x5B57;&#x53EB;&#x5229;&#x85A9;&#x5982;&#x5716;&#x5F62;(Lissajous figures)&#xFF0C;&#x9019;&#x7A2E;&#x6548;&#x679C;&#x662F;&#x5728;1960&#x5E74;&#x4EE3;&#x7684;&#x8001;&#x96FB;&#x5F71;&#x91CC;&#x9F63;&#x73FE;&#x7684;&#x4E00;&#x7A2E;&#x8996;&#x89BA;&#x7279;&#x6548;&#x3002;&#x5B83;&#x5011;&#x662F;&#x5354;&#x632F;&#x5B50;&#x5728;&#x5169;&#x500B;&#x7DEF;&#x5EA6;&#x4E0A;&#x632F;&#x52D5;&#x6240;&#x7523;&#x751F;&#x7684;&#x9EB4;&#x7DDA;&#xFF0C;&#x6BD4;&#x5982;&#x5169;&#x500B;sin&#x6B63;&#x7D43;&#x6CE2;&#x5206;&#x522B;&#x5728;x&#x8EF8;&#x548C;y&#x8EF8;&#x8F38;&#x5165;&#x6703;&#x7523;&#x751F;&#x7684;&#x9EB4;&#x7DDA;&#x3002;&#x5716;1.1&#x662F;&#x9019;&#x6A23;&#x7684;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#xFF1A;</p>
<p><img src="../images/ch1-01.png" alt=""></p>
<p>&#x9019;&#x6BB5;&#x4EE3;&#x78BC;&#x91CC;&#x6211;&#x5011;&#x7528;&#x4E86;&#x4E00;&#x4E9B;&#x65B0;&#x7684;&#x7D50;&#x69CB;&#xFF0C;&#x5305;&#x62EC;const&#x8072;&#x660E;&#xFF0C;&#x6578;&#x64DA;struct&#x985E;&#x578B;&#xFF0C;&#x8907;&#x5408;&#x8072;&#x660E;&#x3002;&#x548C;&#x6211;&#x5011;&#x8209;&#x7684;&#x5176;&#x5B83;&#x7684;&#x4F8B;&#x5B50;&#x4E0D;&#x592A;&#x4E00;&#x6A23;&#xFF0C;&#x9019;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#x5305;&#x542B;&#x4E86;&#x6D6E;&#x9EDE;&#x6578;&#x904B;&#x7B97;&#x3002;&#x9019;&#x4E9B;&#x6982;&#x5FF5;&#x6211;&#x5011;&#x96BB;&#x5728;&#x9019;&#x91CC;&#x7C21;&#x55AE;&#x5730;&#x8AAC;&#x660E;&#x4E00;&#x4E0B;&#xFF0C;&#x4E4B;&#x5F8C;&#x7684;&#x7AE0;&#x7BC0;&#x6703;&#x66F4;&#x8A73;&#x7D30;&#x5730;&#x8B1B;&#x89E3;&#x3002;</p>
<p>&#x8B6F;&#x8A3B;&#xFF1A;&#x8981;&#x770B;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x7684;&#x7D50;&#x679C;&#xFF0C;&#x9700;&#x8981;&#x5C07;&#x6A19;&#x6E96;&#x8F38;&#x9F63;&#x91CD;&#x5B9A;&#x5411;&#x5230;&#x4E00;&#x500B;GIF&#x5716;&#x50CF;&#x6587;&#x4EF6;&#xFF08;&#x4F7F;&#x7528; <code>./lissajous &gt; output.gif</code> &#x547D;&#x4EE4;&#xFF09;&#x3002;&#x4E0B;&#x9762;&#x662F;GIF&#x5716;&#x50CF;&#x52D5;&#x7575;&#x6548;&#x679C;&#xFF1A;</p>
<p><img src="../images/ch1-01.gif" alt=""></p>
<p>&#x9019;&#x6BB5;&#x4EE3;&#x78BC;&#x91CC;&#x6211;&#x5011;&#x7528;&#x4E86;&#x4E00;&#x4E9B;&#x65B0;&#x7684;&#x7D50;&#x69CB;&#xFF0C;&#x5305;&#x62EC;const&#x8072;&#x660E;&#xFF0C;struct&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#xFF0C;&#x8907;&#x5408;&#x8072;&#x660E;&#x3002;&#x548C;&#x6211;&#x5011;&#x8209;&#x7684;&#x5176;&#x5B83;&#x7684;&#x4F8B;&#x5B50;&#x4E0D;&#x592A;&#x4E00;&#x6A23;&#xFF0C;&#x9019;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#x5305;&#x542B;&#x4E86;&#x6D6E;&#x9EDE;&#x6578;&#x904B;&#x7B97;&#x3002;&#x9019;&#x4E9B;&#x6982;&#x5FF5;&#x6211;&#x5011;&#x96BB;&#x5728;&#x9019;&#x91CC;&#x7C21;&#x55AE;&#x5730;&#x8AAC;&#x660E;&#x4E00;&#x4E0B;&#xFF0C;&#x4E4B;&#x5F8C;&#x7684;&#x7AE0;&#x7BC0;&#x6703;&#x66F4;&#x8A73;&#x7D30;&#x5730;&#x8B1B;&#x89E3;&#x3002;</p>
<pre><code class="lang-go">gopl.io/ch1/lissajous
<span class="hljs-comment">// Lissajous generates GIF animations of random Lissajous figures.</span>
<span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> (
<span class="hljs-string">&quot;image&quot;</span>
<span class="hljs-string">&quot;image/color&quot;</span>
@@ -2044,10 +2045,12 @@
)
<span class="hljs-keyword">var</span> palette = []color.Color{color.White, color.Black}
<span class="hljs-keyword">const</span> (
whiteIndex = <span class="hljs-number">0</span> <span class="hljs-comment">// first color in palette</span>
blackIndex = <span class="hljs-number">1</span> <span class="hljs-comment">// next color in palette</span>
)
<span class="hljs-keyword">func</span> main() {
lissajous(os.Stdout)
}
@@ -2071,7 +2074,7 @@
x := math.Sin(t)
y := math.Sin(t*freq + phase)
img.SetColorIndex(size+<span class="hljs-typename">int</span>(x*size+<span class="hljs-number">0.5</span>), size+<span class="hljs-typename">int</span>(y*size+<span class="hljs-number">0.5</span>),
blackIndex)
bla kIndex)
}
phase += <span class="hljs-number">0.1</span>
anim.Delay = <span class="hljs-built_in">append</span>(anim.Delay, delay)
@@ -2080,19 +2083,18 @@ blackIndex)
gif.EncodeAll(out, &amp;anim) <span class="hljs-comment">// <span class="hljs-doctag">NOTE:</span> ignoring encoding errors</span>
}
</code></pre>
<p>&#x7576;&#x6211;&#x5011;import&#x4E86;&#x4E00;&#x500B;&#x5305;&#x8DEF;&#x5F91;&#x5305;&#x542B;&#x6709;&#x591A;&#x500B;&#x55AE;&#x8A5E;&#x7684;package&#x6642;&#xFF0C;&#x6BD4;&#x5982;image/color(image&#x548C;color&#x5169;&#x500B;&#x55AE;&#x8A5E;)&#xFF0C;&#x6211;&#x5011;&#x96BB;&#x9700;&#x8981;&#x7528;&#x6700;&#x5F8C;&#x90A3;&#x500B;&#x55AE;&#x8A5E;&#x8868;&#x793A;&#x9019;&#x500B;&#x5305;&#x5C31;&#x53EF;&#x4EE5;&#x3002;&#x6240;&#x4EE5;&#x7576;&#x6211;&#x5011;&#x5BEB;color.White&#x6642;&#xFF0C;&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x6307;&#x5411;&#x7684;&#x662F;image/color&#x5305;&#x91CC;&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x540C;&#x7406;gif.GIF&#x662F;&#x5C6C;&#x65BC;image/gif&#x5305;&#x91CC;&#x7684;&#x8B8A;&#x91CF;&#x3002;</p>
<p>&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x91CC;&#x7684;&#x5E38;&#x91CF;&#x8072;&#x660E;&#x7D66;&#x9F63;&#x4E86;&#x4E00;&#x7E6B;&#x5217;&#x7684;&#x5E38;&#x91CF;&#x503C;&#xFF0C;&#x5E38;&#x91CF;&#x662F;&#x6307;&#x5728;&#x7A0B;&#x5E8F;&#x7DE8;&#x8B6F;&#x5F8C;&#x904B;&#x884C;&#x6642;&#x59CB;&#x7D42;&#x90FD;&#x4E0D;&#x6703;&#x8B8A;&#x5316;&#x7684;&#x503C;&#xFF0C;&#x6BD4;&#x5982;&#x5708;&#x6578;&#x3001;&#x5E40;&#x6578;&#x3001;&#x5EF6;&#x9072;&#x503C;&#x3002;&#x5E38;&#x91CF;&#x8072;&#x660E;&#x548C;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x4E00;&#x822C;&#x90FD;&#x6703;&#x9F63;&#x73FE;&#x5728;&#x5305;&#x7D1A;&#x522B;&#xFF0C;&#x6240;&#x4EE5;&#x9019;&#x4E9B;&#x5E38;&#x91CF;&#x5728;&#x6574;&#x500B;&#x5305;&#x4E2D;&#x90FD;&#x662F;&#x53EF;&#x4EE5;&#x5171;&#x4EAB;&#x7684;&#xFF0C;&#x6216;&#x8005;&#x4F60;&#x4E5F;&#x53EF;&#x4EE5;&#x628A;&#x5E38;&#x91CF;&#x8072;&#x660E;&#x5B9A;&#x7FA9;&#x5728;&#x51FD;&#x6578;&#x9AD4;&#x5167;&#x90E8;&#xFF0C;&#x90A3;&#x9EBD;&#x9019;&#x7A2E;&#x5E38;&#x91CF;&#x5C31;&#x96BB;&#x80FD;&#x5728;&#x51FD;&#x6578;&#x9AD4;&#x5167;&#x7528;&#x3002;&#x5E38;&#x91CF;&#x8072;&#x660E;&#x7684;&#x503C;&#x5FC5;&#x9B1A;&#x662F;&#x4E00;&#x500B;&#x6578;&#x5B57;&#x503C;&#x3001;&#x5B57;&#x7B26;&#x4E32;&#x6216;&#x8005;&#x4E00;&#x500B;&#x56FA;&#x5B9A;&#x7684;boolean&#x503C;&#x3002;</p>
<p>[]color.Color{...}&#x548C;gif.GIF{...}&#x9019;&#x5169;&#x500B;&#x8868;&#x9054;&#x5F0F;&#x5C31;&#x662F;&#x6211;&#x5011;&#x8AAC;&#x7684;&#x8907;&#x5408;&#x8072;&#x660E;(4.2&#x548C;4.4.1&#x7BC0;&#x6709;&#x8AAC;&#x660E;)&#x3002;&#x9019;&#x662F;&#x5BE6;&#x4F8B;&#x5316;Go&#x8A9E;&#x8A00;&#x91CC;&#x7684;&#x8907;&#x5408;&#x985E;&#x578B;&#x7684;&#x4E00;&#x7A2E;&#x5BEB;&#x6CD5;&#x3002;&#x9019;&#x91CC;&#x7684;&#x524D;&#x8005;&#x751F;&#x6210;&#x7684;&#x662F;&#x4E00;&#x500B;slice&#xFF0C;&#x5F8C;&#x8005;&#x751F;&#x6210;&#x7684;&#x662F;&#x4E00;&#x500B;struct&#x3002;</p>
<p>gif.GIF&#x662F;&#x4E00;&#x500B;struct&#x985E;&#x578B;(&#x53C3;&#x8003;4.4&#x7BC0;)&#x3002;struct&#x662F;&#x4E00;&#x7D44;&#x503C;&#x6216;&#x8005;&#x53EB;&#x5B57;&#x6BB5;&#x7684;&#x96C6;&#x5408;&#xFF0C;&#x4E0D;&#x540C;&#x7684;&#x985E;&#x578B;&#x96C6;&#x5408;&#x5728;&#x4E00;&#x500B;struct&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x4EE5;&#x4E00;&#x500B;&#x7D71;&#x4E00;&#x7684;&#x55AE;&#x5143;&#x9032;&#x884C;&#x8655;&#x7406;&#x3002;anim&#x662F;&#x4E00;&#x500B;gif.GIF&#x985E;&#x578B;&#x7684;struct&#x8B8A;&#x91CF;&#x3002;&#x9019;&#x7A2E;&#x5BEB;&#x6CD5;&#x6703;&#x751F;&#x6210;&#x4E00;&#x500B;struct&#x8B8A;&#x91CF;&#xFF0C;&#x4F75;&#x4E14;&#x5176;&#x5167;&#x90E8;&#x8B8A;&#x91CF;LoopCount&#x5B57;&#x6BB5;&#x6703;&#x88AB;&#x8A2D;&#x7F6E;&#x7232;nframes&#xFF1B;&#x800C;&#x5176;&#x5B83;&#x7684;&#x5B57;&#x6BB5;&#x6703;&#x88AB;&#x8A2D;&#x7F6E;&#x7232;&#x5404;&#x81EA;&#x985E;&#x578B;&#x9ED8;&#x8A8D;&#x7684;&#x96F6;&#x503C;&#x3002;struct&#x5167;&#x90E8;&#x7684;&#x8B8A;&#x91CF;&#x53EF;&#x4EE5;&#x4EE5;&#x4E00;&#x500B;&#x9EDE;(.)&#x4F86;&#x9032;&#x884C;&#x8A2A;&#x554F;&#xFF0C;&#x5C31;&#x50CF;&#x5728;&#x6700;&#x5F8C;&#x5169;&#x500B;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x4E2D;&#x986F;&#x5F0F;&#x5730;&#x66F4;&#x65B0;&#x4E86;anim&#x9019;&#x500B;struct&#x7684;Delay&#x548C;Image&#x5B57;&#x6BB5;&#x3002;</p>
<p>lissajous&#x51FD;&#x6578;&#x5167;&#x90E8;&#x6709;&#x5169;&#x5C64;&#x5D4C;&#x592A;&#x7684;for&#x5FAA;&#x74B0;&#x3002;&#x5916;&#x5C64;&#x5FAA;&#x74B0;&#x6703;&#x5FAA;&#x74B0;64&#x6B21;&#xFF0C;&#x6BCF;&#x4E00;&#x6B21;&#x90FD;&#x6703;&#x751F;&#x6210;&#x4E00;&#x500B;&#x55AE;&#x7368;&#x7684;&#x52D5;&#x7575;&#x5E40;&#x3002;&#x5B83;&#x751F;&#x6210;&#x4E86;&#x4E00;&#x500B;&#x5305;&#x542B;&#x5169;&#x7A2E;&#x9854;&#x8272;&#x7684;201&amp;201&#x5927;&#x5C0F;&#x7684;&#x5716;&#x7247;&#xFF0C;&#x767D;&#x8272;&#x548C;&#x9ED1;&#x8272;&#x3002;&#x6240;&#x6709;&#x50CF;&#x7D20;&#x9EDE;&#x90FD;&#x6703;&#x88AB;&#x9ED8;&#x8A8D;&#x8A2D;&#x7F6E;&#x7232;&#x5176;&#x96F6;&#x503C;(&#x4E5F;&#x5C31;&#x662F;palette&#x91CC;&#x7684;&#x7B2C;0&#x500B;&#x503C;)&#xFF0C;&#x9019;&#x91CC;&#x6211;&#x5011;&#x8A2D;&#x7F6E;&#x7684;&#x662F;&#x767D;&#x8272;&#x3002;&#x6BCF;&#x6B21;&#x7D93;&#x904E;&#x5167;&#x5B58;&#x5FAA;&#x74B0;&#x90FD;&#x6703;&#x901A;&#x904E;&#x8A2D;&#x7F6E;&#x50CF;&#x7D20;&#x7232;&#x9ED1;&#x8272;&#xFF0C;&#x751F;&#x6210;&#x4E00;&#x5F35;&#x65B0;&#x5716;&#x7247;&#x3002;&#x5176;&#x7D50;&#x679C;&#x6703;append&#x5230;&#x4E4B;&#x524D;&#x7D50;&#x679C;&#x4E4B;&#x5F8C;&#x3002;&#x9019;&#x91CC;&#x6211;&#x5011;&#x7528;&#x5230;&#x4E86;append(&#x53C3;&#x8003;4.2.1)&#x9019;&#x500B;&#x5167;&#x7F6E;&#x51FD;&#x6578;&#xFF0C;&#x5C07;&#x7D50;&#x679C;appen&#x5230;anim&#x4E2D;&#x7684;&#x5E40;&#x5217;&#x8868;&#x672B;&#x5C3E;&#xFF0C;&#x4F75;&#x6703;&#x8A2D;&#x7F6E;&#x4E00;&#x500B;&#x9ED8;&#x8A8D;&#x7684;80ms&#x7684;&#x5EF6;&#x9072;&#x503C;&#x3002;&#x6700;&#x7D42;&#x5FAA;&#x74B0;&#x7D50;&#x675F;&#xFF0C;&#x6240;&#x6709;&#x7684;&#x5EF6;&#x9072;&#x503C;&#x4E5F;&#x88AB;&#x7DE8;&#x78BC;&#x9032;&#x4E86;GIF&#x5716;&#x7247;&#x4E2D;&#xFF0C;&#x4F75;&#x5C07;&#x7D50;&#x679C;&#x5BEB;&#x5165;&#x5230;&#x8F38;&#x9F63;&#x6D41;&#x3002;out&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x662F;io.Writer&#x985E;&#x578B;&#xFF0C;&#x9019;&#x500B;&#x985E;&#x578B;&#x8B93;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x628A;&#x8F38;&#x9F63;&#x7D50;&#x679C;&#x5BEB;&#x5230;&#x5F88;&#x591A;&#x76EE;&#x6A19;&#xFF0C;&#x5F88;&#x5FEB;&#x6211;&#x5011;&#x5C31;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x4E86;&#x3002;</p>
<p>&#x7576;&#x6211;&#x5011;import&#x4E86;&#x4E00;&#x500B;&#x5305;&#x8DEF;&#x5F91;&#x5305;&#x542B;&#x6709;&#x591A;&#x500B;&#x55AE;&#x8A5E;&#x7684;package&#x6642;&#xFF0C;&#x6BD4;&#x5982;image/color&#xFF08;image&#x548C;color&#x5169;&#x500B;&#x55AE;&#x8A5E;&#xFF09;&#xFF0C;&#x901A;&#x5E38;&#x6211;&#x5011;&#x96BB;&#x9700;&#x8981;&#x7528;&#x6700;&#x5F8C;&#x90A3;&#x500B;&#x55AE;&#x8A5E;&#x8868;&#x793A;&#x9019;&#x500B;&#x5305;&#x5C31;&#x53EF;&#x4EE5;&#x3002;&#x6240;&#x4EE5;&#x7576;&#x6211;&#x5011;&#x5BEB;color.White&#x6642;&#xFF0C;&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x6307;&#x5411;&#x7684;&#x662F;image/color&#x5305;&#x91CC;&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x540C;&#x7406;gif.GIF&#x662F;&#x5C6C;&#x65BC;image/gif&#x5305;&#x91CC;&#x7684;&#x8B8A;&#x91CF;&#x3002;</p>
<p>&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x91CC;&#x7684;&#x5E38;&#x91CF;&#x8072;&#x660E;&#x7D66;&#x9F63;&#x4E86;&#x4E00;&#x7E6B;&#x5217;&#x7684;&#x5E38;&#x91CF;&#x503C;&#xFF0C;&#x5E38;&#x91CF;&#x662F;&#x6307;&#x5728;&#x7A0B;&#x5E8F;&#x7DE8;&#x8B6F;&#x5F8C;&#x904B;&#x884C;&#x6642;&#x59CB;&#x7D42;&#x90FD;&#x4E0D;&#x6703;&#x8B8A;&#x5316;&#x7684;&#x503C;&#xFF0C;&#x6BD4;&#x5982;&#x5708;&#x6578;&#x3001;&#x5E40;&#x6578;&#x3001;&#x5EF6;&#x9072;&#x503C;&#x3002;&#x5E38;&#x91CF;&#x8072;&#x660E;&#x548C;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x4E00;&#x822C;&#x90FD;&#x6703;&#x9F63;&#x73FE;&#x5728;&#x5305;&#x7D1A;&#x522B;&#xFF0C;&#x6240;&#x4EE5;&#x9019;&#x4E9B;&#x5E38;&#x91CF;&#x5728;&#x6574;&#x500B;&#x5305;&#x4E2D;&#x90FD;&#x662F;&#x53EF;&#x4EE5;&#x5171;&#x4EAB;&#x7684;&#xFF0C;&#x6216;&#x8005;&#x4F60;&#x4E5F;&#x53EF;&#x4EE5;&#x628A;&#x5E38;&#x91CF;&#x8072;&#x660E;&#x5B9A;&#x7FA9;&#x5728;&#x51FD;&#x6578;&#x9AD4;&#x5167;&#x90E8;&#xFF0C;&#x90A3;&#x9EBD;&#x9019;&#x7A2E;&#x5E38;&#x91CF;&#x5C31;&#x96BB;&#x80FD;&#x5728;&#x51FD;&#x6578;&#x9AD4;&#x5167;&#x7528;&#x3002;&#x76EE;&#x524D;&#x5E38;&#x91CF;&#x8072;&#x660E;&#x7684;&#x503C;&#x5FC5;&#x9B1A;&#x662F;&#x4E00;&#x500B;&#x6578;&#x5B57;&#x503C;&#x3001;&#x5B57;&#x7B26;&#x4E32;&#x6216;&#x8005;&#x4E00;&#x500B;&#x56FA;&#x5B9A;&#x7684;boolean&#x503C;&#x3002;</p>
<p>[]color.Color{...}&#x548C;gif.GIF{...}&#x9019;&#x5169;&#x500B;&#x8868;&#x9054;&#x5F0F;&#x5C31;&#x662F;&#x6211;&#x5011;&#x8AAC;&#x7684;&#x8907;&#x5408;&#x8072;&#x660E;&#xFF08;4.2&#x548C;4.4.1&#x7BC0;&#x6709;&#x8AAC;&#x660E;&#xFF09;&#x3002;&#x9019;&#x662F;&#x5BE6;&#x4F8B;&#x5316;Go&#x8A9E;&#x8A00;&#x91CC;&#x7684;&#x8907;&#x5408;&#x985E;&#x578B;&#x7684;&#x4E00;&#x7A2E;&#x5BEB;&#x6CD5;&#x3002;&#x9019;&#x91CC;&#x7684;&#x524D;&#x8005;&#x751F;&#x6210;&#x7684;&#x662F;&#x4E00;&#x500B;slice&#x5207;&#x7247;&#xFF0C;&#x5F8C;&#x8005;&#x751F;&#x6210;&#x7684;&#x662F;&#x4E00;&#x500B;struct&#x7D50;&#x69CB;&#x9AD4;&#x3002;</p>
<p>gif.GIF&#x662F;&#x4E00;&#x500B;struct&#x985E;&#x578B;&#xFF08;&#x53C3;&#x8003;4.4&#x7BC0;&#xFF09;&#x3002;struct&#x662F;&#x4E00;&#x7D44;&#x503C;&#x6216;&#x8005;&#x53EB;&#x5B57;&#x6BB5;&#x7684;&#x96C6;&#x5408;&#xFF0C;&#x4E0D;&#x540C;&#x7684;&#x985E;&#x578B;&#x96C6;&#x5408;&#x5728;&#x4E00;&#x500B;struct&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x4EE5;&#x4E00;&#x500B;&#x7D71;&#x4E00;&#x7684;&#x55AE;&#x5143;&#x9032;&#x884C;&#x8655;&#x7406;&#x3002;anim&#x662F;&#x4E00;&#x500B;gif.GIF&#x985E;&#x578B;&#x7684;struct&#x8B8A;&#x91CF;&#x3002;&#x9019;&#x7A2E;&#x5BEB;&#x6CD5;&#x6703;&#x751F;&#x6210;&#x4E00;&#x500B;struct&#x8B8A;&#x91CF;&#xFF0C;&#x4F75;&#x4E14;&#x5176;&#x5167;&#x90E8;&#x8B8A;&#x91CF;LoopCount&#x5B57;&#x6BB5;&#x6703;&#x88AB;&#x8A2D;&#x7F6E;&#x7232;nframes&#xFF1B;&#x800C;&#x5176;&#x5B83;&#x7684;&#x5B57;&#x6BB5;&#x6703;&#x88AB;&#x8A2D;&#x7F6E;&#x7232;&#x5404;&#x81EA;&#x985E;&#x578B;&#x9ED8;&#x8A8D;&#x7684;&#x96F6;&#x503C;&#x3002;struct&#x5167;&#x90E8;&#x7684;&#x8B8A;&#x91CF;&#x53EF;&#x4EE5;&#x4EE5;&#x4E00;&#x500B;&#x9EDE;(.)&#x4F86;&#x9032;&#x884C;&#x8A2A;&#x554F;&#xFF0C;&#x5C31;&#x50CF;&#x5728;&#x6700;&#x5F8C;&#x5169;&#x500B;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x4E2D;&#x986F;&#x5F0F;&#x5730;&#x66F4;&#x65B0;&#x4E86;anim&#x9019;&#x500B;struct&#x7684;Delay&#x548C;Image&#x5B57;&#x6BB5;&#x3002;</p>
<p>lissajous&#x51FD;&#x6578;&#x5167;&#x90E8;&#x6709;&#x5169;&#x5C64;&#x5D4C;&#x5957;&#x7684;for&#x5FAA;&#x74B0;&#x3002;&#x5916;&#x5C64;&#x5FAA;&#x74B0;&#x6703;&#x5FAA;&#x74B0;64&#x6B21;&#xFF0C;&#x6BCF;&#x4E00;&#x6B21;&#x90FD;&#x6703;&#x751F;&#x6210;&#x4E00;&#x500B;&#x55AE;&#x7368;&#x7684;&#x52D5;&#x7575;&#x5E40;&#x3002;&#x5B83;&#x751F;&#x6210;&#x4E86;&#x4E00;&#x500B;&#x5305;&#x542B;&#x5169;&#x7A2E;&#x9854;&#x8272;&#x7684;201&amp;201&#x5927;&#x5C0F;&#x7684;&#x5716;&#x7247;&#xFF0C;&#x767D;&#x8272;&#x548C;&#x9ED1;&#x8272;&#x3002;&#x6240;&#x6709;&#x50CF;&#x7D20;&#x9EDE;&#x90FD;&#x6703;&#x88AB;&#x9ED8;&#x8A8D;&#x8A2D;&#x7F6E;&#x7232;&#x5176;&#x96F6;&#x503C;&#xFF08;&#x4E5F;&#x5C31;&#x662F;palette&#x91CC;&#x7684;&#x7B2C;0&#x500B;&#x503C;&#xFF09;&#xFF0C;&#x9019;&#x91CC;&#x6211;&#x5011;&#x8A2D;&#x7F6E;&#x7684;&#x662F;&#x767D;&#x8272;&#x3002;&#x6BCF;&#x6B21;&#x7D93;&#x904E;&#x5167;&#x5B58;&#x5FAA;&#x74B0;&#x90FD;&#x6703;&#x901A;&#x904E;&#x8A2D;&#x7F6E;&#x50CF;&#x7D20;&#x7232;&#x9ED1;&#x8272;&#xFF0C;&#x751F;&#x6210;&#x4E00;&#x5F35;&#x65B0;&#x5716;&#x7247;&#x3002;&#x5176;&#x7D50;&#x679C;&#x6703;append&#x5230;&#x4E4B;&#x524D;&#x7D50;&#x679C;&#x4E4B;&#x5F8C;&#x3002;&#x9019;&#x91CC;&#x6211;&#x5011;&#x7528;&#x5230;&#x4E86;append(&#x53C3;&#x8003;4.2.1)&#x9019;&#x500B;&#x5167;&#x7F6E;&#x51FD;&#x6578;&#xFF0C;&#x5C07;&#x7D50;&#x679C;appen&#x5230;anim&#x4E2D;&#x7684;&#x5E40;&#x5217;&#x8868;&#x672B;&#x5C3E;&#xFF0C;&#x4F75;&#x6703;&#x8A2D;&#x7F6E;&#x4E00;&#x500B;&#x9ED8;&#x8A8D;&#x7684;80ms&#x7684;&#x5EF6;&#x9072;&#x503C;&#x3002;&#x6700;&#x7D42;&#x5FAA;&#x74B0;&#x7D50;&#x675F;&#xFF0C;&#x6240;&#x6709;&#x7684;&#x5EF6;&#x9072;&#x503C;&#x4E5F;&#x88AB;&#x7DE8;&#x78BC;&#x9032;&#x4E86;GIF&#x5716;&#x7247;&#x4E2D;&#xFF0C;&#x4F75;&#x5C07;&#x7D50;&#x679C;&#x5BEB;&#x5165;&#x5230;&#x8F38;&#x9F63;&#x6D41;&#x3002;out&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x662F;io.Writer&#x985E;&#x578B;&#xFF0C;&#x9019;&#x500B;&#x985E;&#x578B;&#x8B93;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x628A;&#x8F38;&#x9F63;&#x7D50;&#x679C;&#x5BEB;&#x5230;&#x5F88;&#x591A;&#x76EE;&#x6A19;&#xFF0C;&#x5F88;&#x5FEB;&#x6211;&#x5011;&#x5C31;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x4E86;&#x3002;</p>
<p>&#x5167;&#x5B58;&#x5FAA;&#x74B0;&#x8A2D;&#x7F6E;&#x4E86;&#x5169;&#x500B;&#x504F;&#x632F;&#x3002;x&#x8EF8;&#x504F;&#x632F;&#x4F7F;&#x7528;&#x7684;&#x662F;&#x4E00;&#x500B;sin&#x51FD;&#x6578;&#x3002;y&#x8EF8;&#x504F;&#x632F;&#x4E5F;&#x662F;&#x4E00;&#x500B;&#x6B63;&#x7D43;&#x6CE2;&#xFF0C;&#x4F46;&#x662F;&#x5176;&#x5176;&#x76F8;&#x5C0D;x&#x8EF8;&#x7684;&#x504F;&#x632F;&#x662F;&#x4E00;&#x500B;0-3&#x7684;&#x96A8;&#x6A5F;&#x503C;&#xFF0C;&#x4F75;&#x4E14;&#x521D;&#x59CB;&#x504F;&#x632F;&#x503C;&#x662F;&#x4E00;&#x500B;&#x96F6;&#x503C;&#xFF0C;&#x4F75;&#x96A8;&#x7740;&#x52D5;&#x7575;&#x7684;&#x6BCF;&#x4E00;&#x5E40;&#x9010;&#x6F38;&#x589E;&#x52A0;&#x3002;&#x5FAA;&#x74B0;&#x6703;&#x4E00;&#x76F4;&#x8DD1;&#x5230;x&#x8EF8;&#x5B8C;&#x6210;&#x4E94;&#x6B21;&#x5B8C;&#x6574;&#x7684;&#x5FAA;&#x74B0;&#x3002;&#x6BCF;&#x4E00;&#x6B65;&#x5B83;&#x90FD;&#x6703;&#x8ABF;&#x7528;SetColorIndex&#x4F86;&#x7232;(x, y)&#x9EDE;&#x4F86;&#x67D3;&#x9ED1;&#x8272;&#x3002;</p>
<p>main&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x4E86;lissajous&#x51FD;&#x6578;&#xFF0C;&#x4F75;&#x4E14;&#x7528;&#x5B83;&#x4F86;&#x5411;&#x6A19;&#x6E96;&#x8F38;&#x9F63;&#x4E2D;&#x6253;&#x5370;&#x4FE1;&#x606F;&#xFF0C;&#x6240;&#x4EE5;&#x4E0B;&#x9762;&#x9019;&#x500B;&#x547D;&#x4EE4;&#x6703;&#x50CF;&#x5716;1.1&#x4E2D;&#x7523;&#x751F;&#x4E00;&#x500B;GIF&#x52D5;&#x7575;&#x3002;</p>
<pre><code class="lang-bash">$ go build gopl.io/ch1/lissajous
<pre><code>$ go build gopl.io/ch1/lissajous
$ ./lissajous &gt;out.gif
</code></pre>
<pre><code>Exercise 1.5: &#x8129;&#x6539;&#x524D;&#x9762;&#x7684;Lissajous&#x7A0B;&#x5E8F;&#x91CC;&#x7684;&#x8ABF;&#x8272;&#x95C6;&#xFF0C;&#x7531;&#x7DD1;&#x8272;&#x6539;&#x7232;&#x9ED1;&#x8272;&#x3002;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7528;color.RGBA{0xRR, 0xGG, 0xBB}&#x4F86;&#x5F97;&#x5230;#RRGGBB&#x9019;&#x500B;&#x8272;&#x503C;&#xFF0C;&#x4E09;&#x500B;&#x5341;&#x516D;&#x9032;&#x88FD;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x5206;&#x522B;&#x4EE3;&#x8868;&#x7D05;&#x3001;&#x7DD1;&#x3001;&#x85CD;&#x50CF;&#x7D20;&#x3002;
Exercise 1.6: &#x8129;&#x6539;Lissajous&#x7A0B;&#x5E8F;&#xFF0C;&#x8129;&#x6539;&#x5176;&#x8ABF;&#x8272;&#x95C6;&#x4F86;&#x751F;&#x6210;&#x66F4;&#x8C50;&#x5BCC;&#x7684;&#x9854;&#x8272;&#xFF0C;&#x7136;&#x5F8C;&#x8129;&#x6539;SetColorIndex&#x7684;&#x7B2C;&#x4E09;&#x500B;&#x53C3;&#x6578;&#xFF0C;&#x770B;&#x770B;&#x986F;&#x793A;&#x7D50;&#x679C;&#x5427;&#x3002;
</code></pre>
</code></pre><p><strong>&#x7DF4;&#x7FD2; 1.5&#xFF1A;</strong> &#x8129;&#x6539;&#x524D;&#x9762;&#x7684;Lissajous&#x7A0B;&#x5E8F;&#x91CC;&#x7684;&#x8ABF;&#x8272;&#x95C6;&#xFF0C;&#x7531;&#x7DD1;&#x8272;&#x6539;&#x7232;&#x9ED1;&#x8272;&#x3002;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7528;color.RGBA{0xRR, 0xGG, 0xBB}&#x4F86;&#x5F97;&#x5230;#RRGGBB&#x9019;&#x500B;&#x8272;&#x503C;&#xFF0C;&#x4E09;&#x500B;&#x5341;&#x516D;&#x9032;&#x88FD;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x5206;&#x522B;&#x4EE3;&#x8868;&#x7D05;&#x3001;&#x7DD1;&#x3001;&#x85CD;&#x50CF;&#x7D20;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 1.6&#xFF1A;</strong> &#x8129;&#x6539;Lissajous&#x7A0B;&#x5E8F;&#xFF0C;&#x8129;&#x6539;&#x5176;&#x8ABF;&#x8272;&#x95C6;&#x4F86;&#x751F;&#x6210;&#x66F4;&#x8C50;&#x5BCC;&#x7684;&#x9854;&#x8272;&#xFF0C;&#x7136;&#x5F8C;&#x8129;&#x6539;SetColorIndex&#x7684;&#x7B2C;&#x4E09;&#x500B;&#x53C3;&#x6578;&#xFF0C;&#x770B;&#x770B;&#x986F;&#x793A;&#x7D50;&#x679C;&#x5427;&#x3002;</p>
</section>

View File

@@ -48,7 +48,7 @@
<body>
<div class="book" data-level="1.5" data-chapter-title="穫取URL" data-filepath="ch1/ch1-05.md" data-basepath=".." data-revision="Mon Dec 21 2015 12:51:02 GMT+0800 (中国标准时间)">
<div class="book" data-level="1.5" data-chapter-title="穫取URL" data-filepath="ch1/ch1-05.md" data-basepath=".." data-revision="Thu Dec 24 2015 14:42:02 GMT+0800 (中国标准时间)">
<div class="book-summary">
@@ -1975,16 +1975,16 @@
</li>
<li class="chapter " data-level="14" data-path="errata.html">
<li class="chapter " data-level="14" data-path="CONTRIBUTORS.html">
<a href="../errata.html">
<a href="../CONTRIBUTORS.html">
<i class="fa fa-check"></i>
<b>14.</b>
勘誤
附録
</a>
@@ -2023,12 +2023,13 @@
<section class="normal" id="section-">
<h2 id="15-&#x7A6B;&#x53D6;url">1.5 &#x7A6B;&#x53D6;URL</h2>
<p>&#x5C0D;&#x65BC;&#x5F88;&#x591A;&#x61C9;&#x7528;&#x4F86;&#x8AAC;&#xFF0C;&#x8A2A;&#x554F;&#x4E92;&#x806F;&#x7DB2;&#x4E0A;&#x7684;&#x4FE1;&#x606F;&#x548C;&#x8A2A;&#x554F;&#x672C;&#x5730;&#x6587;&#x4EF6;&#x7E6B;&#x7D71;&#x4E00;&#x6A23;&#x91CD;&#x8981;&#x3002;Go&#x5728;net&#x9019;&#x500B;&#x5927;package&#x4E0B;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x7E6B;&#x5217;&#x7684;package&#x4F86;&#x505A;&#x9019;&#x4EF6;&#x4E8B;&#x60C5;&#xFF0C;&#x4F7F;&#x7528;&#x9019;&#x4E9B;&#x5305;&#x53EF;&#x4EE5;&#x66F4;&#x7C21;&#x55AE;&#x5730;&#x7528;&#x7DB2;&#x7D61;&#x6536;&#x767C;&#x4FE1;&#x606F;&#xFF0C;&#x9084;&#x53EF;&#x4EE5;&#x5EFA;&#x7ACB;&#x66F4;&#x5E95;&#x5C64;&#x7684;&#x7DB2;&#x7D61;&#x9023;&#x63A5;&#xFF0C;&#x7DE8;&#x5BEB;&#x670D;&#x52D9;&#x5668;&#x7A0B;&#x5E8F;&#x3002;&#x5728;&#x9019;&#x4E9B;&#x60C5;&#x666F;&#x4E0B;&#xFF0C;Go&#x539F;&#x751F;&#x7684;&#x4F75;&#x767C;&#x7279;&#x6027;(&#x5728;&#x7B2C;&#x516B;&#x7AE0;&#x4E2D;&#x6703;&#x4ECB;&#x7D39;)&#x5C31;&#x986F;&#x5F97;&#x5C24;&#x5176;&#x597D;&#x7528;&#x4E86;&#x3002;</p>
<p>&#x7232;&#x4E86;&#x6700;&#x7C21;&#x55AE;&#x5730;&#x5C55;&#x793A;&#x57FA;&#x65BC;HTTP&#x7A6B;&#x53D6;&#x4FE1;&#x606F;&#x7684;&#x65B9;&#x5F0F;&#xFF0C;&#x4E0B;&#x9762;&#x7D66;&#x9F63;&#x4E00;&#x500B;&#x793A;&#x4F8B;&#x7A0B;&#x5E8F;fetch&#xFF0C;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x5C07;&#x7A6B;&#x53D6;&#x5C0D;&#x61C9;&#x7684;url&#xFF0C;&#x4F75;&#x5C07;&#x5176;&#x6E90;&#x6587;&#x672C;&#x6253;&#x5370;&#x9F63;&#x4F86;&#xFF1B;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x7684;&#x9748;&#x611F;&#x4F86;&#x6E90;&#x65BC;curl&#x5DE5;&#x5177;(&#x8B6F;&#x8A3B;&#xFF1A;unix&#x4E0B;&#x7684;&#x4E00;&#x500B;&#x5DE5;&#x5177;)&#x3002;&#x7576;&#x7136;&#x4E86;&#xFF0C;curl&#x63D0;&#x4F9B;&#x7684;&#x529F;&#x80FD;&#x66F4;&#x7232;&#x8907;&#x96DC;&#x8C50;&#x5BCC;&#xFF0C;&#x9019;&#x91CC;&#x6211;&#x5011;&#x96BB;&#x7DE8;&#x5BEB;&#x6700;&#x7C21;&#x55AE;&#x7684;&#x6A23;&#x4F8B;&#x3002;&#x4E4B;&#x5F8C;&#x6211;&#x5011;&#x9084;&#x6703;&#x5728;&#x672C;&#x66F8;&#x4E2D;&#x7D93;&#x5E38;&#x7528;&#x5230;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x3002;</p>
<h2 id="15-&#x7A6B;&#x53D6;url">1.5. &#x7A6B;&#x53D6;URL</h2>
<p>&#x5C0D;&#x65BC;&#x5F88;&#x591A;&#x73FE;&#x4EE3;&#x61C9;&#x7528;&#x4F86;&#x8AAC;&#xFF0C;&#x8A2A;&#x554F;&#x4E92;&#x806F;&#x7DB2;&#x4E0A;&#x7684;&#x4FE1;&#x606F;&#x548C;&#x8A2A;&#x554F;&#x672C;&#x5730;&#x6587;&#x4EF6;&#x7E6B;&#x7D71;&#x4E00;&#x6A23;&#x91CD;&#x8981;&#x3002;Go&#x8A9E;&#x8A00;&#x5728;net&#x9019;&#x500B;&#x5F37;&#x5927;package&#x7684;&#x5E6B;&#x52A9;&#x4E0B;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x7E6B;&#x5217;&#x7684;package&#x4F86;&#x505A;&#x9019;&#x4EF6;&#x4E8B;&#x60C5;&#xFF0C;&#x4F7F;&#x7528;&#x9019;&#x4E9B;&#x5305;&#x53EF;&#x4EE5;&#x66F4;&#x7C21;&#x55AE;&#x5730;&#x7528;&#x7DB2;&#x7D61;&#x6536;&#x767C;&#x4FE1;&#x606F;&#xFF0C;&#x9084;&#x53EF;&#x4EE5;&#x5EFA;&#x7ACB;&#x66F4;&#x5E95;&#x5C64;&#x7684;&#x7DB2;&#x7D61;&#x9023;&#x63A5;&#xFF0C;&#x7DE8;&#x5BEB;&#x670D;&#x52D9;&#x5668;&#x7A0B;&#x5E8F;&#x3002;&#x5728;&#x9019;&#x4E9B;&#x60C5;&#x666F;&#x4E0B;&#xFF0C;Go&#x8A9E;&#x8A00;&#x539F;&#x751F;&#x7684;&#x4F75;&#x767C;&#x7279;&#x6027;&#xFF08;&#x5728;&#x7B2C;&#x516B;&#x7AE0;&#x4E2D;&#x6703;&#x4ECB;&#x7D39;&#xFF09;&#x5C31;&#x986F;&#x5F97;&#x5C24;&#x5176;&#x597D;&#x7528;&#x4E86;&#x3002;</p>
<p>&#x7232;&#x4E86;&#x6700;&#x7C21;&#x55AE;&#x5730;&#x5C55;&#x793A;&#x57FA;&#x65BC;HTTP&#x7A6B;&#x53D6;&#x4FE1;&#x606F;&#x7684;&#x65B9;&#x5F0F;&#xFF0C;&#x4E0B;&#x9762;&#x7D66;&#x9F63;&#x4E00;&#x500B;&#x793A;&#x4F8B;&#x7A0B;&#x5E8F;fetch&#xFF0C;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x5C07;&#x7A6B;&#x53D6;&#x5C0D;&#x61C9;&#x7684;url&#xFF0C;&#x4F75;&#x5C07;&#x5176;&#x6E90;&#x6587;&#x672C;&#x6253;&#x5370;&#x9F63;&#x4F86;&#xFF1B;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x7684;&#x9748;&#x611F;&#x4F86;&#x6E90;&#x65BC;curl&#x5DE5;&#x5177;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;unix&#x4E0B;&#x7684;&#x4E00;&#x500B;&#x7DB2;&#x7D61;&#x76F8;&#x95DC;&#x7684;&#x5DE5;&#x5177;&#xFF09;&#x3002;&#x7576;&#x7136;&#x4E86;&#xFF0C;curl&#x63D0;&#x4F9B;&#x7684;&#x529F;&#x80FD;&#x66F4;&#x7232;&#x8907;&#x96DC;&#x8C50;&#x5BCC;&#xFF0C;&#x9019;&#x91CC;&#x6211;&#x5011;&#x96BB;&#x7DE8;&#x5BEB;&#x6700;&#x7C21;&#x55AE;&#x7684;&#x6A23;&#x4F8B;&#x3002;&#x4E4B;&#x5F8C;&#x6211;&#x5011;&#x9084;&#x6703;&#x5728;&#x672C;&#x66F8;&#x4E2D;&#x7D93;&#x5E38;&#x7528;&#x5230;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x3002;</p>
<pre><code class="lang-go">gopl.io/ch1/fetch
<span class="hljs-comment">// Fetch prints the content found at a URL.</span>
<span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> (
<span class="hljs-string">&quot;fmt&quot;</span>
<span class="hljs-string">&quot;io/ioutil&quot;</span>
@@ -2053,23 +2054,24 @@
}
}
</code></pre>
<p>&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x5F9E;&#x5169;&#x500B;package&#x4E2D;&#x5C0E;&#x5165;&#x4E86;&#x51FD;&#x6578;&#xFF0C;net/http&#x548C;io/ioutil&#xFF0C;http.Get&#x51FD;&#x6578;&#x662F;&#x5275;&#x5EFA;HTTP&#x8ACB;&#x6C42;&#x7684;&#x51FD;&#x6578;&#xFF0C;&#x5982;&#x679C;&#x7A6B;&#x53D6;&#x904E;&#x7A0B;&#x6C92;&#x6709;&#x9F63;&#x932F;&#xFF0C;&#x90A3;&#x9EBD;&#x6703;&#x5728;resp&#x9019;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x4E2D;&#x5F97;&#x5230;&#x8A2A;&#x554F;&#x7684;&#x8ACB;&#x6C42;&#x7D50;&#x679C;&#x3002;resp&#x7684;Body&#x5B57;&#x6BB5;&#x5305;&#x62EC;&#x4E00;&#x500B;&#x53EF;&#x8B80;&#x7684;&#x670D;&#x52D9;&#x5668;&#x97FF;&#x61C9;&#x6D41;&#x3002;&#x9019;&#x4E4B;&#x5F8C;ioutil.ReadAll&#x51FD;&#x6578;&#x5F9E;response&#x4E2D;&#x8B80;&#x53D6;&#x5230;&#x5168;&#x90E8;&#x5167;&#x5BB9;&#xFF1B;&#x5176;&#x7D50;&#x679C;&#x4FDD;&#x5B58;&#x5728;&#x8B8A;&#x91CF;b&#x4E2D;&#x3002;resp.Body.Close&#x9019;&#x4E00;&#x53E5;&#x6703;&#x95DC;&#x9589;resp&#x7684;Body&#x6D41;&#xFF0C;&#x9632;&#x6B62;&#x8CC7;&#x6E90;&#x6D29;&#x9732;&#xFF0C;Printf&#x51FD;&#x6578;&#x6703;&#x5C07;&#x7D50;&#x679C;b&#x5BEB;&#x9F63;&#x5230;&#x6A19;&#x6E96;&#x8F38;&#x9F63;&#x6D41;&#x4E2D;&#x3002;</p>
<pre><code class="lang-bash">$ go build gopl.io/ch1/fetch
<p>&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x5F9E;&#x5169;&#x500B;package&#x4E2D;&#x5C0E;&#x5165;&#x4E86;&#x51FD;&#x6578;&#xFF0C;net/http&#x548C;io/ioutil&#x5305;&#xFF0C;http.Get&#x51FD;&#x6578;&#x662F;&#x5275;&#x5EFA;HTTP&#x8ACB;&#x6C42;&#x7684;&#x51FD;&#x6578;&#xFF0C;&#x5982;&#x679C;&#x7A6B;&#x53D6;&#x904E;&#x7A0B;&#x6C92;&#x6709;&#x9F63;&#x932F;&#xFF0C;&#x90A3;&#x9EBD;&#x6703;&#x5728;resp&#x9019;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x4E2D;&#x5F97;&#x5230;&#x8A2A;&#x554F;&#x7684;&#x8ACB;&#x6C42;&#x7D50;&#x679C;&#x3002;resp&#x7684;Body&#x5B57;&#x6BB5;&#x5305;&#x62EC;&#x4E00;&#x500B;&#x53EF;&#x8B80;&#x7684;&#x670D;&#x52D9;&#x5668;&#x97FF;&#x61C9;&#x6D41;&#x3002;&#x9019;&#x4E4B;&#x5F8C;ioutil.ReadAll&#x51FD;&#x6578;&#x5F9E;response&#x4E2D;&#x8B80;&#x53D6;&#x5230;&#x5168;&#x90E8;&#x5167;&#x5BB9;&#xFF1B;&#x5176;&#x7D50;&#x679C;&#x4FDD;&#x5B58;&#x5728;&#x8B8A;&#x91CF;b&#x4E2D;&#x3002;resp.Body.Close&#x9019;&#x4E00;&#x53E5;&#x6703;&#x95DC;&#x9589;resp&#x7684;Body&#x6D41;&#xFF0C;&#x9632;&#x6B62;&#x8CC7;&#x6E90;&#x6D29;&#x9732;&#xFF0C;Printf&#x51FD;&#x6578;&#x6703;&#x5C07;&#x7D50;&#x679C;b&#x5BEB;&#x9F63;&#x5230;&#x6A19;&#x6E96;&#x8F38;&#x9F63;&#x6D41;&#x4E2D;&#x3002;</p>
<pre><code>$ go build gopl.io/ch1/fetch
$ ./fetch http://gopl.io
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;The Go Programming Language&lt;/title&gt;title&gt;
...
</code></pre>
<p>HTTP&#x8ACB;&#x6C42;&#x5982;&#x679C;&#x5931;&#x6557;&#x4E86;&#x7684;&#x8A71;&#xFF0C;&#x6703;&#x5F97;&#x5230;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#x7684;&#x7D50;&#x679C;&#xFF1A;</p>
<pre><code class="lang-bash">$ ./fetch http://bad.gopl.io
</code></pre><p>HTTP&#x8ACB;&#x6C42;&#x5982;&#x679C;&#x5931;&#x6557;&#x4E86;&#x7684;&#x8A71;&#xFF0C;&#x6703;&#x5F97;&#x5230;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#x7684;&#x7D50;&#x679C;&#xFF1A;</p>
<pre><code>$ ./fetch http://bad.gopl.io
fetch: Get http://bad.gopl.io: dial tcp: lookup bad.gopl.io: no such host
</code></pre>
<p>&#x7121;&#x8AD6;&#x54EA;&#x7A2E;&#x5931;&#x6557;&#x539F;&#x56E0;&#xFF0C;&#x6211;&#x5011;&#x7684;&#x7A0B;&#x5E8F;&#x90FD;&#x7528;&#x4E86;os.Exit&#x51FD;&#x6578;&#x4F86;&#x7D42;&#x6B62;&#x9032;&#x7A0B;&#xFF0C;&#x4F75;&#x4E14;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;status&#x932F;&#x8AA4;&#x78BC;&#xFF0C;&#x5176;&#x503C;&#x7232;1&#x3002;</p>
<pre><code>Exercise1.7: &#x51FD;&#x6578;&#x8ABF;&#x7528;io.Copy(dst, src)&#x6703;&#x5F9E;src&#x4E2D;&#x8B80;&#x53D6;&#x5167;&#x5BB9;&#xFF0C;&#x4F75;&#x5C07;&#x8B80;&#x5230;&#x7684;&#x7D50;&#x679C;&#x5BEB;&#x5165;&#x5230;dst&#x4E2D;&#xFF0C;&#x4F7F;&#x7528;&#x9019;&#x500B;&#x51FD;&#x6578;&#x66FF;&#x4EE3;&#x6389;&#x4F8B;&#x5B50;&#x4E2D;&#x7684;ioutil.ReadAll&#x4F86;&#x62F7;&#x8C9D;&#x97FF;&#x61C9;&#x7D50;&#x69CB;&#x9AD4;&#x5230;os.Stdout&#xFF0C;&#x907F;&#x514D;&#x7533;&#x8ACB;&#x4E00;&#x500B;&#x7DE9;&#x885D;&#x5340;(&#x4F8B;&#x5B50;&#x4E2D;&#x7684;b)&#x4F86;&#x5B58;&#x5132;&#x3002;&#x8A18;&#x5F97;&#x8655;&#x7406;io.Copy&#x8FD4;&#x8FF4;&#x7D50;&#x679C;&#x4E2D;&#x7684;&#x932F;&#x8AA4;&#x3002;
Exercise 1.8: &#x8129;&#x6539;fetch&#x9019;&#x500B;&#x8303;&#x4F8B;&#xFF0C;&#x5982;&#x679C;&#x8F38;&#x5165;&#x7684;url&#x53C3;&#x6578;&#x6C92;&#x6709;http://&#x524D;&#x7DB4;&#x7684;&#x8A71;&#xFF0C;&#x7232;&#x9019;&#x500B;url&#x52A0;&#x4E0A;&#x8A72;&#x524D;&#x7DB4;&#x3002;&#x4F60;&#x53EF;&#x80FD;&#x6703;&#x7528;&#x5230;strings.HasPrefix&#x9019;&#x500B;&#x51FD;&#x6578;&#x3002;
Exercise 1.9: &#x8129;&#x6539;fetch&#x6253;&#x5370;&#x9F63;HTTP&#x5354;&#x8B70;&#x7684;&#x72C0;&#x614B;&#x78BC;&#xFF0C;&#x53EF;&#x4EE5;&#x5F9E;resp.Status&#x8B8A;&#x91CF;&#x5F97;&#x5230;&#x8A72;&#x72C0;&#x614B;&#x78BC;&#x3002;
</code></pre>
</code></pre><p>&#x8B6F;&#x8A3B;&#xFF1A;&#x5728;&#x5927;&#x5172;&#x671D;&#x7684;&#x7DB2;&#x7D61;&#x74B0;&#x5883;&#x4E0B;&#x5F88;&#x5BB9;&#x6613;&#x91CD;&#x73FE;&#x9019;&#x7A2E;&#x932F;&#x8AA4;&#xFF0C;&#x4E0B;&#x9762;&#x662F;Windows&#x4E0B;&#x904B;&#x884C;&#x5F97;&#x5230;&#x7684;&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#xFF1A;</p>
<pre><code>$ go run main.go http://gopl.io
fetch: Get http://gopl.io: dial tcp: lookup gopl.io: getaddrinfow: No such host is known.
</code></pre><p>&#x7121;&#x8AD6;&#x54EA;&#x7A2E;&#x5931;&#x6557;&#x539F;&#x56E0;&#xFF0C;&#x6211;&#x5011;&#x7684;&#x7A0B;&#x5E8F;&#x90FD;&#x7528;&#x4E86;os.Exit&#x51FD;&#x6578;&#x4F86;&#x7D42;&#x6B62;&#x9032;&#x7A0B;&#xFF0C;&#x4F75;&#x4E14;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;status&#x932F;&#x8AA4;&#x78BC;&#xFF0C;&#x5176;&#x503C;&#x7232;1&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 1.7&#xFF1A;</strong> &#x51FD;&#x6578;&#x8ABF;&#x7528;io.Copy(dst, src)&#x6703;&#x5F9E;src&#x4E2D;&#x8B80;&#x53D6;&#x5167;&#x5BB9;&#xFF0C;&#x4F75;&#x5C07;&#x8B80;&#x5230;&#x7684;&#x7D50;&#x679C;&#x5BEB;&#x5165;&#x5230;dst&#x4E2D;&#xFF0C;&#x4F7F;&#x7528;&#x9019;&#x500B;&#x51FD;&#x6578;&#x66FF;&#x4EE3;&#x6389;&#x4F8B;&#x5B50;&#x4E2D;&#x7684;ioutil.ReadAll&#x4F86;&#x62F7;&#x8C9D;&#x97FF;&#x61C9;&#x7D50;&#x69CB;&#x9AD4;&#x5230;os.Stdout&#xFF0C;&#x907F;&#x514D;&#x7533;&#x8ACB;&#x4E00;&#x500B;&#x7DE9;&#x885D;&#x5340;&#xFF08;&#x4F8B;&#x5B50;&#x4E2D;&#x7684;b&#xFF09;&#x4F86;&#x5B58;&#x5132;&#x3002;&#x8A18;&#x5F97;&#x8655;&#x7406;io.Copy&#x8FD4;&#x8FF4;&#x7D50;&#x679C;&#x4E2D;&#x7684;&#x932F;&#x8AA4;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 1.8&#xFF1A;</strong> &#x8129;&#x6539;fetch&#x9019;&#x500B;&#x8303;&#x4F8B;&#xFF0C;&#x5982;&#x679C;&#x8F38;&#x5165;&#x7684;url&#x53C3;&#x6578;&#x6C92;&#x6709; <code>http://</code> &#x524D;&#x7DB4;&#x7684;&#x8A71;&#xFF0C;&#x7232;&#x9019;&#x500B;url&#x52A0;&#x4E0A;&#x8A72;&#x524D;&#x7DB4;&#x3002;&#x4F60;&#x53EF;&#x80FD;&#x6703;&#x7528;&#x5230;strings.HasPrefix&#x9019;&#x500B;&#x51FD;&#x6578;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 1.9&#xFF1A;</strong> &#x8129;&#x6539;fetch&#x6253;&#x5370;&#x9F63;HTTP&#x5354;&#x8B70;&#x7684;&#x72C0;&#x614B;&#x78BC;&#xFF0C;&#x53EF;&#x4EE5;&#x5F9E;resp.Status&#x8B8A;&#x91CF;&#x5F97;&#x5230;&#x8A72;&#x72C0;&#x614B;&#x78BC;&#x3002;</p>
</section>

View File

@@ -48,7 +48,7 @@
<body>
<div class="book" data-level="1.6" data-chapter-title="併發穫取多個URL" data-filepath="ch1/ch1-06.md" data-basepath=".." data-revision="Mon Dec 21 2015 12:51:02 GMT+0800 (中国标准时间)">
<div class="book" data-level="1.6" data-chapter-title="併發穫取多個URL" data-filepath="ch1/ch1-06.md" data-basepath=".." data-revision="Thu Dec 24 2015 14:42:02 GMT+0800 (中国标准时间)">
<div class="book-summary">
@@ -1975,16 +1975,16 @@
</li>
<li class="chapter " data-level="14" data-path="errata.html">
<li class="chapter " data-level="14" data-path="CONTRIBUTORS.html">
<a href="../errata.html">
<a href="../CONTRIBUTORS.html">
<i class="fa fa-check"></i>
<b>14.</b>
勘誤
附録
</a>
@@ -2023,8 +2023,8 @@
<section class="normal" id="section-">
<h2 id="16-&#x4F75;&#x767C;&#x7A6B;&#x53D6;&#x591A;&#x500B;url">1.6 &#x4F75;&#x767C;&#x7A6B;&#x53D6;&#x591A;&#x500B;URL</h2>
<p>Go&#x8A9E;&#x8A00;&#x6700;&#x6709;&#x610F;&#x601D;&#x4F75;&#x4E14;&#x6700;&#x65B0;&#x5947;&#x7684;&#x7279;&#x6027;&#x5C31;&#x662F;&#x5176;&#x5C0D;&#x4F75;&#x767C;&#x7DE8;&#x7A0B;&#x7684;&#x652F;&#x6301;&#x4E86;&#x3002;&#x4F75;&#x767C;&#x7DE8;&#x7A0B;&#x662F;&#x4E00;&#x500B;&#x5927;&#x8A71;&#x984C;&#xFF0C;&#x5728;&#x7B2C;&#x516B;&#x7AE0;&#x548C;&#x7B2C;&#x4E5D;&#x7AE0;&#x4E2D;&#x6703;&#x8B1B;&#x5230;&#x3002;&#x9019;&#x91CC;&#x6211;&#x5011;&#x96BB;&#x6DFA;&#x5690;&#x8F12;&#x6B62;&#x5730;&#x4F86;&#x9AD4;&#x9A57;&#x4E00;&#x4E0B;Go&#x8A9E;&#x8A00;&#x91CC;&#x7684;goroutine&#x548C;channel&#x3002;</p>
<h2 id="16-&#x4F75;&#x767C;&#x7A6B;&#x53D6;&#x591A;&#x500B;url">1.6. &#x4F75;&#x767C;&#x7A6B;&#x53D6;&#x591A;&#x500B;URL</h2>
<p>Go&#x8A9E;&#x8A00;&#x6700;&#x6709;&#x610F;&#x601D;&#x4F75;&#x4E14;&#x6700;&#x65B0;&#x5947;&#x7684;&#x7279;&#x6027;&#x5C31;&#x662F;&#x5176;&#x5C0D;&#x4F75;&#x767C;&#x7DE8;&#x7A0B;&#x7684;&#x652F;&#x6301;&#x4E86;&#x3002;&#x4F75;&#x767C;&#x7DE8;&#x7A0B;&#x662F;&#x4E00;&#x500B;&#x5927;&#x8A71;&#x984C;&#xFF0C;&#x5728;&#x7B2C;&#x516B;&#x7AE0;&#x548C;&#x7B2C;&#x4E5D;&#x7AE0;&#x4E2D;&#x6703;&#x5C08;&#x9580;&#x8B1B;&#x5230;&#x3002;&#x9019;&#x91CC;&#x6211;&#x5011;&#x96BB;&#x6DFA;&#x5690;&#x8F12;&#x6B62;&#x5730;&#x4F86;&#x9AD4;&#x9A57;&#x4E00;&#x4E0B;Go&#x8A9E;&#x8A00;&#x91CC;&#x7684;goroutine&#x548C;channel&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;fetchall&#xFF0C;&#x548C;&#x4E0A;&#x9762;&#x7684;fetch&#x7A0B;&#x5E8F;&#x6240;&#x8981;&#x505A;&#x7684;&#x5DE5;&#x4F5C;&#x662F;&#x4E00;&#x81F4;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x9019;&#x500B;fetchall&#x7684;&#x7279;&#x522B;&#x4E4B;&#x8655;&#x5728;&#x65BC;&#x5B83;&#x6703;&#x540C;&#x6642;&#x53BB;&#x7A6B;&#x53D6;&#x6240;&#x6709;&#x7684;URL&#xFF0C;&#x6240;&#x4EE5;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x7684;&#x7A6B;&#x53D6;&#x6642;&#x9593;&#x4E0D;&#x6703;&#x8D85;&#x904E;&#x57F7;&#x884C;&#x6642;&#x9593;&#x6700;&#x9577;&#x7684;&#x90A3;&#x4E00;&#x500B;&#x4EFB;&#x52D9;&#xFF0C;&#x800C;&#x4E0D;&#x6703;&#x50CF;&#x524D;&#x9762;&#x7684;fetch&#x7A0B;&#x5E8F;&#x4E00;&#x6A23;&#xFF0C;&#x57F7;&#x884C;&#x6642;&#x9593;&#x662F;&#x6240;&#x6709;&#x4EFB;&#x52D9;&#x57F7;&#x884C;&#x6642;&#x9593;&#x4E4B;&#x548C;&#x3002;&#x9019;&#x6B21;&#x7684;fetchall&#x7A0B;&#x5E8F;&#x96BB;&#x6703;&#x6253;&#x5370;&#x7A6B;&#x53D6;&#x7684;&#x5167;&#x5BB9;&#x5927;&#x5C0F;&#x548C;&#x7D93;&#x904E;&#x7684;&#x6642;&#x9593;&#xFF0C;&#x4E0D;&#x6703;&#x50CF;&#x4E0A;&#x9762;&#x90A3;&#x6A23;&#x6253;&#x5370;&#x9F63;&#x7A6B;&#x53D6;&#x7684;&#x5167;&#x5BB9;&#x3002;</p>
<pre><code class="lang-go">gopl.io/ch1/fetchall
<span class="hljs-comment">// Fetchall fetches URLs in parallel and reports their times and sizes.</span>
@@ -2069,17 +2069,16 @@
}
</code></pre>
<p>&#x4E0B;&#x9762;&#x662F;&#x4E00;&#x500B;&#x4F7F;&#x7528;&#x7684;&#x4F8B;&#x5B50;</p>
<pre><code class="lang-bash">$ go build gopl.io/ch1/fetchall
<pre><code>$ go build gopl.io/ch1/fetchall
$ ./fetchall https://golang.org http://gopl.io https://godoc.org
<span class="hljs-number">0.14</span>s <span class="hljs-number">6852</span> https://godoc.org
<span class="hljs-number">0.16</span>s <span class="hljs-number">7261</span> https://golang.org
<span class="hljs-number">0.48</span>s <span class="hljs-number">2475</span> http://gopl.io
<span class="hljs-number">0.48</span>s elapsed
</code></pre>
<p>goroutine&#x662F;&#x4E00;&#x7A2E;&#x51FD;&#x6578;&#x7684;&#x4F75;&#x884C;&#x57F7;&#x884C;&#x65B9;&#x5F0F;&#xFF0C;&#x800C;channel&#x662F;&#x7528;&#x4F86;&#x5728;goroutine&#x4E4B;&#x9593;&#x9032;&#x884C;&#x53C3;&#x6578;&#x50B3;&#x905E;&#x3002;main&#x51FD;&#x6578;&#x537D;&#x904B;&#x884C;&#x5728;&#x4E00;&#x500B;goroutine&#x4E2D;&#xFF0C;&#x800C;go function&#x5247;&#x8868;&#x793A;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x65B0;&#x7684;goroutine&#xFF0C;&#x4F75;&#x8B93;&#x9019;&#x500B;&#x51FD;&#x6578;&#x53BB;&#x9019;&#x500B;&#x65B0;&#x7684;goroutine&#x91CC;&#x57F7;&#x884C;&#x3002;</p>
<p>main&#x51FD;&#x6578;&#x4E2D;&#x7528;make&#x51FD;&#x6578;&#x5275;&#x5EFA;&#x4E86;&#x4E00;&#x500B;&#x50B3;&#x905E;string&#x985E;&#x578B;&#x53C3;&#x6578;&#x7684;channel&#xFF0C;&#x5C0D;&#x6BCF;&#x4E00;&#x500B;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#xFF0C;&#x6211;&#x5011;&#x90FD;&#x7528;go&#x9019;&#x500B;&#x95DC;&#x9375;&#x5B57;&#x4F86;&#x5275;&#x5EFA;&#x4E00;&#x500B;goroutine&#xFF0C;&#x4F75;&#x4E14;&#x8B93;&#x51FD;&#x6578;&#x5728;&#x9019;&#x500B;goroutine&#x7570;&#x6B65;&#x57F7;&#x884C;http.Get&#x65B9;&#x6CD5;&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x91CC;&#x7684;io.Copy&#x6703;&#x628A;&#x97FF;&#x61C9;&#x7684;Body&#x5167;&#x5BB9;&#x62F7;&#x8C9D;&#x5230;ioutil.Discard&#x8F38;&#x9F63;&#x6D41;&#x4E2D;&#xFF0C;&#x56E0;&#x7232;&#x6211;&#x5011;&#x9700;&#x8981;&#x9019;&#x500B;&#x65B9;&#x6CD5;&#x8FD4;&#x8FF4;&#x7684;&#x5B57;&#x7BC0;&#x6578;&#xFF0C;&#x4F46;&#x662F;&#x53C8;&#x4E0D;&#x60F3;&#x8981;&#x5176;&#x5167;&#x5BB9;&#x3002;&#x6BCF;&#x7576;&#x8ACB;&#x6C42;&#x8FD4;&#x8FF4;&#x5167;&#x5BB9;&#x6642;&#xFF0C;fetch&#x51FD;&#x6578;&#x90FD;&#x6703;&#x5F80;ch&#x9019;&#x500B;channel&#x91CC;&#x5BEB;&#x5165;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x7531;main&#x51FD;&#x6578;&#x91CC;&#x7684;&#x7B2C;&#x4E8C;&#x500B;for&#x5FAA;&#x74B0;&#x4F86;&#x8655;&#x7406;&#x4F75;&#x6253;&#x5370;channel&#x91CC;&#x7684;&#x9019;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x3002;</p>
0.14s 6852 https://godoc.org
0.16s 7261 https://golang.org
0.48s 2475 http://gopl.io
0.48s elapsed
</code></pre><p>goroutine&#x662F;&#x4E00;&#x7A2E;&#x51FD;&#x6578;&#x7684;&#x4F75;&#x767C;&#x57F7;&#x884C;&#x65B9;&#x5F0F;&#xFF0C;&#x800C;channel&#x662F;&#x7528;&#x4F86;&#x5728;goroutine&#x4E4B;&#x9593;&#x9032;&#x884C;&#x53C3;&#x6578;&#x50B3;&#x905E;&#x3002;main&#x51FD;&#x6578;&#x4E5F;&#x662F;&#x904B;&#x884C;&#x5728;&#x4E00;&#x500B;goroutine&#x4E2D;&#xFF0C;&#x800C;go function&#x5247;&#x8868;&#x793A;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x65B0;&#x7684;goroutine&#xFF0C;&#x4F75;&#x5728;&#x9019;&#x500B;&#x9019;&#x500B;&#x65B0;&#x7684;goroutine&#x91CC;&#x57F7;&#x884C;&#x9019;&#x500B;&#x51FD;&#x6578;&#x3002;</p>
<p>main&#x51FD;&#x6578;&#x4E2D;&#x7528;make&#x51FD;&#x6578;&#x5275;&#x5EFA;&#x4E86;&#x4E00;&#x500B;&#x50B3;&#x905E;string&#x985E;&#x578B;&#x53C3;&#x6578;&#x7684;channel&#xFF0C;&#x5C0D;&#x6BCF;&#x4E00;&#x500B;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#xFF0C;&#x6211;&#x5011;&#x90FD;&#x7528;go&#x9019;&#x500B;&#x95DC;&#x9375;&#x5B57;&#x4F86;&#x5275;&#x5EFA;&#x4E00;&#x500B;goroutine&#xFF0C;&#x4F75;&#x4E14;&#x8B93;&#x51FD;&#x6578;&#x5728;&#x9019;&#x500B;goroutine&#x7570;&#x6B65;&#x57F7;&#x884C;http.Get&#x65B9;&#x6CD5;&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x91CC;&#x7684;io.Copy&#x6703;&#x628A;&#x97FF;&#x61C9;&#x7684;Body&#x5167;&#x5BB9;&#x62F7;&#x8C9D;&#x5230;ioutil.Discard&#x8F38;&#x9F63;&#x6D41;&#x4E2D;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x9019;&#x662F;&#x4E00;&#x500B;&#x5783;&#x573E;&#x6876;&#xFF0C;&#x53EF;&#x4EE5;&#x5411;&#x91CC;&#x9762;&#x5BEB;&#x4E00;&#x4E9B;&#x4E0D;&#x9700;&#x8981;&#x7684;&#x6578;&#x64DA;&#xFF09;&#xFF0C;&#x56E0;&#x7232;&#x6211;&#x5011;&#x9700;&#x8981;&#x9019;&#x500B;&#x65B9;&#x6CD5;&#x8FD4;&#x8FF4;&#x7684;&#x5B57;&#x7BC0;&#x6578;&#xFF0C;&#x4F46;&#x662F;&#x53C8;&#x4E0D;&#x60F3;&#x8981;&#x5176;&#x5167;&#x5BB9;&#x3002;&#x6BCF;&#x7576;&#x8ACB;&#x6C42;&#x8FD4;&#x8FF4;&#x5167;&#x5BB9;&#x6642;&#xFF0C;fetch&#x51FD;&#x6578;&#x90FD;&#x6703;&#x5F80;ch&#x9019;&#x500B;channel&#x91CC;&#x5BEB;&#x5165;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x7531;main&#x51FD;&#x6578;&#x91CC;&#x7684;&#x7B2C;&#x4E8C;&#x500B;for&#x5FAA;&#x74B0;&#x4F86;&#x8655;&#x7406;&#x4F75;&#x6253;&#x5370;channel&#x91CC;&#x7684;&#x9019;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x3002;</p>
<p>&#x7576;&#x4E00;&#x500B;goroutine&#x5690;&#x8A66;&#x5728;&#x4E00;&#x500B;channel&#x4E0A;&#x505A;send&#x6216;&#x8005;receive&#x64CD;&#x4F5C;&#x6642;&#xFF0C;&#x9019;&#x500B;goroutine&#x6703;&#x963B;&#x585E;&#x5728;&#x8ABF;&#x7528;&#x8655;&#xFF0C;&#x76F4;&#x5230;&#x53E6;&#x4E00;&#x500B;goroutine&#x5F80;&#x9019;&#x500B;channel&#x91CC;&#x5BEB;&#x5165;&#x3001;&#x6216;&#x8005;&#x63A5;&#x6536;&#x4E86;&#x503C;&#xFF0C;&#x9019;&#x6A23;&#x5169;&#x500B;goroutine&#x7E94;&#x6703;&#x7E7C;&#x7E8C;&#x57F7;&#x884C;&#x64CD;&#x4F5C;channel&#x5B8C;&#x6210;&#x4E4B;&#x5F8C;&#x7684;&#x908F;&#x8F2F;&#x3002;&#x5728;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x6BCF;&#x4E00;&#x500B;fetch&#x51FD;&#x6578;&#x5728;&#x57F7;&#x884C;&#x6642;&#x90FD;&#x6703;&#x5F80;channel&#x91CC;&#x767C;&#x9001;&#x4E00;&#x500B;&#x503C;(ch &lt;- expression)&#xFF0C;&#x4E3B;&#x51FD;&#x6578;&#x63A5;&#x6536;&#x9019;&#x4E9B;&#x503C;(&lt;-ch)&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x4E2D;&#x6211;&#x5011;&#x7528;main&#x51FD;&#x6578;&#x4F86;&#x6240;&#x6709;fetch&#x51FD;&#x6578;&#x50B3;&#x8FF4;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x5728;goroutine&#x7570;&#x6B65;&#x57F7;&#x884C;&#x6642;&#x540C;&#x6642;&#x7D50;&#x675F;&#x3002;</p>
<p>Exercise 1.10: &#x627E;&#x4E00;&#x500B;&#x6578;&#x64DA;&#x91CF;&#x6BD4;&#x8F03;&#x5927;&#x7684;&#x7DB2;&#x7AD9;&#xFF0C;&#x7528;&#x672C;&#x5C0F;&#x7BC0;&#x4E2D;&#x7684;&#x7A0B;&#x5E8F;&#x8ABF;&#x7814;&#x7DB2;&#x7AD9;&#x7684;&#x7DE9;&#x5B58;&#x7B56;&#x7565;&#xFF0C;&#x5C0D;&#x6BCF;&#x500B;URL&#x57F7;&#x884C;&#x5169;&#x904D;&#x8ACB;&#x6C42;&#xFF0C;&#x67FB;&#x770B;&#x5169;&#x6B21;&#x6642;&#x9593;&#x662F;&#x5426;&#x6709;&#x8F03;&#x5927;&#x7684;&#x5DEE;&#x522B;&#xFF0C;&#x4F75;&#x4E14;&#x6BCF;&#x6B21;&#x7A6B;&#x53D6;&#x5230;&#x7684;&#x97FF;&#x61C9;&#x5167;&#x5BB9;&#x662F;&#x5426;&#x4E00;&#x81F4;&#xFF0C;&#x8129;&#x6539;&#x672C;&#x7BC0;&#x4E2D;&#x7684;&#x7A0B;&#x5E8F;&#xFF0C;&#x5C07;&#x97FF;&#x61C9;&#x7D50;&#x679C;&#x8F38;&#x9F63;&#xFF0C;&#x4EE5;&#x4FBF;&#x65BC;&#x9032;&#x884C;&#x5C0D;&#x6BD4;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 1.10&#xFF1A;</strong> &#x627E;&#x4E00;&#x500B;&#x6578;&#x64DA;&#x91CF;&#x6BD4;&#x8F03;&#x5927;&#x7684;&#x7DB2;&#x7AD9;&#xFF0C;&#x7528;&#x672C;&#x5C0F;&#x7BC0;&#x4E2D;&#x7684;&#x7A0B;&#x5E8F;&#x8ABF;&#x7814;&#x7DB2;&#x7AD9;&#x7684;&#x7DE9;&#x5B58;&#x7B56;&#x7565;&#xFF0C;&#x5C0D;&#x6BCF;&#x500B;URL&#x57F7;&#x884C;&#x5169;&#x904D;&#x8ACB;&#x6C42;&#xFF0C;&#x67FB;&#x770B;&#x5169;&#x6B21;&#x6642;&#x9593;&#x662F;&#x5426;&#x6709;&#x8F03;&#x5927;&#x7684;&#x5DEE;&#x522B;&#xFF0C;&#x4F75;&#x4E14;&#x6BCF;&#x6B21;&#x7A6B;&#x53D6;&#x5230;&#x7684;&#x97FF;&#x61C9;&#x5167;&#x5BB9;&#x662F;&#x5426;&#x4E00;&#x81F4;&#xFF0C;&#x8129;&#x6539;&#x672C;&#x7BC0;&#x4E2D;&#x7684;&#x7A0B;&#x5E8F;&#xFF0C;&#x5C07;&#x97FF;&#x61C9;&#x7D50;&#x679C;&#x8F38;&#x9F63;&#xFF0C;&#x4EE5;&#x4FBF;&#x65BC;&#x9032;&#x884C;&#x5C0D;&#x6BD4;&#x3002;</p>
</section>

View File

@@ -48,7 +48,7 @@
<body>
<div class="book" data-level="1.7" data-chapter-title="Web服務" data-filepath="ch1/ch1-07.md" data-basepath=".." data-revision="Mon Dec 21 2015 12:51:02 GMT+0800 (中国标准时间)">
<div class="book" data-level="1.7" data-chapter-title="Web服務" data-filepath="ch1/ch1-07.md" data-basepath=".." data-revision="Thu Dec 24 2015 14:42:02 GMT+0800 (中国标准时间)">
<div class="book-summary">
@@ -1975,16 +1975,16 @@
</li>
<li class="chapter " data-level="14" data-path="errata.html">
<li class="chapter " data-level="14" data-path="CONTRIBUTORS.html">
<a href="../errata.html">
<a href="../CONTRIBUTORS.html">
<i class="fa fa-check"></i>
<b>14.</b>
勘誤
附録
</a>
@@ -2024,7 +2024,7 @@
<section class="normal" id="section-">
<h2 id="17-web&#x670D;&#x52D9;">1.7. Web&#x670D;&#x52D9;</h2>
<p>Go&#x7684;&#x5167;&#x7F6E;&#x5EAB;&#x8B93;&#x6211;&#x5011;&#x5BEB;&#x4E00;&#x500B;&#x50CF;fetch&#x9019;&#x6A23;&#x4F8B;&#x5B50;&#x7684;web&#x670D;&#x52D9;&#x5668;&#x8B8A;&#x5F97;&#x7570;&#x5E38;&#x5730;&#x7C21;&#x55AE;&#x3002;&#x5728;&#x672C;&#x7BC0;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x6703;&#x5C55;&#x793A;&#x4E00;&#x500B;&#x5FAE;&#x578B;&#x670D;&#x52D9;&#x5668;&#xFF0C;&#x9019;&#x500B;&#x670D;&#x52D9;&#x7684;&#x529F;&#x80FD;&#x662F;&#x8FD4;&#x8FF4;&#x7576;&#x524D;&#x7528;&#x6236;&#x6B63;&#x5728;&#x8A2A;&#x554F;&#x7684;URL&#x3002;&#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x6BD4;&#x5982;&#x7528;&#x6236;&#x8A2A;&#x554F;&#x7684;&#x662F;<a href="http://localhost:8000/hello&#xFF0C;&#x90A3;&#x9EBD;&#x97FF;&#x61C9;&#x662F;URL.Path" target="_blank">http://localhost:8000/hello&#xFF0C;&#x90A3;&#x9EBD;&#x97FF;&#x61C9;&#x662F;URL.Path</a> = &quot;hello&quot;&#x3002;</p>
<p>Go&#x8A9E;&#x8A00;&#x7684;&#x5167;&#x7F6E;&#x5EAB;&#x8B93;&#x6211;&#x5011;&#x5BEB;&#x4E00;&#x500B;&#x50CF;fetch&#x9019;&#x6A23;&#x4F8B;&#x5B50;&#x7684;web&#x670D;&#x52D9;&#x5668;&#x8B8A;&#x5F97;&#x7570;&#x5E38;&#x5730;&#x7C21;&#x55AE;&#x3002;&#x5728;&#x672C;&#x7BC0;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x6703;&#x5C55;&#x793A;&#x4E00;&#x500B;&#x5FAE;&#x578B;&#x670D;&#x52D9;&#x5668;&#xFF0C;&#x9019;&#x500B;&#x670D;&#x52D9;&#x7684;&#x529F;&#x80FD;&#x662F;&#x8FD4;&#x8FF4;&#x7576;&#x524D;&#x7528;&#x6236;&#x6B63;&#x5728;&#x8A2A;&#x554F;&#x7684;URL&#x3002;&#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x6BD4;&#x5982;&#x7528;&#x6236;&#x8A2A;&#x554F;&#x7684;&#x662F; <a href="http://localhost:8000/hello" target="_blank">http://localhost:8000/hello</a> &#xFF0C;&#x90A3;&#x9EBD;&#x97FF;&#x61C9;&#x662F;URL.Path = &quot;hello&quot;&#x3002;</p>
<pre><code class="lang-go">gopl.io/ch1/server1
<span class="hljs-comment">// Server1 is a minimal &quot;echo&quot; server.</span>
<span class="hljs-keyword">package</span> main
@@ -2042,10 +2042,10 @@
<span class="hljs-comment">// handler echoes the Path component of the request URL r.</span>
<span class="hljs-keyword">func</span> handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, <span class="hljs-string">&quot;URL.Path = %q\n&quot;</span>, r.URL.Path)
fmt.Fprintf(w, <span class="hljs-string">&quot;URL.Path = %q\n&quot;</span>, r.URL.Path)
}
</code></pre>
<p>&#x6211;&#x5011;&#x96BB;&#x7528;&#x4E86;&#x516B;&#x4E5D;&#x884C;&#x5C31;&#x5BE6;&#x73FE;&#x4E86;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#xFF0C;&#x9019;&#x90FD;&#x662F;&#x591A;&#x8667;&#x4E86;&#x6A19;&#x6E96;&#x5EAB;&#x91CC;&#x7684;&#x65B9;&#x6CD5;&#x5DF2;&#x7D93;&#x5E6B;&#x6211;&#x5011;&#x8655;&#x7406;&#x4E86;&#x5927;&#x591A;&#x6578;&#x7684;&#x5DE5;&#x4F5C;&#x3002;main&#x51FD;&#x6578;&#x6703;&#x5C07;&#x6240;&#x6709;&#x767C;&#x9001;&#x5230;/&#x76EE;&#x9332;&#x4E0B;&#x7684;&#x8ACB;&#x6C42;&#x548C;handler&#x51FD;&#x6578;&#x95DC;&#x806F;&#x8D77;&#x4F86;&#xFF0C;/&#x958B;&#x982D;&#x7684;&#x8ACB;&#x6C42;&#x5176;&#x5BE6;&#x5C31;&#x662F;&#x6240;&#x6709;&#x767C;&#x9001;&#x5230;&#x7576;&#x524D;&#x7AD9;&#x9EDE;&#x4E0A;&#x7684;&#x8ACB;&#x6C42;&#xFF0C;&#x6211;&#x5011;&#x7684;&#x670D;&#x52D9;&#x8DD1;&#x5728;&#x4E86;8000&#x7AEF;&#x53E3;&#x4E0A;&#x3002;&#x767C;&#x9001;&#x5230;&#x9019;&#x500B;&#x670D;&#x52D9;&#x7684;&#x201C;&#x8ACB;&#x6C42;&#x201D;&#x662F;&#x4E00;&#x500B;http.Request&#x985E;&#x578B;&#x7684;&#x5C0D;&#x8C61;&#xFF0C;&#x9019;&#x500B;&#x5C0D;&#x8C61;&#x4E2D;&#x5305;&#x542B;&#x4E86;&#x8ACB;&#x6C42;&#x4E2D;&#x7684;&#x4E00;&#x7E6B;&#x5217;&#x76F8;&#x95DC;&#x5B57;&#x6BB5;&#xFF0C;&#x5176;&#x4E2D;&#x5C31;&#x5305;&#x62EC;&#x6211;&#x5011;&#x9700;&#x8981;&#x7684;URL&#x3002;&#x7576;&#x8ACB;&#x6C42;&#x5230;&#x9054;&#x670D;&#x52D9;&#x5668;&#x6642;&#xFF0C;&#x9019;&#x500B;&#x8ACB;&#x6C42;&#x6703;&#x88AB;&#x50B3;&#x7D66;handler&#x51FD;&#x6578;&#x4F86;&#x8655;&#x7406;&#xFF0C;&#x9019;&#x500B;&#x51FD;&#x6578;&#x6703;&#x5C07;/hello&#x9019;&#x500B;&#x8DEF;&#x5F91;&#x5F9E;&#x8ACB;&#x6C42;&#x7684;URL&#x4E2D;&#x89E3;&#x6790;&#x9F63;&#x4F86;&#xFF0C;&#x7136;&#x5F8C;&#x628A;&#x5176;&#x767C;&#x9001;&#x5230;&#x97FF;&#x61C9;&#x4E2D;&#xFF0C;&#x9019;&#x91CC;&#x6211;&#x5011;&#x7528;&#x7684;&#x662F;&#x6A19;&#x6E96;&#x8F38;&#x9F63;&#x6D41;&#x7684;fmt.Fprintf&#x3002;Web&#x670D;&#x52D9;&#x6703;&#x5728;&#x7B2C;7.7&#x7BC0;&#x4E2D;&#x8A73;&#x7D30;&#x95E1;&#x8FF0;&#x3002;</p>
<p>&#x6211;&#x5011;&#x96BB;&#x7528;&#x4E86;&#x516B;&#x4E5D;&#x884C;&#x4EE3;&#x78BC;&#x5C31;&#x5BE6;&#x73FE;&#x4E86;&#x4E00;&#x500B;&#x500B;Web&#x670D;&#x52D9;&#x7A0B;&#x5E8F;&#xFF0C;&#x9019;&#x90FD;&#x662F;&#x591A;&#x8667;&#x4E86;&#x6A19;&#x6E96;&#x5EAB;&#x91CC;&#x7684;&#x65B9;&#x6CD5;&#x5DF2;&#x7D93;&#x5E6B;&#x6211;&#x5011;&#x8655;&#x7406;&#x4E86;&#x5927;&#x91CF;&#x7684;&#x5DE5;&#x4F5C;&#x3002;main&#x51FD;&#x6578;&#x6703;&#x5C07;&#x6240;&#x6709;&#x767C;&#x9001;&#x5230;/&#x8DEF;&#x5F91;&#x4E0B;&#x7684;&#x8ACB;&#x6C42;&#x548C;handler&#x51FD;&#x6578;&#x95DC;&#x806F;&#x8D77;&#x4F86;&#xFF0C;/&#x958B;&#x982D;&#x7684;&#x8ACB;&#x6C42;&#x5176;&#x5BE6;&#x5C31;&#x662F;&#x6240;&#x6709;&#x767C;&#x9001;&#x5230;&#x7576;&#x524D;&#x7AD9;&#x9EDE;&#x4E0A;&#x7684;&#x8ACB;&#x6C42;&#xFF0C;&#x6211;&#x5011;&#x7684;&#x670D;&#x52D9;&#x8DD1;&#x5728;&#x4E86;8000&#x7AEF;&#x53E3;&#x4E0A;&#x3002;&#x767C;&#x9001;&#x5230;&#x9019;&#x500B;&#x670D;&#x52D9;&#x7684;&#x201C;&#x8ACB;&#x6C42;&#x201D;&#x662F;&#x4E00;&#x500B;http.Request&#x985E;&#x578B;&#x7684;&#x5C0D;&#x8C61;&#xFF0C;&#x9019;&#x500B;&#x5C0D;&#x8C61;&#x4E2D;&#x5305;&#x542B;&#x4E86;&#x8ACB;&#x6C42;&#x4E2D;&#x7684;&#x4E00;&#x7E6B;&#x5217;&#x76F8;&#x95DC;&#x5B57;&#x6BB5;&#xFF0C;&#x5176;&#x4E2D;&#x5C31;&#x5305;&#x62EC;&#x6211;&#x5011;&#x9700;&#x8981;&#x7684;URL&#x3002;&#x7576;&#x8ACB;&#x6C42;&#x5230;&#x9054;&#x670D;&#x52D9;&#x5668;&#x6642;&#xFF0C;&#x9019;&#x500B;&#x8ACB;&#x6C42;&#x6703;&#x88AB;&#x50B3;&#x7D66;handler&#x51FD;&#x6578;&#x4F86;&#x8655;&#x7406;&#xFF0C;&#x9019;&#x500B;&#x51FD;&#x6578;&#x6703;&#x5C07;/hello&#x9019;&#x500B;&#x8DEF;&#x5F91;&#x5F9E;&#x8ACB;&#x6C42;&#x7684;URL&#x4E2D;&#x89E3;&#x6790;&#x9F63;&#x4F86;&#xFF0C;&#x7136;&#x5F8C;&#x628A;&#x5176;&#x767C;&#x9001;&#x5230;&#x97FF;&#x61C9;&#x4E2D;&#xFF0C;&#x9019;&#x91CC;&#x6211;&#x5011;&#x7528;&#x7684;&#x662F;&#x6A19;&#x6E96;&#x8F38;&#x9F63;&#x6D41;&#x7684;fmt.Fprintf&#x3002;Web&#x670D;&#x52D9;&#x6703;&#x5728;&#x7B2C;7.7&#x7BC0;&#x4E2D;&#x8A73;&#x7D30;&#x95E1;&#x8FF0;&#x3002;</p>
<p>&#x8B93;&#x6211;&#x5011;&#x5728;&#x5F8C;&#x98B1;&#x904B;&#x884C;&#x9019;&#x500B;&#x670D;&#x52D9;&#x7A0B;&#x5E8F;&#x3002;&#x5982;&#x679C;&#x4F60;&#x7684;&#x64CD;&#x4F5C;&#x7E6B;&#x7D71;&#x662F;Mac OS X&#x6216;&#x8005;Linux&#xFF0C;&#x90A3;&#x9EBD;&#x5728;&#x904B;&#x884C;&#x547D;&#x4EE4;&#x7684;&#x672B;&#x5C3E;&#x52A0;&#x4E0A;&#x4E00;&#x500B;&amp;&#x7B26;&#x865F;&#xFF0C;&#x537D;&#x53EF;&#x8B93;&#x7A0B;&#x5E8F;&#x7C21;&#x55AE;&#x5730;&#x8DD1;&#x5728;&#x5F8C;&#x98B1;&#xFF0C;&#x800C;&#x5728;windows&#x4E0B;&#xFF0C;&#x4F60;&#x9700;&#x8981;&#x5728;&#x53E6;&#x5916;&#x4E00;&#x500B;&#x547D;&#x4EE4;&#x884C;&#x7A97;&#x53E3;&#x53BB;&#x904B;&#x884C;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x4E86;&#x3002;</p>
<pre><code>$ go run src/gopl.io/ch1/server1/main.go &amp;
</code></pre><p>&#x73FE;&#x5728;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x547D;&#x4EE4;&#x884C;&#x4F86;&#x767C;&#x9001;&#x5BA2;&#x6236;&#x7AEF;&#x8ACB;&#x6C42;&#x4E86;&#xFF1A;</p>
@@ -2054,8 +2054,8 @@ $ ./fetch http://localhost:8000
URL.Path = &quot;/&quot;
$ ./fetch http://localhost:8000/help
URL.Path = &quot;/help&quot;
</code></pre><p>&#x53E6;&#x5916;&#x6211;&#x5011;&#x9084;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x5728;&#x700F;&#x89BD;&#x5668;&#x91CC;&#x8A2A;&#x554F;&#x9019;&#x500B;URL&#xFF0C;&#x7136;&#x5F8C;&#x5F97;&#x5230;&#x8FD4;&#x8FF4;&#x7D50;&#x679C;&#xFF0C;&#x5982;&#x5716;1.2&#xFF1A;
<img src="../images/ch1-02.png" alt=""></p>
</code></pre><p>&#x53E6;&#x5916;&#x6211;&#x5011;&#x9084;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x5728;&#x700F;&#x89BD;&#x5668;&#x91CC;&#x8A2A;&#x554F;&#x9019;&#x500B;URL&#xFF0C;&#x7136;&#x5F8C;&#x5F97;&#x5230;&#x8FD4;&#x8FF4;&#x7D50;&#x679C;&#xFF0C;&#x5982;&#x5716;1.2&#xFF1A;</p>
<p><img src="../images/ch1-02.png" alt=""></p>
<p>&#x5728;&#x9019;&#x500B;&#x670D;&#x52D9;&#x7684;&#x57FA;&#x790E;&#x4E0A;&#x758A;&#x52A0;&#x7279;&#x6027;&#x662F;&#x5F88;&#x5BB9;&#x6613;&#x7684;&#x3002;&#x4E00;&#x7A2E;&#x6BD4;&#x8F03;&#x5BE6;&#x7528;&#x7684;&#x8129;&#x6539;&#x662F;&#x7232;&#x8A2A;&#x554F;&#x7684;url&#x6DFB;&#x52A0;&#x67D0;&#x7A2E;&#x72C0;&#x614B;&#x3002;&#x6BD4;&#x5982;&#xFF0C;&#x4E0B;&#x9762;&#x9019;&#x500B;&#x7248;&#x672C;&#x8F38;&#x9F63;&#x4E86;&#x540C;&#x6A23;&#x7684;&#x5167;&#x5BB9;&#xFF0C;&#x4F46;&#x662F;&#x6703;&#x5C0D;&#x8ACB;&#x6C42;&#x7684;&#x6B21;&#x6578;&#x9032;&#x884C;&#x8A08;&#x7B97;&#xFF1B;&#x5C0D;URL&#x7684;&#x8ACB;&#x6C42;&#x7D50;&#x679C;&#x6703;&#x5305;&#x542B;&#x5404;&#x7A2E;URL&#x88AB;&#x8A2A;&#x554F;&#x7684;&#x7E3D;&#x6B21;&#x6578;&#xFF0C;&#x76F4;&#x63A5;&#x5C0D;/count&#x9019;&#x500B;URL&#x7684;&#x8A2A;&#x554F;&#x8981;&#x9664;&#x5916;&#x3002;</p>
<pre><code class="lang-go">gopl.io/ch1/server2
<span class="hljs-comment">// Server2 is a minimal &quot;echo&quot; and counter server.</span>
@@ -2092,8 +2092,8 @@ URL.Path = &quot;/help&quot;
mu.Unlock()
}
</code></pre>
<p>&#x9019;&#x500B;&#x670D;&#x52D9;&#x5668;&#x6709;&#x5169;&#x500B;&#x8ACB;&#x6C42;&#x8655;&#x7406;&#x51FD;&#x6578;&#xFF0C;&#x8ACB;&#x6C42;&#x7684;url&#x6703;&#x6C7A;&#x5B9A;&#x5177;&#x9AD4;&#x8ABF;&#x7528;&#x54EA;&#x4E00;&#x500B;&#xFF1A;&#x5C0D;/count&#x9019;&#x500B;url&#x7684;&#x8ACB;&#x6C42;&#x6703;&#x8ABF;&#x7528;&#x5230;count&#x9019;&#x500B;&#x51FD;&#x6578;&#xFF0C;&#x5176;&#x5B83;&#x6240;&#x6709;&#x7684;url&#x90FD;&#x6703;&#x8ABF;&#x7528;&#x9ED8;&#x8A8D;&#x7684;&#x8655;&#x7406;&#x51FD;&#x6578;&#x3002;&#x5982;&#x679C;&#x4F60;&#x7684;&#x8ACB;&#x6C42;pattern&#x662F;&#x4EE5;/&#x7D50;&#x5C3E;&#xFF0C;&#x90A3;&#x9EBD;&#x6240;&#x6709;&#x4EE5;&#x8A72;url&#x7232;&#x524D;&#x7DB4;&#x7684;url&#x90FD;&#x6703;&#x88AB;&#x9019;&#x689D;&#x898F;&#x5247;&#x5339;&#x914D;&#x3002;&#x5728;&#x9019;&#x4E9B;&#x4EE3;&#x78BC;&#x7684;&#x80CC;&#x5F8C;&#xFF0C;&#x670D;&#x52D9;&#x5668;&#x6BCF;&#x4E00;&#x6B21;&#x63A5;&#x6536;&#x8ACB;&#x6C42;&#x8655;&#x7406;&#x6642;&#x90FD;&#x6703;&#x53E6;&#x8D77;&#x4E00;&#x500B;goroutine&#xFF0C;&#x9019;&#x6A23;&#x670D;&#x52D9;&#x5668;&#x5C31;&#x53EF;&#x4EE5;&#x540C;&#x4E00;&#x6642;&#x9593;&#x8655;&#x7406;&#x591A;&#x6578;&#x8ACB;&#x6C42;&#x3002;&#x7136;&#x800C;&#x5728;&#x4F75;&#x767C;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x5047;&#x5982;&#x771E;&#x7684;&#x6709;&#x5169;&#x500B;&#x8ACB;&#x6C42;&#x540C;&#x4E00;&#x6642;&#x523B;&#x53BB;&#x66F4;&#x65B0;count&#xFF0C;&#x90A3;&#x9EBD;&#x9019;&#x500B;&#x503C;&#x53EF;&#x80FD;&#x4F75;&#x4E0D;&#x6703;&#x88AB;&#x6B63;&#x78BA;&#x5730;&#x589E;&#x52A0;&#xFF1B;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x53EF;&#x80FD;&#x6703;&#x88AB;&#x5F15;&#x767C;&#x4E00;&#x500B;&#x56B4;&#x91CD;&#x7684;bug&#xFF1A;&#x7AF6;&#x614B;&#x689D;&#x4EF6;(&#x53C3;&#x898B;9.1)&#x3002;&#x7232;&#x4E86;&#x907F;&#x514D;&#x9019;&#x500B;&#x554F;&#x984C;&#xFF0C;&#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x4FDD;&#x8B49;&#x6BCF;&#x6B21;&#x8129;&#x6539;&#x8B8A;&#x91CF;&#x7684;&#x6700;&#x591A;&#x96BB;&#x80FD;&#x6709;&#x4E00;&#x500B;goroutine&#xFF0C;&#x9019;&#x4E5F;&#x5C31;&#x662F;&#x4EE3;&#x78BC;&#x91CC;&#x7684;mu.Lock()&#x548C;mu.Unlock()&#x8ABF;&#x7528;&#x5C07;&#x8129;&#x6539;count&#x7684;&#x6240;&#x6709;&#x884C;&#x7232;&#x5305;&#x5728;&#x4E2D;&#x9593;&#x7684;&#x76EE;&#x7684;&#x3002;&#x7B2C;&#x4E5D;&#x7AE0;&#x4E2D;&#x6211;&#x5011;&#x6703;&#x9032;&#x4E00;&#x6B65;&#x8B1B;&#x89E3;&#x5171;&#x4EAB;&#x8B8A;&#x91CF;&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x662F;&#x4E00;&#x500B;&#x66F4;&#x7232;&#x8C50;&#x5BCC;&#x7684;&#x4F8B;&#x5B50;&#xFF0C;handler&#x51FD;&#x6578;&#x6703;&#x628A;&#x8ACB;&#x6C42;&#x7684;http&#x982D;&#x548C;&#x8ACB;&#x6C42;&#x7684;form&#x6578;&#x64DA;&#x90FD;&#x6253;&#x5370;&#x9F63;&#x4F86;&#xFF0C;&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x8B93;&#x6AA2;&#x67FB;&#x548C;&#x8ABF;&#x8A66;&#x9019;&#x500B;&#x670D;&#x52D9;&#x66F4;&#x7232;&#x65B9;&#x4FBF;</p>
<p>&#x9019;&#x500B;&#x670D;&#x52D9;&#x5668;&#x6709;&#x5169;&#x500B;&#x8ACB;&#x6C42;&#x8655;&#x7406;&#x51FD;&#x6578;&#xFF0C;&#x8ACB;&#x6C42;&#x7684;url&#x6703;&#x6C7A;&#x5B9A;&#x5177;&#x9AD4;&#x8ABF;&#x7528;&#x54EA;&#x4E00;&#x500B;&#xFF1A;&#x5C0D;/count&#x9019;&#x500B;url&#x7684;&#x8ACB;&#x6C42;&#x6703;&#x8ABF;&#x7528;&#x5230;count&#x9019;&#x500B;&#x51FD;&#x6578;&#xFF0C;&#x5176;&#x5B83;&#x6240;&#x6709;&#x7684;url&#x90FD;&#x6703;&#x8ABF;&#x7528;&#x9ED8;&#x8A8D;&#x7684;&#x8655;&#x7406;&#x51FD;&#x6578;&#x3002;&#x5982;&#x679C;&#x4F60;&#x7684;&#x8ACB;&#x6C42;pattern&#x662F;&#x4EE5;/&#x7D50;&#x5C3E;&#xFF0C;&#x90A3;&#x9EBD;&#x6240;&#x6709;&#x4EE5;&#x8A72;url&#x7232;&#x524D;&#x7DB4;&#x7684;url&#x90FD;&#x6703;&#x88AB;&#x9019;&#x689D;&#x898F;&#x5247;&#x5339;&#x914D;&#x3002;&#x5728;&#x9019;&#x4E9B;&#x4EE3;&#x78BC;&#x7684;&#x80CC;&#x5F8C;&#xFF0C;&#x670D;&#x52D9;&#x5668;&#x6BCF;&#x4E00;&#x6B21;&#x63A5;&#x6536;&#x8ACB;&#x6C42;&#x8655;&#x7406;&#x6642;&#x90FD;&#x6703;&#x53E6;&#x8D77;&#x4E00;&#x500B;goroutine&#xFF0C;&#x9019;&#x6A23;&#x670D;&#x52D9;&#x5668;&#x5C31;&#x53EF;&#x4EE5;&#x540C;&#x4E00;&#x6642;&#x9593;&#x8655;&#x7406;&#x591A;&#x6578;&#x8ACB;&#x6C42;&#x3002;&#x7136;&#x800C;&#x5728;&#x4F75;&#x767C;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x5047;&#x5982;&#x771E;&#x7684;&#x6709;&#x5169;&#x500B;&#x8ACB;&#x6C42;&#x540C;&#x4E00;&#x6642;&#x523B;&#x53BB;&#x66F4;&#x65B0;count&#xFF0C;&#x90A3;&#x9EBD;&#x9019;&#x500B;&#x503C;&#x53EF;&#x80FD;&#x4F75;&#x4E0D;&#x6703;&#x88AB;&#x6B63;&#x78BA;&#x5730;&#x589E;&#x52A0;&#xFF1B;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x53EF;&#x80FD;&#x6703;&#x88AB;&#x5F15;&#x767C;&#x4E00;&#x500B;&#x56B4;&#x91CD;&#x7684;bug&#xFF1A;&#x7AF6;&#x614B;&#x689D;&#x4EF6;&#xFF08;&#x53C3;&#x898B;9.1&#xFF09;&#x3002;&#x7232;&#x4E86;&#x907F;&#x514D;&#x9019;&#x500B;&#x554F;&#x984C;&#xFF0C;&#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x4FDD;&#x8B49;&#x6BCF;&#x6B21;&#x8129;&#x6539;&#x8B8A;&#x91CF;&#x7684;&#x6700;&#x591A;&#x96BB;&#x80FD;&#x6709;&#x4E00;&#x500B;goroutine&#xFF0C;&#x9019;&#x4E5F;&#x5C31;&#x662F;&#x4EE3;&#x78BC;&#x91CC;&#x7684;mu.Lock()&#x548C;mu.Unlock()&#x8ABF;&#x7528;&#x5C07;&#x8129;&#x6539;count&#x7684;&#x6240;&#x6709;&#x884C;&#x7232;&#x5305;&#x5728;&#x4E2D;&#x9593;&#x7684;&#x76EE;&#x7684;&#x3002;&#x7B2C;&#x4E5D;&#x7AE0;&#x4E2D;&#x6211;&#x5011;&#x6703;&#x9032;&#x4E00;&#x6B65;&#x8B1B;&#x89E3;&#x5171;&#x4EAB;&#x8B8A;&#x91CF;&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x662F;&#x4E00;&#x500B;&#x66F4;&#x7232;&#x8C50;&#x5BCC;&#x7684;&#x4F8B;&#x5B50;&#xFF0C;handler&#x51FD;&#x6578;&#x6703;&#x628A;&#x8ACB;&#x6C42;&#x7684;http&#x982D;&#x548C;&#x8ACB;&#x6C42;&#x7684;form&#x6578;&#x64DA;&#x90FD;&#x6253;&#x5370;&#x9F63;&#x4F86;&#xFF0C;&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x8B93;&#x6AA2;&#x67FB;&#x548C;&#x8ABF;&#x8A66;&#x9019;&#x500B;&#x670D;&#x52D9;&#x66F4;&#x7232;&#x65B9;&#x4FBF;&#xFF1A;</p>
<pre><code class="lang-go">gopl.io/ch1/server3
<span class="hljs-comment">// handler echoes the HTTP request.</span>
<span class="hljs-keyword">func</span> handler(w http.ResponseWriter, r *http.Request) {
@@ -2107,7 +2107,7 @@ URL.Path = &quot;/help&quot;
log.Print(err)
}
<span class="hljs-keyword">for</span> k, v := <span class="hljs-keyword">range</span> r.Form {
fmt.Fprintf(w, <span class="hljs-string">&quot;Form[%q] = %q\n&quot;</span>, k, v)
fmt.Fprintf(w, <span class="hljs-string">&quot;Form[%q] = %q\n&quot;</span>, k, v)
}
}
</code></pre>
@@ -2118,7 +2118,7 @@ Header[&quot;Connection&quot;] = [&quot;keep-alive&quot;]
Header[&quot;Accept&quot;] = [&quot;text/html,application/xhtml+xml,application/xml;...&quot;] Header[&quot;User-Agent&quot;] = [&quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5)...&quot;] Host = &quot;localhost:8000&quot;
RemoteAddr = &quot;127.0.0.1:59911&quot;
Form[&quot;q&quot;] = [&quot;query&quot;]
</code></pre><p>&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x9019;&#x91CC;&#x7684;ParseForm&#x88AB;&#x5D4C;&#x5957;&#x5728;&#x4E86;if&#x8A9E;&#x53E5;&#x4E2D;&#x3002;Go&#x8A9E;&#x8A00;&#x5141;&#x8A31;&#x9019;&#x6A23;&#x7684;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x8A9E;&#x53E5;&#x7D50;&#x679C;&#x4F5C;&#x7232;&#x5FAA;&#x74B0;&#x7684;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x9F63;&#x73FE;&#x5728;if&#x8A9E;&#x53E5;&#x7684;&#x6700;&#x524D;&#x9762;&#xFF0C;&#x9019;&#x4E00;&#x9EDE;&#x5C0D;&#x932F;&#x8AA4;&#x8655;&#x7406;&#x5F88;&#x6709;&#x7528;&#x8655;&#x3002;&#x6211;&#x5011;&#x9084;&#x53EF;&#x4EE5;&#x50CF;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#x5BEB;(&#x7576;&#x7136;&#x770B;&#x8D77;&#x4F86;&#x5C31;&#x9577;&#x4E86;&#x4E00;&#x4E9B;)&#xFF1A;</p>
</code></pre><p>&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x9019;&#x91CC;&#x7684;ParseForm&#x88AB;&#x5D4C;&#x5957;&#x5728;&#x4E86;if&#x8A9E;&#x53E5;&#x4E2D;&#x3002;Go&#x8A9E;&#x8A00;&#x5141;&#x8A31;&#x9019;&#x6A23;&#x7684;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x8A9E;&#x53E5;&#x7D50;&#x679C;&#x4F5C;&#x7232;&#x5FAA;&#x74B0;&#x7684;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x9F63;&#x73FE;&#x5728;if&#x8A9E;&#x53E5;&#x7684;&#x6700;&#x524D;&#x9762;&#xFF0C;&#x9019;&#x4E00;&#x9EDE;&#x5C0D;&#x932F;&#x8AA4;&#x8655;&#x7406;&#x5F88;&#x6709;&#x7528;&#x8655;&#x3002;&#x6211;&#x5011;&#x9084;&#x53EF;&#x4EE5;&#x50CF;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#x5BEB;&#xFF08;&#x7576;&#x7136;&#x770B;&#x8D77;&#x4F86;&#x5C31;&#x9577;&#x4E86;&#x4E00;&#x4E9B;&#xFF09;&#xFF1A;</p>
<pre><code class="lang-go">err := r.ParseForm()
<span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> {
log.Print(err)
@@ -2127,19 +2127,21 @@ Form[&quot;q&quot;] = [&quot;query&quot;]
<p>&#x7528;if&#x548C;ParseForm&#x7D50;&#x5408;&#x53EF;&#x4EE5;&#x8B93;&#x4EE3;&#x78BC;&#x66F4;&#x52A0;&#x7C21;&#x55AE;&#xFF0C;&#x4F75;&#x4E14;&#x53EF;&#x4EE5;&#x9650;&#x88FD;err&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#xFF0C;&#x9019;&#x9EBD;&#x505A;&#x662F;&#x5F88;&#x4E0D;&#x932F;&#x7684;&#x3002;&#x6211;&#x5011;&#x6703;&#x5728;2.7&#x7BC0;&#x4E2D;&#x8B1B;&#x89E3;&#x4F5C;&#x7528;&#x57DF;&#x3002;</p>
<p>&#x5728;&#x9019;&#x4E9B;&#x7A0B;&#x5E8F;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x770B;&#x5230;&#x4E86;&#x5F88;&#x591A;&#x4E0D;&#x540C;&#x7684;&#x985E;&#x578B;&#x88AB;&#x8F38;&#x9F63;&#x5230;&#x6A19;&#x6E96;&#x8F38;&#x9F63;&#x6D41;&#x4E2D;&#x3002;&#x6BD4;&#x5982;&#x524D;&#x9762;&#x7684;fetch&#x7A0B;&#x5E8F;&#xFF0C;&#x5C31;&#x628A;HTTP&#x7684;&#x97FF;&#x61C9;&#x6578;&#x64DA;&#x62F7;&#x8C9D;&#x5230;&#x4E86;os.Stdout&#xFF0C;&#x6216;&#x8005;&#x5728;lissajous&#x7A0B;&#x5E8F;&#x91CC;&#x6211;&#x5011;&#x8F38;&#x9F63;&#x7684;&#x662F;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x3002;fetchall&#x7A0B;&#x5E8F;&#x5247;&#x5B8C;&#x5168;&#x5FFD;&#x7565;&#x5230;&#x4E86;HTTP&#x7684;&#x97FF;&#x61C9;&#x9AD4;&#xFF0C;&#x96BB;&#x662F;&#x8A08;&#x7B97;&#x4E86;&#x4E00;&#x4E0B;&#x97FF;&#x61C9;&#x9AD4;&#x7684;&#x5927;&#x5C0F;&#xFF0C;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x4E2D;&#x628A;&#x97FF;&#x61C9;&#x9AD4;&#x62F7;&#x8C9D;&#x5230;&#x4E86;ioutil.Discard&#x3002;&#x5728;&#x672C;&#x7BC0;&#x7684;web&#x670D;&#x52D9;&#x5668;&#x7A0B;&#x5E8F;&#x4E2D;&#x5247;&#x662F;&#x7528;fmt.Fprintf&#x76F4;&#x63A5;&#x5BEB;&#x5230;&#x4E86;http.ResponseWriter&#x4E2D;&#x3002;</p>
<p>&#x76E1;&#x7BA1;&#x9019;&#x4E09;&#x7A2E;&#x5177;&#x9AD4;&#x7684;&#x5BE6;&#x73FE;&#x6D41;&#x7A0B;&#x4F75;&#x4E0D;&#x592A;&#x4E00;&#x6A23;&#xFF0C;&#x4ED6;&#x5011;&#x90FD;&#x5BE6;&#x73FE;&#x4E00;&#x500B;&#x5171;&#x540C;&#x7684;&#x63A5;&#x53E3;&#xFF0C;&#x537D;&#x7576;&#x5B83;&#x5011;&#x88AB;&#x8ABF;&#x7528;&#x9700;&#x8981;&#x4E00;&#x500B;&#x6A19;&#x6E96;&#x6D41;&#x8F38;&#x9F63;&#x6642;&#x90FD;&#x53EF;&#x4EE5;&#x6EFF;&#x8DB3;&#x3002;&#x9019;&#x500B;&#x63A5;&#x53E3;&#x53EB;&#x4F5C;io.Writer&#xFF0C;&#x5728;7.1&#x7BC0;&#x4E2D;&#x6703;&#x8A73;&#x7D30;&#x8A0E;&#x8AD6;&#x3002;</p>
<p>Go&#x7684;&#x63A5;&#x53E3;&#x6A5F;&#x88FD;&#x6703;&#x5728;&#x7B2C;7&#x7AE0;&#x4E2D;&#x8B1B;&#x89E3;&#xFF0C;&#x7232;&#x4E86;&#x5728;&#x9019;&#x91CC;&#x7C21;&#x55AE;&#x8AAC;&#x660E;&#x63A5;&#x53E3;&#x80FD;&#x505A;&#x4EC0;&#x9EBD;&#xFF0C;&#x8B93;&#x6211;&#x5011;&#x7C21;&#x55AE;&#x5730;&#x5C07;&#x9019;&#x91CC;&#x7684;web&#x670D;&#x52D9;&#x5668;&#x548C;&#x4E4B;&#x524D;&#x5BEB;&#x7684;lissajous&#x51FD;&#x6578;&#x7D50;&#x5408;&#x8D77;&#x4F86;&#xFF0C;&#x9019;&#x6A23;GIF&#x52D5;&#x7575;&#x53EF;&#x4EE5;&#x88AB;&#x5BEB;&#x5230;HTTP&#x7684;&#x5BA2;&#x6236;&#x7AEF;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x4E4B;&#x524D;&#x7684;&#x6A19;&#x6E96;&#x8F38;&#x9F63;&#x6D41;&#x3002;&#x96BB;&#x8981;&#x5728;web&#x670D;&#x52D9;&#x5668;&#x7684;&#x4EE3;&#x78BC;&#x91CC;&#x52A0;&#x5165;&#x4E0B;&#x9762;&#x9019;&#x5E7E;&#x884C;&#x3002;</p>
<pre><code>handler := func(w http.ResponseWriter, r *http.Request) {
lissajous(w)
<p>Go&#x8A9E;&#x8A00;&#x7684;&#x63A5;&#x53E3;&#x6A5F;&#x88FD;&#x6703;&#x5728;&#x7B2C;7&#x7AE0;&#x4E2D;&#x8B1B;&#x89E3;&#xFF0C;&#x7232;&#x4E86;&#x5728;&#x9019;&#x91CC;&#x7C21;&#x55AE;&#x8AAC;&#x660E;&#x63A5;&#x53E3;&#x80FD;&#x505A;&#x4EC0;&#x9EBD;&#xFF0C;&#x8B93;&#x6211;&#x5011;&#x7C21;&#x55AE;&#x5730;&#x5C07;&#x9019;&#x91CC;&#x7684;web&#x670D;&#x52D9;&#x5668;&#x548C;&#x4E4B;&#x524D;&#x5BEB;&#x7684;lissajous&#x51FD;&#x6578;&#x7D50;&#x5408;&#x8D77;&#x4F86;&#xFF0C;&#x9019;&#x6A23;GIF&#x52D5;&#x7575;&#x53EF;&#x4EE5;&#x88AB;&#x5BEB;&#x5230;HTTP&#x7684;&#x5BA2;&#x6236;&#x7AEF;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x4E4B;&#x524D;&#x7684;&#x6A19;&#x6E96;&#x8F38;&#x9F63;&#x6D41;&#x3002;&#x96BB;&#x8981;&#x5728;web&#x670D;&#x52D9;&#x5668;&#x7684;&#x4EE3;&#x78BC;&#x91CC;&#x52A0;&#x5165;&#x4E0B;&#x9762;&#x9019;&#x5E7E;&#x884C;&#x3002;</p>
<pre><code class="lang-Go">handler := <span class="hljs-keyword">func</span>(w http.ResponseWriter, r *http.Request) {
lissajous(w)
}
http.HandleFunc(&quot;/&quot;, handler)
</code></pre><p>&#x6216;&#x8005;&#x53E6;&#x4E00;&#x7A2E;&#x7B49;&#x50F9;&#x5F62;&#x5F0F;&#xFF1A;</p>
<pre><code>http.HandleFunc(&quot;/&quot;, func(w http.ResponseWriter, r *http.Request) {
http.HandleFunc(<span class="hljs-string">&quot;/&quot;</span>, handler)
</code></pre>
<p>&#x6216;&#x8005;&#x53E6;&#x4E00;&#x7A2E;&#x7B49;&#x50F9;&#x5F62;&#x5F0F;&#xFF1A;</p>
<pre><code class="lang-Go">http.HandleFunc(<span class="hljs-string">&quot;/&quot;</span>, <span class="hljs-keyword">func</span>(w http.ResponseWriter, r *http.Request) {
lissajous(w)
})
</code></pre><p>HandleFunc&#x51FD;&#x6578;&#x7684;&#x7B2C;&#x4E8C;&#x500B;&#x53C3;&#x6578;&#x662F;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x7684;&#x5B57;&#x9762;&#x503C;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x4E00;&#x500B;&#x5728;&#x4F7F;&#x7528;&#x6642;&#x5B9A;&#x7FA9;&#x7684;&#x533F;&#x540D;&#x51FD;&#x6578;&#x3002;&#x9019;&#x4E9B;&#x5167;&#x5BB9;&#x6211;&#x5011;&#x6703;&#x5728;5.6&#x7BC0;&#x4E2D;&#x8B1B;&#x89E3;&#x3002;</p>
<p>&#x505A;&#x5B8C;&#x9019;&#x4E9B;&#x8129;&#x6539;&#x4E4B;&#x5F8C;&#xFF0C;&#x5728;&#x700F;&#x89BD;&#x5668;&#x91CC;&#x8A2A;&#x554F;<a href="http://localhost:8000&#x3002;&#x6BCF;&#x6B21;&#x4F60;&#x8F09;&#x5165;&#x9019;&#x500B;&#x9801;&#x9762;&#x90FD;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x4E00;&#x500B;&#x50CF;&#x5716;1.3&#x90A3;&#x6A23;&#x7684;&#x52D5;&#x7575;&#x3002;" target="_blank">http://localhost:8000&#x3002;&#x6BCF;&#x6B21;&#x4F60;&#x8F09;&#x5165;&#x9019;&#x500B;&#x9801;&#x9762;&#x90FD;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x4E00;&#x500B;&#x50CF;&#x5716;1.3&#x90A3;&#x6A23;&#x7684;&#x52D5;&#x7575;&#x3002;</a></p>
<pre><code>Exercise 1.12:&#x8129;&#x6539;Lissajour&#x670D;&#x52D9;&#xFF0C;&#x5F9E;URL&#x8B80;&#x53D6;&#x8B8A;&#x91CF;&#xFF0C;&#x6BD4;&#x5982;&#x4F60;&#x53EF;&#x4EE5;&#x8A2A;&#x554F;http://localhost:8000/?cycles=20&#x9019;&#x500B;URL&#xFF0C;&#x9019;&#x6A23;&#x8A2A;&#x554F;&#x53EF;&#x4EE5;&#x5C07;&#x7A0B;&#x5E8F;&#x91CC;&#x7684;cycles&#x9ED8;&#x8A8D;&#x7684;5&#x8129;&#x6539;&#x7232;20&#x3002;&#x5B57;&#x7B26;&#x4E32;&#x8F49;&#x63DB;&#x7232;&#x6578;&#x5B57;&#x53EF;&#x4EE5;&#x8ABF;&#x7528;strconv.Atoi&#x51FD;&#x6578;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x5728;dodoc&#x91CC;&#x67FB;&#x770B;strconv.Atoi&#x7684;&#x8A73;&#x7D30;&#x8AAC;&#x660E;&#x3002;
</code></pre><p><img src="../images/ch1-03.png" alt=""></p>
</code></pre>
<p>HandleFunc&#x51FD;&#x6578;&#x7684;&#x7B2C;&#x4E8C;&#x500B;&#x53C3;&#x6578;&#x662F;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x7684;&#x5B57;&#x9762;&#x503C;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x4E00;&#x500B;&#x5728;&#x4F7F;&#x7528;&#x6642;&#x5B9A;&#x7FA9;&#x7684;&#x533F;&#x540D;&#x51FD;&#x6578;&#x3002;&#x9019;&#x4E9B;&#x5167;&#x5BB9;&#x6211;&#x5011;&#x6703;&#x5728;5.6&#x7BC0;&#x4E2D;&#x8B1B;&#x89E3;&#x3002;</p>
<p>&#x505A;&#x5B8C;&#x9019;&#x4E9B;&#x8129;&#x6539;&#x4E4B;&#x5F8C;&#xFF0C;&#x5728;&#x700F;&#x89BD;&#x5668;&#x91CC;&#x8A2A;&#x554F; <a href="http://localhost:8000" target="_blank">http://localhost:8000</a> &#x3002;&#x6BCF;&#x6B21;&#x4F60;&#x8F09;&#x5165;&#x9019;&#x500B;&#x9801;&#x9762;&#x90FD;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x4E00;&#x500B;&#x50CF;&#x5716;1.3&#x90A3;&#x6A23;&#x7684;&#x52D5;&#x7575;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 1.12&#xFF1A;</strong> &#x8129;&#x6539;Lissajour&#x670D;&#x52D9;&#xFF0C;&#x5F9E;URL&#x8B80;&#x53D6;&#x8B8A;&#x91CF;&#xFF0C;&#x6BD4;&#x5982;&#x4F60;&#x53EF;&#x4EE5;&#x8A2A;&#x554F; <a href="http://localhost:8000/?cycles=20" target="_blank">http://localhost:8000/?cycles=20</a> &#x9019;&#x500B;URL&#xFF0C;&#x9019;&#x6A23;&#x8A2A;&#x554F;&#x53EF;&#x4EE5;&#x5C07;&#x7A0B;&#x5E8F;&#x91CC;&#x7684;cycles&#x9ED8;&#x8A8D;&#x7684;5&#x8129;&#x6539;&#x7232;20&#x3002;&#x5B57;&#x7B26;&#x4E32;&#x8F49;&#x63DB;&#x7232;&#x6578;&#x5B57;&#x53EF;&#x4EE5;&#x8ABF;&#x7528;strconv.Atoi&#x51FD;&#x6578;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x5728;dodoc&#x91CC;&#x67FB;&#x770B;strconv.Atoi&#x7684;&#x8A73;&#x7D30;&#x8AAC;&#x660E;&#x3002;</p>
<p><img src="../images/ch1-03.png" alt=""></p>
</section>

View File

@@ -48,7 +48,7 @@
<body>
<div class="book" data-level="1.8" data-chapter-title="本章要點" data-filepath="ch1/ch1-08.md" data-basepath=".." data-revision="Mon Dec 21 2015 12:51:02 GMT+0800 (中国标准时间)">
<div class="book" data-level="1.8" data-chapter-title="本章要點" data-filepath="ch1/ch1-08.md" data-basepath=".." data-revision="Thu Dec 24 2015 14:42:02 GMT+0800 (中国标准时间)">
<div class="book-summary">
@@ -1975,16 +1975,16 @@
</li>
<li class="chapter " data-level="14" data-path="errata.html">
<li class="chapter " data-level="14" data-path="CONTRIBUTORS.html">
<a href="../errata.html">
<a href="../CONTRIBUTORS.html">
<i class="fa fa-check"></i>
<b>14.</b>
勘誤
附録
</a>
@@ -2024,52 +2024,52 @@
<section class="normal" id="section-">
<h2 id="18-&#x672C;&#x7AE0;&#x8981;&#x9EDE;">1.8. &#x672C;&#x7AE0;&#x8981;&#x9EDE;</h2>
<p>&#x672C;&#x7AE0;&#x4E2D;&#x5C0D;Go&#x8A9E;&#x8A00;&#x505A;&#x4E86;&#x4E00;&#x4E9B;&#x4ECB;&#x7D39;&#xFF0C;&#x5BE6;&#x969B;&#x4E0A;Go&#x8A9E;&#x8A00;&#x9084;&#x6709;&#x5F88;&#x591A;&#x65B9;&#x9762;&#x5728;&#x9019;&#x6709;&#x9650;&#x7684;&#x7BC7;&#x5E45;&#x4E2D;&#x9084;&#x6C92;&#x6709;&#x8986;&#x84CB;&#x5230;&#x3002;&#x9019;&#x91CC;&#x6211;&#x5011;&#x6703;&#x628A;&#x6C92;&#x6709;&#x8B1B;&#x5230;&#x7684;&#x5167;&#x5BB9;&#x4E5F;&#x505A;&#x4E00;&#x4E9B;&#x7C21;&#x55AE;&#x7684;&#x4ECB;&#x7D39;&#xFF0C;&#x9019;&#x6A23;&#x8B80;&#x8005;&#x5728;&#x4E4B;&#x5F8C;&#x770B;&#x5230;&#x5B8C;&#x6574;&#x7684;&#x5167;&#x5BB9;&#x4E4B;&#x524D;&#xFF0C;&#x4E5F;&#x53EF;&#x4EE5;&#x7C21;&#x55AE;&#x6709;&#x500B;&#x5370;&#x8C61;&#x3002;</p>
<p>&#x63A7;&#x88FD;&#x6D41;&#xFF1A;&#x5728;&#x672C;&#x7AE0;&#x6211;&#x5011;&#x96BB;&#x4ECB;&#x7D39;&#x4E86;if&#x63A7;&#x88FD;&#x548C;for&#xFF0C;&#x4F46;&#x662F;&#x6C92;&#x6709;&#x63D0;&#x5230;switch&#x591A;&#x8DEF;&#x9078;&#x64C7;&#x3002;&#x9019;&#x91CC;&#x662F;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;switch&#x7684;&#x4F8B;&#x5B50;&#xFF1A;</p>
<p>&#x672C;&#x7AE0;&#x4E2D;&#x5C0D;Go&#x8A9E;&#x8A00;&#x505A;&#x4E86;&#x4E00;&#x4E9B;&#x4ECB;&#x7D39;&#xFF0C;&#x5BE6;&#x969B;&#x4E0A;Go&#x8A9E;&#x8A00;&#x9084;&#x6709;&#x5F88;&#x591A;&#x65B9;&#x9762;&#x5728;&#x9019;&#x6709;&#x9650;&#x7684;&#x7BC7;&#x5E45;&#x4E2D;&#x9084;&#x6C92;&#x6709;&#x8986;&#x84CB;&#x5230;&#x3002;&#x9019;&#x91CC;&#x6211;&#x5011;&#x6703;&#x628A;&#x6C92;&#x6709;&#x8B1B;&#x5230;&#x7684;&#x5167;&#x5BB9;&#x4E5F;&#x505A;&#x4E00;&#x4E9B;&#x7C21;&#x55AE;&#x7684;&#x4ECB;&#x7D39;&#xFF0C;&#x9019;&#x6A23;&#x8B80;&#x8005;&#x5728;&#x4E4B;&#x5F8C;&#x770B;&#x5230;&#x5B8C;&#x6574;&#x7684;&#x5167;&#x5BB9;&#x4E4B;&#x524D;&#xFF0C;&#x4E5F;&#x53EF;&#x4EE5;&#x6709;&#x500B;&#x7C21;&#x55AE;&#x5370;&#x8C61;&#x3002;</p>
<p><strong>&#x63A7;&#x88FD;&#x6D41;&#xFF1A;</strong> &#x5728;&#x672C;&#x7AE0;&#x6211;&#x5011;&#x96BB;&#x4ECB;&#x7D39;&#x4E86;if&#x63A7;&#x88FD;&#x548C;for&#xFF0C;&#x4F46;&#x662F;&#x6C92;&#x6709;&#x63D0;&#x5230;switch&#x591A;&#x8DEF;&#x9078;&#x64C7;&#x3002;&#x9019;&#x91CC;&#x662F;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;switch&#x7684;&#x4F8B;&#x5B50;&#xFF1A;</p>
<pre><code class="lang-go"><span class="hljs-keyword">switch</span> coinflip() {
<span class="hljs-keyword">case</span> <span class="hljs-string">&quot;heads&quot;</span>:
heads++
<span class="hljs-keyword">case</span> <span class="hljs-string">&quot;tails&quot;</span>:
tails++
<span class="hljs-keyword">default</span>:
fmt.Println(<span class="hljs-string">&quot;landed on edge!&quot;</span>)
<span class="hljs-keyword">case</span> <span class="hljs-string">&quot;heads&quot;</span>:
heads++
<span class="hljs-keyword">case</span> <span class="hljs-string">&quot;tails&quot;</span>:
tails++
<span class="hljs-keyword">default</span>:
fmt.Println(<span class="hljs-string">&quot;landed on edge!&quot;</span>)
}
</code></pre>
<p>&#x5728;&#x7FFB;&#x8F49;&#x786C;&#x5E63;&#x7684;&#x6642;&#x5019;&#xFF0C;&#x4F8B;&#x5B50;&#x91CC;&#x7684;coinflip&#x51FD;&#x6578;&#x8FD4;&#x8FF4;&#x5E7E;&#x7A2E;&#x4E0D;&#x540C;&#x7684;&#x7D50;&#x679C;&#xFF0C;&#x6BCF;&#x4E00;&#x500B;case&#x90FD;&#x6703;&#x5C0D;&#x61C9;&#x500B;&#x8FD4;&#x8FF4;&#x7D50;&#x679C;&#xFF0C;&#x9019;&#x91CC;&#x9700;&#x8981;&#x8A3B;&#x610F;&#xFF0C;Go&#x8A9E;&#x8A00;&#x4F75;&#x4E0D;&#x9700;&#x8981;&#x986F;&#x5F0F;&#x5730;&#x53BB;&#x5728;&#x6BCF;&#x4E00;&#x500B;case&#x5F8C;&#x5BEB;break&#xFF0C;&#x8A9E;&#x8A00;&#x9ED8;&#x8A8D;&#x57F7;&#x884C;&#x5B8C;case&#x5F8C;&#x7684;&#x908F;&#x8F2F;&#x8A9E;&#x53E5;&#x6703;&#x81EA;&#x52D5;&#x9000;&#x9F63;&#x3002;&#x7576;&#x7136;&#x4E86;&#xFF0C;&#x5982;&#x679C;&#x4F60;&#x60F3;&#x8981;&#x76F8;&#x9130;&#x7684;&#x5E7E;&#x500B;case&#x90FD;&#x57F7;&#x884C;&#x540C;&#x4E00;&#x908F;&#x8F2F;&#x7684;&#x8A71;&#xFF0C;&#x9700;&#x8981;&#x81EA;&#x5DF1;&#x986F;&#x5F0F;&#x5730;&#x5BEB;&#x4E0A;&#x4E00;&#x500B;fallthrough&#x8A9E;&#x53E5;&#x4F86;&#x8986;&#x84CB;&#x9019;&#x7A2E;&#x9ED8;&#x8A8D;&#x884C;&#x7232;&#x3002;&#x4E0D;&#x904E;fallthrough&#x8A9E;&#x53E5;&#x5728;&#x4E00;&#x822C;&#x7684;&#x7DE8;&#x7A0B;&#x4E2D;&#x7528;&#x5230;&#x5F97;&#x5F88;&#x5C11;&#x3002;</p>
<p>go&#x91CC;&#x7684;switch&#x9084;&#x53EF;&#x4EE5;&#x4E0D;&#x5E36;&#x64CD;&#x4F5C;&#x5C0D;&#x8C61;&#xFF1B;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x7F85;&#x5217;&#x591A;&#x7A2E;&#x689D;&#x4EF6;&#xFF0C;&#x50CF;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x91CC;&#x9762;&#x7684;&#x591A;&#x500B;if else&#x4E00;&#x6A23;&#xFF0C;&#x4E0B;&#x9762;&#x662F;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#xFF1A;</p>
<p>Go&#x8A9E;&#x8A00;&#x91CC;&#x7684;switch&#x9084;&#x53EF;&#x4EE5;&#x4E0D;&#x5E36;&#x64CD;&#x4F5C;&#x5C0D;&#x8C61;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;switch&#x4E0D;&#x5E36;&#x64CD;&#x4F5C;&#x5C0D;&#x8C61;&#x6642;&#x9ED8;&#x8A8D;&#x7528;true&#x503C;&#x4EE3;&#x66FF;&#xFF0C;&#x7136;&#x5F8C;&#x5C07;&#x6BCF;&#x500B;case&#x7684;&#x8868;&#x9054;&#x5F0F;&#x548C;true&#x503C;&#x9032;&#x884C;&#x6BD4;&#x8F03;&#xFF09;&#xFF1B;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x7F85;&#x5217;&#x591A;&#x7A2E;&#x689D;&#x4EF6;&#xFF0C;&#x50CF;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x91CC;&#x9762;&#x7684;&#x591A;&#x500B;if else&#x4E00;&#x6A23;&#xFF0C;&#x4E0B;&#x9762;&#x662F;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#xFF1A;</p>
<pre><code class="lang-go"><span class="hljs-keyword">func</span> Signum(x <span class="hljs-typename">int</span>) <span class="hljs-typename">int</span> {
<span class="hljs-keyword">switch</span> {
<span class="hljs-keyword">case</span> x &gt; <span class="hljs-number">0</span>:
<span class="hljs-keyword">return</span> +<span class="hljs-number">1</span>
<span class="hljs-keyword">default</span>:
<span class="hljs-keyword">return</span> <span class="hljs-number">0</span>
<span class="hljs-keyword">case</span> x &lt; <span class="hljs-number">0</span>:
<span class="hljs-keyword">return</span> -<span class="hljs-number">1</span>
<span class="hljs-keyword">case</span> x &gt; <span class="hljs-number">0</span>:
<span class="hljs-keyword">return</span> +<span class="hljs-number">1</span>
<span class="hljs-keyword">default</span>:
<span class="hljs-keyword">return</span> <span class="hljs-number">0</span>
<span class="hljs-keyword">case</span> x &lt; <span class="hljs-number">0</span>:
<span class="hljs-keyword">return</span> -<span class="hljs-number">1</span>
}
}
</code></pre>
<p>&#x9019;&#x7A2E;&#x5F62;&#x5F0F;&#x53EB;&#x505A;&#x7121;tag switch(tagless switch)&#xFF1B;&#x9019;&#x548C;switch true&#x662F;&#x7B49;&#x50F9;&#x7684;&#x3002;</p>
<p>&#x50CF;for&#x548C;if&#x63A7;&#x88FD;&#x8A9E;&#x53E5;&#x4E00;&#x6A23;&#xFF0C;switch&#x4E5F;&#x53EF;&#x4EE5;&#x7DCA;&#x8DDF;&#x4E00;&#x500B;&#x7C21;&#x77ED;&#x7684;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#xFF0C;&#x4E00;&#x500B;&#x81EA;&#x589E;&#x8868;&#x9054;&#x5F0F;&#x3001;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#xFF0C;&#x6216;&#x8005;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x3002;</p>
<p>break&#x548C;continue&#x8A9E;&#x53E5;&#x6703;&#x6539;&#x8B8A;&#x63A7;&#x88FD;&#x6D41;&#x3002;&#x548C;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x4E2D;&#x7684;break&#x548C;continue&#x4E00;&#x6A23;&#xFF0C;break&#x6703;&#x4E2D;&#x65B7;&#x7576;&#x524D;&#x7684;&#x5FAA;&#x74B0;&#xFF0C;&#x4F75;&#x958B;&#x59CB;&#x57F7;&#x884C;&#x5FAA;&#x74B0;&#x4E4B;&#x5F8C;&#x7684;&#x5167;&#x5BB9;&#xFF0C;&#x800C;continue&#x6703;&#x4E2D;&#x8DF3;&#x904E;&#x7576;&#x524D;&#x5FAA;&#x74B0;&#xFF0C;&#x4F75;&#x958B;&#x59CB;&#x57F7;&#x884C;&#x4E0B;&#x4E00;&#x6B21;&#x5FAA;&#x74B0;&#x3002;&#x9019;&#x5169;&#x500B;&#x8A9E;&#x53E5;&#x9664;&#x4E86;&#x53EF;&#x4EE5;&#x63A7;&#x88FD;for&#x5FAA;&#x74B0;&#xFF0C;&#x9084;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x63A7;&#x88FD;switch&#x548C;select&#x8A9E;&#x53E5;(&#x4E4B;&#x5F8C;&#x6703;&#x8B1B;&#x5230;)&#xFF0C;&#x5728;1.3&#x7BC0;&#x4E2D;&#x6211;&#x5011;&#x770B;&#x5230;&#xFF0C;continue&#x6703;&#x8DF3;&#x904E;&#x662F;&#x5167;&#x5C64;&#x7684;&#x5FAA;&#x74B0;&#xFF0C;&#x5982;&#x679C;&#x6211;&#x5011;&#x60F3;&#x8DF3;&#x904E;&#x7684;&#x662F;&#x66F4;&#x5916;&#x5C64;&#x7684;&#x5FAA;&#x74B0;&#x7684;&#x8A71;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5728;&#x76F8;&#x61C9;&#x7684;&#x4F4D;&#x7F6E;&#x52A0;&#x4E0A;label&#xFF0C;&#x9019;&#x6A23;break&#x548C;continue&#x5C31;&#x53EF;&#x4EE5;&#x6839;&#x64DA;&#x6211;&#x5011;&#x7684;&#x60F3;&#x6CD5;&#x4F86;continue&#x548C;break&#x4EFB;&#x610F;&#x5FAA;&#x74B0;&#x3002;&#x9019;&#x770B;&#x8D77;&#x4F86;&#x751A;&#x81F3;&#x6709;&#x9EDE;&#x50CF;goto&#x8A9E;&#x53E5;&#x7684;&#x4F5C;&#x7528;&#x4E86;&#x3002;&#x7576;&#x7136;&#xFF0C;&#x4E00;&#x822C;&#x7A0B;&#x5E8F;&#x54E1;&#x4E5F;&#x4E0D;&#x6703;&#x7528;&#x5230;&#x9019;&#x7A2E;&#x64CD;&#x4F5C;&#x3002;&#x9019;&#x5169;&#x7A2E;&#x884C;&#x7232;&#x66F4;&#x591A;&#x5730;&#x88AB;&#x7528;&#x5230;&#x6A5F;&#x5668;&#x751F;&#x6210;&#x7684;&#x4EE3;&#x78BC;&#x4E2D;&#x3002;</p>
<p>&#x547D;&#x540D;&#x985E;&#x578B;&#xFF1A;&#x985E;&#x578B;&#x8072;&#x660E;&#x4F7F;&#x5F97;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5F88;&#x65B9;&#x4FBF;&#x5730;&#x7D66;&#x4E00;&#x500B;&#x7279;&#x6B8A;&#x985E;&#x578B;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x3002;&#x56E0;&#x7232;struct&#x985E;&#x578B;&#x8072;&#x660E;&#x901A;&#x5E38;&#x975E;&#x5E38;&#x5730;&#x9577;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x5011;&#x7E3D;&#x8981;&#x7D66;&#x9019;&#x7A2E;struct&#x53D6;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x3002;&#x672C;&#x7AE0;&#x4E2D;&#x5C31;&#x6709;&#x9019;&#x6A23;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#xFF0C;2d&#x9EDE;&#x985E;&#x578B;&#xFF1A;</p>
<p><strong>&#x547D;&#x540D;&#x985E;&#x578B;&#xFF1A;</strong> &#x985E;&#x578B;&#x8072;&#x660E;&#x4F7F;&#x5F97;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5F88;&#x65B9;&#x4FBF;&#x5730;&#x7D66;&#x4E00;&#x500B;&#x7279;&#x6B8A;&#x985E;&#x578B;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x3002;&#x56E0;&#x7232;struct&#x985E;&#x578B;&#x8072;&#x660E;&#x901A;&#x5E38;&#x975E;&#x5E38;&#x5730;&#x9577;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x5011;&#x7E3D;&#x8981;&#x7D66;&#x9019;&#x7A2E;struct&#x53D6;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x3002;&#x672C;&#x7AE0;&#x4E2D;&#x5C31;&#x6709;&#x9019;&#x6A23;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#xFF0C;&#x4E8C;&#x7DAD;&#x9EDE;&#x985E;&#x578B;&#xFF1A;</p>
<pre><code class="lang-go"><span class="hljs-keyword">type</span> Point <span class="hljs-keyword">struct</span> {
X, Y <span class="hljs-typename">int</span>
}
<span class="hljs-keyword">var</span> p Point
</code></pre>
<p>&#x985E;&#x578B;&#x8072;&#x660E;&#x548C;&#x547D;&#x540D;&#x985E;&#x578B;&#x6703;&#x5728;&#x7B2C;&#x4E8C;&#x7AE0;&#x4E2D;&#x4ECB;&#x7D39;&#x3002;</p>
<p>&#x6307;&#x91DD;&#xFF1A;Go&#x8A9E;&#x8A00;&#x63D0;&#x4F9B;&#x4E86;&#x6307;&#x91DD;&#x3002;&#x6307;&#x91DD;&#x662F;&#x4E00;&#x7A2E;&#x76F4;&#x63A5;&#x5B58;&#x5132;&#x4E86;&#x8B8A;&#x91CF;&#x7684;&#x5167;&#x5B58;&#x5730;&#x5740;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x3002;&#x5728;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x4E2D;&#xFF0C;&#x6BD4;&#x5982;C&#x8A9E;&#x8A00;&#xFF0C;&#x6307;&#x91DD;&#x662F;&#x5B8C;&#x5168;&#x4E0D;&#x53D7;&#x7D04;&#x675F;&#x7684;&#x3002;&#x5728;&#x53E6;&#x5916;&#x4E00;&#x4E9B;&#x8A9E;&#x8A00;&#x4E2D;&#xFF0C;&#x6307;&#x91DD;&#x4E00;&#x822C;&#x88AB;&#x7A31;&#x7232;&#x201C;&#x5F15;&#x7528;&#x201D;&#xFF0C;&#x9664;&#x4E86;&#x5230;&#x8655;&#x50B3;&#x905E;&#x9019;&#x4E9B;&#x6307;&#x91DD;&#x4E4B;&#x5916;&#xFF0C;&#x4F75;&#x4E0D;&#x80FD;&#x5C0D;&#x9019;&#x4E9B;&#x6307;&#x91DD;&#x505A;&#x592A;&#x591A;&#x4E8B;&#x60C5;&#x3002;go&#x5728;&#x9019;&#x5169;&#x7A2E;&#x8303;&#x570D;&#x4E2D;&#x53D6;&#x5F97;&#x4E86;&#x4E00;&#x500B;&#x5E73;&#x8861;&#x3002;&#x6307;&#x91DD;&#x662F;&#x53EF;&#x898B;&#x7684;&#x5167;&#x5B58;&#x5730;&#x5740;&#xFF0C;&amp;&#x64CD;&#x4F5C;&#x7B26;&#x53EF;&#x4EE5;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x5167;&#x5B58;&#x5730;&#x5740;&#xFF0C;&#x4F75;&#x4E14;*&#x64CD;&#x4F5C;&#x7B26;&#x53EF;&#x4EE5;&#x7A6B;&#x53D6;&#x6307;&#x91DD;&#x6307;&#x5411;&#x7684;&#x8B8A;&#x91CF;&#x5167;&#x5BB9;&#xFF0C;&#x4F46;&#x662F;&#x5728;go&#x8A9E;&#x8A00;&#x91CC;&#x6C92;&#x6709;&#x6307;&#x91DD;&#x904B;&#x7B97;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x4E0D;&#x50CF;c&#x8A9E;&#x8A00;&#x91CC;&#x53EF;&#x4EE5;&#x5C0D;&#x6307;&#x91DD;&#x9032;&#x884C;&#x52A0;&#x6216;&#x6E1B;&#x64CD;&#x4F5C;&#x3002;&#x6211;&#x5011;&#x6703;&#x5728;2.3.2&#x4E2D;&#x9032;&#x884C;&#x8A73;&#x7D30;&#x4ECB;&#x7D39;&#x3002;</p>
<p>&#x65B9;&#x6CD5;&#x548C;&#x63A5;&#x53E3;&#xFF1A;&#x65B9;&#x6CD5;&#x662F;&#x548C;&#x547D;&#x540D;&#x985E;&#x578B;&#x95DC;&#x806F;&#x7684;&#x4E00;&#x985E;&#x51FD;&#x6578;&#x3002;Go&#x8A9E;&#x8A00;&#x91CC;&#x6BD4;&#x8F03;&#x7279;&#x6B8A;&#x7684;&#x662F;&#x65B9;&#x6CD5;&#x53EF;&#x4EE5;&#x88AB;&#x95DC;&#x806F;&#x5230;&#x4EFB;&#x610F;&#x4E00;&#x7A2E;&#x547D;&#x540D;&#x985E;&#x578B;&#x3002;&#x5728;&#x7B2C;&#x516D;&#x7AE0;&#x6211;&#x5011;&#x6703;&#x8A73;&#x7D30;&#x5730;&#x8B1B;&#x65B9;&#x6CD5;&#x3002;&#x63A5;&#x53E3;&#x662F;&#x4E00;&#x7A2E;&#x62BD;&#x8C61;&#x985E;&#x578B;&#xFF0C;&#x9019;&#x7A2E;&#x985E;&#x578B;&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x4EE5;&#x540C;&#x6A23;&#x7684;&#x65B9;&#x5F0F;&#x4F86;&#x8655;&#x7406;&#x4E0D;&#x540C;&#x7684;&#x56FA;&#x6709;&#x985E;&#x578B;&#xFF0C;&#x4E0D;&#x7528;&#x95DC;&#x5FC3;&#x5B83;&#x5011;&#x7684;&#x5177;&#x9AD4;&#x5BE6;&#x73FE;&#xFF0C;&#x800C;&#x96BB;&#x9700;&#x8981;&#x95DC;&#x8A3B;&#x5B83;&#x5011;&#x63D0;&#x4F9B;&#x7684;&#x65B9;&#x6CD5;&#x3002;&#x7B2C;&#x4E03;&#x7AE0;&#x4E2D;&#x6703;&#x8A73;&#x7D30;&#x8AAC;&#x660E;&#x9019;&#x4E9B;&#x5167;&#x5BB9;&#x3002;</p>
<p>&#x5305;(packages)&#xFF1A;Go&#x8A9E;&#x8A00;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E9B;&#x5F88;&#x597D;&#x7528;&#x7684;package&#xFF0C;&#x4F75;&#x4E14;&#x9019;&#x4E9B;package&#x662F;&#x53EF;&#x4EE5;&#x64F4;&#x5C55;&#x7684;&#x3002;Go&#x8A9E;&#x8A00;&#x793E;&#x5340;&#x5DF2;&#x7D93;&#x5275;&#x9020;&#x4F75;&#x4E14;&#x5206;&#x4EAB;&#x4E86;&#x5F88;&#x591A;&#x5F88;&#x591A;&#x3002;&#x6240;&#x4EE5;Go&#x8A9E;&#x8A00;&#x7DE8;&#x7A0B;&#x5927;&#x591A;&#x6578;&#x60C5;&#x6CC1;&#x4E0B;&#x5C31;&#x662F;&#x7528;&#x5DF2;&#x6709;&#x7684;package&#x4F86;&#x5BEB;&#x6211;&#x5011;&#x81EA;&#x5DF1;&#x7684;&#x4EE3;&#x78BC;&#x3002;&#x901A;&#x904E;&#x9019;&#x672C;&#x66F8;&#xFF0C;&#x6211;&#x5011;&#x6703;&#x8B1B;&#x89E3;&#x4E00;&#x4E9B;&#x91CD;&#x8981;&#x7684;&#x6A19;&#x6E96;&#x5EAB;&#x5167;&#x7684;package&#xFF0C;&#x4F46;&#x662F;&#x9084;&#x662F;&#x6709;&#x5F88;&#x591A;&#x6211;&#x5011;&#x6C92;&#x6709;&#x7BC7;&#x5E45;&#x53BB;&#x8AAC;&#x660E;&#xFF0C;&#x56E0;&#x7232;&#x6211;&#x5011;&#x6C92;&#x6CD5;&#x5728;&#x9019;&#x6A23;&#x7684;&#x539A;&#x5EA6;&#x7684;&#x66F8;&#x91CC;&#x53BB;&#x505A;&#x4E00;&#x90E8;&#x4EE3;&#x78BC;&#x5927;&#x5168;&#x3002;</p>
<p>&#x5728;&#x4F60;&#x958B;&#x59CB;&#x5BEB;&#x4E00;&#x500B;&#x65B0;&#x7A0B;&#x5E8F;&#x4E4B;&#x524D;&#xFF0C;&#x6700;&#x597D;&#x5148;&#x53BB;&#x6AA2;&#x67FB;&#x4E00;&#x4E0B;&#x662F;&#x4E0D;&#x662F;&#x5DF2;&#x7D93;&#x6709;&#x4E86;&#x73FE;&#x6210;&#x7684;&#x5EAB;&#x53EF;&#x4EE5;&#x5E6B;&#x52A9;&#x4F60;&#x66F4;&#x9AD8;&#x6548;&#x5730;&#x5B8C;&#x6210;&#x9019;&#x4EF6;&#x4E8B;&#x60C5;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x5728;<a href="https://golang.org/pkg" target="_blank">https://golang.org/pkg</a> &#x548C; <a href="https://godoc.org" target="_blank">https://godoc.org</a> &#x4E2D;&#x627E;&#x5230;&#x6A19;&#x6E96;&#x5EAB;&#x548C;&#x793E;&#x5340;&#x5BEB;&#x7684;package&#x3002;godoc&#x9019;&#x500B;&#x5DE5;&#x5177;&#x53EF;&#x4EE5;&#x8B93;&#x4F60;&#x76F4;&#x63A5;&#x5728;&#x672C;&#x5730;&#x547D;&#x4EE4;&#x884C;&#x95B2;&#x8B80;&#x6A19;&#x6E96;&#x5EAB;&#x7684;&#x6587;&#x6A94;&#x3002;&#x6BD4;&#x5982;&#x4E0B;&#x9762;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x3002;</p>
<p><strong>&#x6307;&#x91DD;&#xFF1A;</strong> Go&#x8A9E;&#x8A00;&#x63D0;&#x4F9B;&#x4E86;&#x6307;&#x91DD;&#x3002;&#x6307;&#x91DD;&#x662F;&#x4E00;&#x7A2E;&#x76F4;&#x63A5;&#x5B58;&#x5132;&#x4E86;&#x8B8A;&#x91CF;&#x7684;&#x5167;&#x5B58;&#x5730;&#x5740;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;&#x3002;&#x5728;&#x5176;&#x5B83;&#x8A9E;&#x8A00;&#x4E2D;&#xFF0C;&#x6BD4;&#x5982;C&#x8A9E;&#x8A00;&#xFF0C;&#x6307;&#x91DD;&#x64CD;&#x4F5C;&#x662F;&#x5B8C;&#x5168;&#x4E0D;&#x53D7;&#x7D04;&#x675F;&#x7684;&#x3002;&#x5728;&#x53E6;&#x5916;&#x4E00;&#x4E9B;&#x8A9E;&#x8A00;&#x4E2D;&#xFF0C;&#x6307;&#x91DD;&#x4E00;&#x822C;&#x88AB;&#x8655;&#x7406;&#x7232;&#x201C;&#x5F15;&#x7528;&#x201D;&#xFF0C;&#x9664;&#x4E86;&#x5230;&#x8655;&#x50B3;&#x905E;&#x9019;&#x4E9B;&#x6307;&#x91DD;&#x4E4B;&#x5916;&#xFF0C;&#x4F75;&#x4E0D;&#x80FD;&#x5C0D;&#x9019;&#x4E9B;&#x6307;&#x91DD;&#x505A;&#x592A;&#x591A;&#x4E8B;&#x60C5;&#x3002;Go&#x8A9E;&#x8A00;&#x5728;&#x9019;&#x5169;&#x7A2E;&#x8303;&#x570D;&#x4E2D;&#x53D6;&#x4E86;&#x4E00;&#x7A2E;&#x5E73;&#x8861;&#x3002;&#x6307;&#x91DD;&#x662F;&#x53EF;&#x898B;&#x7684;&#x5167;&#x5B58;&#x5730;&#x5740;&#xFF0C;&amp;&#x64CD;&#x4F5C;&#x7B26;&#x53EF;&#x4EE5;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x5167;&#x5B58;&#x5730;&#x5740;&#xFF0C;&#x4F75;&#x4E14;*&#x64CD;&#x4F5C;&#x7B26;&#x53EF;&#x4EE5;&#x7A6B;&#x53D6;&#x6307;&#x91DD;&#x6307;&#x5411;&#x7684;&#x8B8A;&#x91CF;&#x5167;&#x5BB9;&#xFF0C;&#x4F46;&#x662F;&#x5728;Go&#x8A9E;&#x8A00;&#x91CC;&#x6C92;&#x6709;&#x6307;&#x91DD;&#x904B;&#x7B97;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x4E0D;&#x80FD;&#x50CF;c&#x8A9E;&#x8A00;&#x91CC;&#x53EF;&#x4EE5;&#x5C0D;&#x6307;&#x91DD;&#x9032;&#x884C;&#x52A0;&#x6216;&#x6E1B;&#x64CD;&#x4F5C;&#x3002;&#x6211;&#x5011;&#x6703;&#x5728;2.3.2&#x4E2D;&#x9032;&#x884C;&#x8A73;&#x7D30;&#x4ECB;&#x7D39;&#x3002;</p>
<p><strong>&#x65B9;&#x6CD5;&#x548C;&#x63A5;&#x53E3;&#xFF1A;</strong> &#x65B9;&#x6CD5;&#x662F;&#x548C;&#x547D;&#x540D;&#x985E;&#x578B;&#x95DC;&#x806F;&#x7684;&#x4E00;&#x985E;&#x51FD;&#x6578;&#x3002;Go&#x8A9E;&#x8A00;&#x91CC;&#x6BD4;&#x8F03;&#x7279;&#x6B8A;&#x7684;&#x662F;&#x65B9;&#x6CD5;&#x53EF;&#x4EE5;&#x88AB;&#x95DC;&#x806F;&#x5230;&#x4EFB;&#x610F;&#x4E00;&#x7A2E;&#x547D;&#x540D;&#x985E;&#x578B;&#x3002;&#x5728;&#x7B2C;&#x516D;&#x7AE0;&#x6211;&#x5011;&#x6703;&#x8A73;&#x7D30;&#x5730;&#x8B1B;&#x65B9;&#x6CD5;&#x3002;&#x63A5;&#x53E3;&#x662F;&#x4E00;&#x7A2E;&#x62BD;&#x8C61;&#x985E;&#x578B;&#xFF0C;&#x9019;&#x7A2E;&#x985E;&#x578B;&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x4EE5;&#x540C;&#x6A23;&#x7684;&#x65B9;&#x5F0F;&#x4F86;&#x8655;&#x7406;&#x4E0D;&#x540C;&#x7684;&#x56FA;&#x6709;&#x985E;&#x578B;&#xFF0C;&#x4E0D;&#x7528;&#x95DC;&#x5FC3;&#x5B83;&#x5011;&#x7684;&#x5177;&#x9AD4;&#x5BE6;&#x73FE;&#xFF0C;&#x800C;&#x96BB;&#x9700;&#x8981;&#x95DC;&#x8A3B;&#x5B83;&#x5011;&#x63D0;&#x4F9B;&#x7684;&#x65B9;&#x6CD5;&#x3002;&#x7B2C;&#x4E03;&#x7AE0;&#x4E2D;&#x6703;&#x8A73;&#x7D30;&#x8AAC;&#x660E;&#x9019;&#x4E9B;&#x5167;&#x5BB9;&#x3002;</p>
<p><strong>&#x5305;&#xFF08;packages&#xFF09;&#xFF1A;</strong> Go&#x8A9E;&#x8A00;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x4E9B;&#x5F88;&#x597D;&#x7528;&#x7684;package&#xFF0C;&#x4F75;&#x4E14;&#x9019;&#x4E9B;package&#x662F;&#x53EF;&#x4EE5;&#x64F4;&#x5C55;&#x7684;&#x3002;Go&#x8A9E;&#x8A00;&#x793E;&#x5340;&#x5DF2;&#x7D93;&#x5275;&#x9020;&#x4F75;&#x4E14;&#x5206;&#x4EAB;&#x4E86;&#x5F88;&#x591A;&#x5F88;&#x591A;&#x3002;&#x6240;&#x4EE5;Go&#x8A9E;&#x8A00;&#x7DE8;&#x7A0B;&#x5927;&#x591A;&#x6578;&#x60C5;&#x6CC1;&#x4E0B;&#x5C31;&#x662F;&#x7528;&#x5DF2;&#x6709;&#x7684;package&#x4F86;&#x5BEB;&#x6211;&#x5011;&#x81EA;&#x5DF1;&#x7684;&#x4EE3;&#x78BC;&#x3002;&#x901A;&#x904E;&#x9019;&#x672C;&#x66F8;&#xFF0C;&#x6211;&#x5011;&#x6703;&#x8B1B;&#x89E3;&#x4E00;&#x4E9B;&#x91CD;&#x8981;&#x7684;&#x6A19;&#x6E96;&#x5EAB;&#x5167;&#x7684;package&#xFF0C;&#x4F46;&#x662F;&#x9084;&#x662F;&#x6709;&#x5F88;&#x591A;&#x6211;&#x5011;&#x6C92;&#x6709;&#x7BC7;&#x5E45;&#x53BB;&#x8AAC;&#x660E;&#xFF0C;&#x56E0;&#x7232;&#x6211;&#x5011;&#x6C92;&#x6CD5;&#x5728;&#x9019;&#x6A23;&#x7684;&#x539A;&#x5EA6;&#x7684;&#x66F8;&#x91CC;&#x53BB;&#x505A;&#x4E00;&#x90E8;&#x4EE3;&#x78BC;&#x5927;&#x5168;&#x3002;</p>
<p>&#x5728;&#x4F60;&#x958B;&#x59CB;&#x5BEB;&#x4E00;&#x500B;&#x65B0;&#x7A0B;&#x5E8F;&#x4E4B;&#x524D;&#xFF0C;&#x6700;&#x597D;&#x5148;&#x53BB;&#x6AA2;&#x67FB;&#x4E00;&#x4E0B;&#x662F;&#x4E0D;&#x662F;&#x5DF2;&#x7D93;&#x6709;&#x4E86;&#x73FE;&#x6210;&#x7684;&#x5EAB;&#x53EF;&#x4EE5;&#x5E6B;&#x52A9;&#x4F60;&#x66F4;&#x9AD8;&#x6548;&#x5730;&#x5B8C;&#x6210;&#x9019;&#x4EF6;&#x4E8B;&#x60C5;&#x3002;&#x4F60;&#x53EF;&#x4EE5;&#x5728; <a href="https://golang.org/pkg" target="_blank">https://golang.org/pkg</a> &#x548C; <a href="https://godoc.org" target="_blank">https://godoc.org</a> &#x4E2D;&#x627E;&#x5230;&#x6A19;&#x6E96;&#x5EAB;&#x548C;&#x793E;&#x5340;&#x5BEB;&#x7684;package&#x3002;godoc&#x9019;&#x500B;&#x5DE5;&#x5177;&#x53EF;&#x4EE5;&#x8B93;&#x4F60;&#x76F4;&#x63A5;&#x5728;&#x672C;&#x5730;&#x547D;&#x4EE4;&#x884C;&#x95B2;&#x8B80;&#x6A19;&#x6E96;&#x5EAB;&#x7684;&#x6587;&#x6A94;&#x3002;&#x6BD4;&#x5982;&#x4E0B;&#x9762;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x3002;</p>
<pre><code>$ go doc http.ListenAndServe
package http // import &quot;net/http&quot;
func ListenAndServe(addr string, handler Handler) error
ListenAndServe listens on the TCP network address addr and then
calls Serve with handler to handle requests on incoming connections.
...
</code></pre><p>&#x8A3B;&#x91CB;&#xFF1A;&#x6211;&#x5011;&#x4E4B;&#x524D;&#x5DF2;&#x7D93;&#x63D0;&#x5230;&#x904E;&#x4E86;&#x5728;&#x6E90;&#x6587;&#x4EF6;&#x7684;&#x958B;&#x982D;&#x5BEB;&#x7684;&#x8A3B;&#x91CB;&#x662F;&#x9019;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x7684;&#x6587;&#x6A94;&#x3002;&#x5728;&#x6BCF;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x4E4B;&#x524D;&#x5BEB;&#x4E00;&#x500B;&#x8AAC;&#x660E;&#x51FD;&#x6578;&#x884C;&#x7232;&#x7684;&#x8A3B;&#x91CB;&#x4E5F;&#x662F;&#x4E00;&#x500B;&#x597D;&#x7FD2;&#x6163;&#x3002;&#x9019;&#x4E9B;&#x6163;&#x4F8B;&#x5F88;&#x91CD;&#x8981;&#xFF0C;&#x56E0;&#x7232;&#x9019;&#x4E9B;&#x5167;&#x5BB9;&#x6703;&#x88AB;&#x50CF;godoc&#x9019;&#x6A23;&#x7684;&#x5DE5;&#x5177;&#x6AA2;&#x6E2C;&#x5230;&#xFF0C;&#x4F75;&#x4E14;&#x5728;&#x57F7;&#x884C;&#x547D;&#x4EE4;&#x6642;&#x986F;&#x793A;&#x9019;&#x4E9B;&#x8A3B;&#x91CB;&#x3002;&#x5177;&#x9AD4;&#x53EF;&#x4EE5;&#x53C3;&#x8003;10.7.4&#x3002;</p>
<p>&#x591A;&#x884C;&#x8A3B;&#x91CB;&#x53EF;&#x4EE5;&#x7528;/<em> ... </em>/&#x4F86;&#x5305;&#x88F9;&#xFF0C;&#x548C;&#x5176;&#x5B83;&#x5927;&#x591A;&#x6578;&#x8A9E;&#x8A00;&#x4E00;&#x6A23;&#x3002;&#x5728;&#x6587;&#x4EF6;&#x4E00;&#x958B;&#x982D;&#x7684;&#x8A3B;&#x91CB;&#x4E00;&#x822C;&#x90FD;&#x662F;&#x9019;&#x7A2E;&#x5F62;&#x5F0F;&#xFF0C;&#x6216;&#x8005;&#x4E00;&#x5927;&#x6BB5;&#x7684;&#x89E3;&#x91CB;&#x6027;&#x7684;&#x8A3B;&#x91CB;&#x6587;&#x5B57;&#x4E5F;&#x6703;&#x88AB;&#x9019;&#x7B26;&#x865F;&#x5305;&#x4F4F;&#xFF0C;&#x4F86;&#x907F;&#x514D;&#x6BCF;&#x4E00;&#x884C;&#x90FD;&#x9700;&#x8981;&#x52A0;//&#x3002;&#x5728;&#x8A3B;&#x91CB;&#x4E2D;//&#x548C;/*&#x662F;&#x6C92;&#x4EC0;&#x9EBD;&#x610F;&#x7FA9;&#x7684;&#xFF0C;&#x6240;&#x4EE5;&#x4E0D;&#x8981;&#x5728;&#x8A3B;&#x91CB;&#x4E2D;&#x518D;&#x5D4C;&#x5165;&#x8A3B;&#x91CB;&#x3002;</p>
</code></pre><p><strong>&#x8A3B;&#x91CB;&#xFF1A;</strong> &#x6211;&#x5011;&#x4E4B;&#x524D;&#x5DF2;&#x7D93;&#x63D0;&#x5230;&#x904E;&#x4E86;&#x5728;&#x6E90;&#x6587;&#x4EF6;&#x7684;&#x958B;&#x982D;&#x5BEB;&#x7684;&#x8A3B;&#x91CB;&#x662F;&#x9019;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x7684;&#x6587;&#x6A94;&#x3002;&#x5728;&#x6BCF;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x4E4B;&#x524D;&#x5BEB;&#x4E00;&#x500B;&#x8AAC;&#x660E;&#x51FD;&#x6578;&#x884C;&#x7232;&#x7684;&#x8A3B;&#x91CB;&#x4E5F;&#x662F;&#x4E00;&#x500B;&#x597D;&#x7FD2;&#x6163;&#x3002;&#x9019;&#x4E9B;&#x6163;&#x4F8B;&#x5F88;&#x91CD;&#x8981;&#xFF0C;&#x56E0;&#x7232;&#x9019;&#x4E9B;&#x5167;&#x5BB9;&#x6703;&#x88AB;&#x50CF;godoc&#x9019;&#x6A23;&#x7684;&#x5DE5;&#x5177;&#x6AA2;&#x6E2C;&#x5230;&#xFF0C;&#x4F75;&#x4E14;&#x5728;&#x57F7;&#x884C;&#x547D;&#x4EE4;&#x6642;&#x986F;&#x793A;&#x9019;&#x4E9B;&#x8A3B;&#x91CB;&#x3002;&#x5177;&#x9AD4;&#x53EF;&#x4EE5;&#x53C3;&#x8003;10.7.4&#x3002;</p>
<p>&#x591A;&#x884C;&#x8A3B;&#x91CB;&#x53EF;&#x4EE5;&#x7528; <code>/* ... */</code> &#x4F86;&#x5305;&#x88F9;&#xFF0C;&#x548C;&#x5176;&#x5B83;&#x5927;&#x591A;&#x6578;&#x8A9E;&#x8A00;&#x4E00;&#x6A23;&#x3002;&#x5728;&#x6587;&#x4EF6;&#x4E00;&#x958B;&#x982D;&#x7684;&#x8A3B;&#x91CB;&#x4E00;&#x822C;&#x90FD;&#x662F;&#x9019;&#x7A2E;&#x5F62;&#x5F0F;&#xFF0C;&#x6216;&#x8005;&#x4E00;&#x5927;&#x6BB5;&#x7684;&#x89E3;&#x91CB;&#x6027;&#x7684;&#x8A3B;&#x91CB;&#x6587;&#x5B57;&#x4E5F;&#x6703;&#x88AB;&#x9019;&#x7B26;&#x865F;&#x5305;&#x4F4F;&#xFF0C;&#x4F86;&#x907F;&#x514D;&#x6BCF;&#x4E00;&#x884C;&#x90FD;&#x9700;&#x8981;&#x52A0;//&#x3002;&#x5728;&#x8A3B;&#x91CB;&#x4E2D;//&#x548C;/*&#x662F;&#x6C92;&#x4EC0;&#x9EBD;&#x610F;&#x7FA9;&#x7684;&#xFF0C;&#x6240;&#x4EE5;&#x4E0D;&#x8981;&#x5728;&#x8A3B;&#x91CB;&#x4E2D;&#x518D;&#x5D4C;&#x5165;&#x8A3B;&#x91CB;&#x3002;</p>
</section>

View File

@@ -48,7 +48,7 @@
<body>
<div class="book" data-level="1" data-chapter-title="入門" data-filepath="ch1/ch1.md" data-basepath=".." data-revision="Mon Dec 21 2015 12:51:02 GMT+0800 (中国标准时间)">
<div class="book" data-level="1" data-chapter-title="入門" data-filepath="ch1/ch1.md" data-basepath=".." data-revision="Thu Dec 24 2015 14:42:02 GMT+0800 (中国标准时间)">
<div class="book-summary">
@@ -1975,16 +1975,16 @@
</li>
<li class="chapter " data-level="14" data-path="errata.html">
<li class="chapter " data-level="14" data-path="CONTRIBUTORS.html">
<a href="../errata.html">
<a href="../CONTRIBUTORS.html">
<i class="fa fa-check"></i>
<b>14.</b>
勘誤
附録
</a>
@@ -2024,8 +2024,8 @@
<section class="normal" id="section-">
<h1 id="&#x7B2C;1&#x7AE0;-&#x5165;&#x9580;">&#x7B2C;1&#x7AE0; &#x5165;&#x9580;</h1>
<p>&#x672C;&#x7AE0;&#x6703;&#x4ECB;&#x7D39;Go&#x8A9E;&#x8A00;&#x91CC;&#x7684;&#x4E00;&#x4E9B;&#x57FA;&#x672C;&#x7D44;&#x4EF6;&#x3002;&#x6211;&#x5011;&#x5E0C;&#x671B;&#x7528;&#x4FE1;&#x606F;&#x548C;&#x4F8B;&#x5B50;&#x76E1;&#x5FEB;&#x5E36;&#x4F60;&#x5165;&#x9580;&#x3002;&#x672C;&#x7AE0;&#x548C;&#x4E4B;&#x5F8C;&#x7AE0;&#x7BC0;&#x7684;&#x4F8B;&#x5B50;&#x90FD;&#x662F;&#x91DD;&#x5C0D;&#x771E;&#x5BE6;&#x7684;&#x958B;&#x767C;&#x6848;&#x4F8B;&#x7D66;&#x9F63;&#x3002;&#x672C;&#x7AE0;&#x6211;&#x5011;&#x96BB;&#x662F;&#x7C21;&#x55AE;&#x5730;&#x7232;&#x4F60;&#x4ECB;&#x7D39;&#x4E00;&#x4E9B;Go&#x7684;&#x5165;&#x9580;&#x4F8B;&#x5B50;&#xFF0C;&#x5F9E;&#x7C21;&#x55AE;&#x7684;&#x6587;&#x4EF6;&#x8655;&#x7406;&#x3001;&#x5716;&#x50CF;&#x8655;&#x7406;&#x5230;&#x4E92;&#x806F;&#x7DB2;&#x4F75;&#x767C;&#x5BA2;&#x6236;&#x7AEF;&#x548C;&#x670D;&#x52D9;&#x7AEF;&#x7A0B;&#x5E8F;&#x3002;&#x7576;&#x7136;&#xFF0C;&#x5728;&#x7B2C;&#x4E00;&#x7AE0;&#x6211;&#x5011;&#x4E0D;&#x6703;&#x8A73;&#x76E1;&#x5730;&#x4E00;&#x4E00;&#x53BB;&#x8AAC;&#x660E;&#x7D30;&#x679D;&#x672B;&#x7BC0;&#xFF0C;&#x4E0D;&#x904E;&#x7528;&#x9019;&#x4E9B;&#x7A0B;&#x5E8F;&#x4F86;&#x5B78;&#x7FD2;&#x4E00;&#x9580;&#x65B0;&#x8A9E;&#x8A00;&#x80AF;&#x5B9A;&#x662F;&#x5F88;&#x6709;&#x6548;&#x7684;&#x3002;
&#x7576;&#x4F60;&#x5B78;&#x7FD2;&#x4E00;&#x9580;&#x65B0;&#x8A9E;&#x8A00;&#x6642;&#xFF0C;&#x4F60;&#x6703;&#x6709;&#x53BB;&#x7528;&#x9019;&#x9580;&#x65B0;&#x8A9E;&#x8A00;&#x53BB;&#x91CD;&#x5BEB;&#x81EA;&#x5DF1;&#x4EE5;&#x524D;&#x719F;&#x6089;&#x8A9E;&#x8A00;&#x4F8B;&#x5B50;&#x7684;&#x50BE;&#x5411;&#x3002;&#x5728;&#x5B78;&#x7FD2;Go&#x7684;&#x904E;&#x7A0B;&#x4E2D;&#xFF0C;&#x76E1;&#x91CF;&#x907F;&#x514D;&#x9019;&#x9EBD;&#x505A;&#x3002;&#x6211;&#x5011;&#x6703;&#x5411;&#x4F60;&#x6F14;&#x793A;&#x5982;&#x4F55;&#x7E94;&#x80FD;&#x5BEB;&#x9F63;&#x597D;&#x7684;Go&#x7A0B;&#x5E8F;&#xFF0C;&#x6240;&#x4EE5;&#x8ACB;&#x4F7F;&#x7528;&#x9019;&#x91CC;&#x7684;&#x4EE3;&#x78BC;&#x4F5C;&#x7232;&#x4F60;&#x5BEB;&#x81EA;&#x5DF1;&#x7684;Go&#x7A0B;&#x5E8F;&#x6642;&#x7684;&#x6307;&#x5357;&#x3002;</p>
<p>&#x672C;&#x7AE0;&#x6703;&#x4ECB;&#x7D39;Go&#x8A9E;&#x8A00;&#x91CC;&#x7684;&#x4E00;&#x4E9B;&#x57FA;&#x672C;&#x7D44;&#x4EF6;&#x3002;&#x6211;&#x5011;&#x5E0C;&#x671B;&#x7528;&#x4FE1;&#x606F;&#x548C;&#x4F8B;&#x5B50;&#x76E1;&#x5FEB;&#x5E36;&#x4F60;&#x5165;&#x9580;&#x3002;&#x672C;&#x7AE0;&#x548C;&#x4E4B;&#x5F8C;&#x7AE0;&#x7BC0;&#x7684;&#x4F8B;&#x5B50;&#x90FD;&#x662F;&#x91DD;&#x5C0D;&#x771E;&#x5BE6;&#x7684;&#x958B;&#x767C;&#x6848;&#x4F8B;&#x7D66;&#x9F63;&#x3002;&#x672C;&#x7AE0;&#x6211;&#x5011;&#x96BB;&#x662F;&#x7C21;&#x55AE;&#x5730;&#x7232;&#x4F60;&#x4ECB;&#x7D39;&#x4E00;&#x4E9B;Go&#x8A9E;&#x8A00;&#x7684;&#x5165;&#x9580;&#x4F8B;&#x5B50;&#xFF0C;&#x5F9E;&#x7C21;&#x55AE;&#x7684;&#x6587;&#x4EF6;&#x8655;&#x7406;&#x3001;&#x5716;&#x50CF;&#x8655;&#x7406;&#x5230;&#x4E92;&#x806F;&#x7DB2;&#x4F75;&#x767C;&#x5BA2;&#x6236;&#x7AEF;&#x548C;&#x670D;&#x52D9;&#x7AEF;&#x7A0B;&#x5E8F;&#x3002;&#x7576;&#x7136;&#xFF0C;&#x5728;&#x7B2C;&#x4E00;&#x7AE0;&#x6211;&#x5011;&#x4E0D;&#x6703;&#x8A73;&#x76E1;&#x5730;&#x4E00;&#x4E00;&#x53BB;&#x8AAC;&#x660E;&#x7D30;&#x679D;&#x672B;&#x7BC0;&#xFF0C;&#x4E0D;&#x904E;&#x7528;&#x9019;&#x4E9B;&#x7A0B;&#x5E8F;&#x4F86;&#x5B78;&#x7FD2;&#x4E00;&#x9580;&#x65B0;&#x8A9E;&#x8A00;&#x80AF;&#x5B9A;&#x662F;&#x5F88;&#x6709;&#x6548;&#x7684;&#x3002;</p>
<p>&#x7576;&#x4F60;&#x5B78;&#x7FD2;&#x4E00;&#x9580;&#x65B0;&#x8A9E;&#x8A00;&#x6642;&#xFF0C;&#x4F60;&#x6703;&#x7528;&#x9019;&#x9580;&#x65B0;&#x8A9E;&#x8A00;&#x53BB;&#x91CD;&#x5BEB;&#x81EA;&#x5DF1;&#x4EE5;&#x524D;&#x719F;&#x6089;&#x8A9E;&#x8A00;&#x4F8B;&#x5B50;&#x7684;&#x50BE;&#x5411;&#x3002;&#x5728;&#x5B78;&#x7FD2;Go&#x8A9E;&#x8A00;&#x7684;&#x904E;&#x7A0B;&#x4E2D;&#xFF0C;&#x76E1;&#x91CF;&#x907F;&#x514D;&#x9019;&#x9EBD;&#x505A;&#x3002;&#x6211;&#x5011;&#x6703;&#x5411;&#x4F60;&#x6F14;&#x793A;&#x5982;&#x4F55;&#x7E94;&#x80FD;&#x5BEB;&#x9F63;&#x597D;&#x7684;Go&#x8A9E;&#x8A00;&#x7A0B;&#x5E8F;&#xFF0C;&#x6240;&#x4EE5;&#x8ACB;&#x4F7F;&#x7528;&#x9019;&#x91CC;&#x7684;&#x4EE3;&#x78BC;&#x4F5C;&#x7232;&#x4F60;&#x5BEB;&#x81EA;&#x5DF1;&#x7684;Go&#x7A0B;&#x5E8F;&#x6642;&#x7684;&#x6307;&#x5357;&#x3002;</p>
</section>