This commit is contained in:
chai2010
2015-12-28 16:08:26 +08:00
parent 35b11c0ff4
commit 775502e64d
206 changed files with 2064 additions and 1460 deletions

View File

@@ -21,6 +21,10 @@
<link rel="stylesheet" href="../gitbook/style.css">
<link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-katex/katex.min.css">
<link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-highlight/website.css">
@@ -44,7 +48,7 @@
<body>
<div class="book" data-level="11.2" data-chapter-title="測試函數" data-filepath="ch11/ch11-02.md" data-basepath=".." data-revision="Fri Dec 25 2015 12:32:44 GMT+0800 (中国标准时间)">
<div class="book" data-level="11.2" data-chapter-title="測試函數" data-filepath="ch11/ch11-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)">
<div class="book-summary">
@@ -238,7 +242,7 @@
<b>1.5.</b>
取URL
取URL
</a>
@@ -253,7 +257,7 @@
<b>1.6.</b>
併發取多個URL
併發取多個URL
</a>
@@ -802,7 +806,7 @@
<b>5.10.</b>
Recover捕異常
Recover捕異常
</a>
@@ -1315,7 +1319,7 @@
<b>8.9.</b>
併發的退
併發的退
</a>
@@ -1834,7 +1838,7 @@
<b>12.7.</b>
取結構體字段標識
取結構體字段標識
</a>
@@ -2046,7 +2050,7 @@
<span class="hljs-keyword">return</span> <span class="hljs-constant">true</span>
}
</code></pre>
<p>&#x5728;&#x76F8;&#x540C;&#x7684;&#x76EE;&#x9332;&#x4E0B;, word_test.go &#x6587;&#x4EF6;&#x5305;&#x542B;&#x4E86; TestPalindrome &#x548C; TestNonPalindrome &#x5169;&#x500B;&#x6E2C;&#x8A66;&#x51FD;&#x6578;. &#x6BCF;&#x4E00;&#x500B;&#x90FD;&#x662F;&#x6E2C;&#x8A66; IsPalindrome &#x662F;&#x5426;&#x7D66;&#x9F63;&#x6B63;&#x78BA;&#x7684;&#x7D50;&#x679C;, &#x4F75;&#x4F7F;&#x7528; t.Error &#x5831;&#x544A;&#x5931;&#x6557;:</p>
<p>&#x5728;&#x76F8;&#x540C;&#x7684;&#x76EE;&#x9332;&#x4E0B;, word_test.go &#x6587;&#x4EF6;&#x5305;&#x542B;&#x4E86; TestPalindrome &#x548C; TestNonPalindrome &#x5169;&#x500B;&#x6E2C;&#x8A66;&#x51FD;&#x6578;. &#x6BCF;&#x4E00;&#x500B;&#x90FD;&#x662F;&#x6E2C;&#x8A66; IsPalindrome &#x662F;&#x5426;&#x7D66;&#x51FA;&#x6B63;&#x78BA;&#x7684;&#x7D50;&#x679C;, &#x4F75;&#x4F7F;&#x7528; t.Error &#x5831;&#x544A;&#x5931;&#x6557;:</p>
<pre><code class="lang-Go"><span class="hljs-keyword">package</span> word
<span class="hljs-keyword">import</span> <span class="hljs-string">&quot;testing&quot;</span>
@@ -2070,7 +2074,7 @@
<pre><code>$ cd $GOPATH/src/gopl.io/ch11/word1
$ go test
ok gopl.io/ch11/word1 0.008s
</code></pre><p>&#x9084;&#x6BD4;&#x8F03;&#x6EFF;&#x610F;, &#x6211;&#x5011;&#x904B;&#x884C;&#x4E86;&#x9019;&#x500B;&#x7A0B;&#x5E8F;, &#x4E0D;&#x904E;&#x6C92;&#x6709;&#x63D0;&#x524D;&#x9000;&#x9F63;&#x662F;&#x56E0;&#x7232;&#x9084;&#x6C92;&#x6709;&#x9047;&#x5230;BUG&#x5831;&#x544A;. &#x4E00;&#x500B;&#x6CD5;&#x570B;&#x540D;&#x7232; Noelle Eve Elleon &#x7684;&#x7528;&#x6236;&#x62B1;&#x6028; IsPalindrome &#x51FD;&#x6578;&#x4E0D;&#x80FD;&#x8B58;&#x522B; &#x2018;&#x2018;&#xE9;t&#xE9;.&#x2019;&#x2019;. &#x53E6;&#x5916;&#x4E00;&#x500B;&#x4F86;&#x81EA;&#x7F8E;&#x570B;&#x4E2D;&#x90E8;&#x7528;&#x6236;&#x7684;&#x62B1;&#x6028;&#x662F;&#x4E0D;&#x80FD;&#x8B58;&#x522B; &#x2018;&#x2018;A man, a plan, a canal: Panama.&#x2019;&#x2019;. &#x57F7;&#x884C;&#x7279;&#x6B8A;&#x548C;&#x5C0F;&#x7684;BUG&#x5831;&#x544A;&#x7232;&#x6211;&#x5011;&#x63D0;&#x4F9B;&#x4E86;&#x65B0;&#x7684;&#x66F4;&#x81EA;&#x7136;&#x7684;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;.</p>
</code></pre><p>&#x9084;&#x6BD4;&#x8F03;&#x6EFF;&#x610F;, &#x6211;&#x5011;&#x904B;&#x884C;&#x4E86;&#x9019;&#x500B;&#x7A0B;&#x5E8F;, &#x4E0D;&#x904E;&#x6C92;&#x6709;&#x63D0;&#x524D;&#x9000;&#x51FA;&#x662F;&#x56E0;&#x7232;&#x9084;&#x6C92;&#x6709;&#x9047;&#x5230;BUG&#x5831;&#x544A;. &#x4E00;&#x500B;&#x6CD5;&#x56FD;&#x540D;&#x7232; Noelle Eve Elleon &#x7684;&#x7528;&#x6236;&#x62B1;&#x6028; IsPalindrome &#x51FD;&#x6578;&#x4E0D;&#x80FD;&#x8B58;&#x522B; &#x2018;&#x2018;&#xE9;t&#xE9;.&#x2019;&#x2019;. &#x53E6;&#x5916;&#x4E00;&#x500B;&#x4F86;&#x81EA;&#x7F8E;&#x56FD;&#x4E2D;&#x90E8;&#x7528;&#x6236;&#x7684;&#x62B1;&#x6028;&#x662F;&#x4E0D;&#x80FD;&#x8B58;&#x522B; &#x2018;&#x2018;A man, a plan, a canal: Panama.&#x2019;&#x2019;. &#x57F7;&#x884C;&#x7279;&#x6B8A;&#x548C;&#x5C0F;&#x7684;BUG&#x5831;&#x544A;&#x7232;&#x6211;&#x5011;&#x63D0;&#x4F9B;&#x4E86;&#x65B0;&#x7684;&#x66F4;&#x81EA;&#x7136;&#x7684;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;.</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> TestFrenchPalindrome(t *testing.T) {
<span class="hljs-keyword">if</span> !IsPalindrome(<span class="hljs-string">&quot;&#xE9;t&#xE9;&quot;</span>) {
t.Error(<span class="hljs-string">`IsPalindrome(&quot;&#xE9;t&#xE9;&quot;) = false`</span>)
@@ -2093,7 +2097,7 @@ ok gopl.io/ch11/word1 0.008s
word_test.go:35: IsPalindrome(&quot;A man, a plan, a canal: Panama&quot;) = false
FAIL
FAIL gopl.io/ch11/word1 0.014s
</code></pre><p>&#x5148;&#x7DE8;&#x5BEB;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#x4F75;&#x89C0;&#x5BDF;&#x5230;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#x89F8;&#x767C;&#x4E86;&#x548C;&#x7528;&#x6236;&#x5831;&#x544A;&#x7684;&#x932F;&#x8AA4;&#x76F8;&#x540C;&#x7684;&#x63CF;&#x8FF0;&#x662F;&#x4E00;&#x500B;&#x597D;&#x7684;&#x6E2C;&#x8A66;&#x7FD2;&#x6163;. &#x96BB;&#x6709;&#x9019;&#x6A23;, &#x6211;&#x5011;&#x7E94;&#x80FD;&#x5B9A;&#x4F4D;&#x6211;&#x5011;&#x8981;&#x771E;&#x6B63;&#x89E3;&#x6C7A;&#x7684;&#x554F;&#x984C;.</p>
</code></pre><p>&#x5148;&#x7DE8;&#x5BEB;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#x4F75;&#x89C0;&#x5BDF;&#x5230;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#x89F8;&#x767C;&#x4E86;&#x548C;&#x7528;&#x6236;&#x5831;&#x544A;&#x7684;&#x932F;&#x8AA4;&#x76F8;&#x540C;&#x7684;&#x63CF;&#x8FF0;&#x662F;&#x4E00;&#x500B;&#x597D;&#x7684;&#x6E2C;&#x8A66;&#x7FD2;&#x6163;. &#x96BB;&#x6709;&#x9019;&#x6A23;, &#x6211;&#x5011;&#x624D;&#x80FD;&#x5B9A;&#x4F4D;&#x6211;&#x5011;&#x8981;&#x771E;&#x6B63;&#x89E3;&#x6C7A;&#x7684;&#x554F;&#x984C;.</p>
<p>&#x5148;&#x5BEB;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#x7684;&#x53E6;&#x597D;&#x8655;&#x662F;, &#x904B;&#x884C;&#x6E2C;&#x8A66;&#x901A;&#x5E38;&#x6703;&#x6BD4;&#x624B;&#x5DE5;&#x63CF;&#x8FF0;&#x5831;&#x544A;&#x7684;&#x8655;&#x7406;&#x66F4;&#x5FEB;, &#x9019;&#x8B93;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x9032;&#x884C;&#x5FEB;&#x901F;&#x5730;&#x8FED;&#x4EE3;. &#x5982;&#x679C;&#x6E2C;&#x8A66;&#x96C6;&#x6709;&#x5F88;&#x591A;&#x904B;&#x884C;&#x7DE9;&#x6162;&#x7684;&#x6E2C;&#x8A66;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x96BB;&#x9078;&#x64C7;&#x904B;&#x884C;&#x67D0;&#x4E9B;&#x7279;&#x5B9A;&#x7684;&#x6E2C;&#x8A66;&#x4F86;&#x52A0;&#x5FEB;&#x6E2C;&#x8A66;&#x901F;&#x5EA6;.</p>
<p>&#x53C3;&#x6578; <code>-v</code> &#x7528;&#x65BC;&#x6253;&#x5370;&#x6BCF;&#x500B;&#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x7684;&#x540D;&#x5B57;&#x548C;&#x904B;&#x884C;&#x6642;&#x9593;:</p>
<pre><code>$ go test -v
@@ -2110,7 +2114,7 @@ FAIL gopl.io/ch11/word1 0.014s
FAIL
exit status 1
FAIL gopl.io/ch11/word1 0.017s
</code></pre><p>&#x53C3;&#x6578; <code>-run</code> &#x662F;&#x4E00;&#x500B;&#x6B63;&#x5247;&#x8868;&#x9054;&#x5F0F;, &#x96BB;&#x6709;&#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x540D;&#x88AB;&#x5B83;&#x6B63;&#x78BA;&#x5339;&#x914D;&#x7684;&#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x7E94;&#x6703;&#x88AB; <code>go test</code> &#x904B;&#x884C;:</p>
</code></pre><p>&#x53C3;&#x6578; <code>-run</code> &#x662F;&#x4E00;&#x500B;&#x6B63;&#x5247;&#x8868;&#x9054;&#x5F0F;, &#x96BB;&#x6709;&#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x540D;&#x88AB;&#x5B83;&#x6B63;&#x78BA;&#x5339;&#x914D;&#x7684;&#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x624D;&#x6703;&#x88AB; <code>go test</code> &#x904B;&#x884C;:</p>
<pre><code>$ go test -v -run=&quot;French|Canal&quot;
=== RUN TestFrenchPalindrome
--- FAIL: TestFrenchPalindrome (0.00s)
@@ -2178,14 +2182,14 @@ FAIL gopl.io/ch11/word1 0.014s
<pre><code>$ go test gopl.io/ch11/word2
ok gopl.io/ch11/word2 0.015s
</code></pre><p>&#x9019;&#x7A2E;&#x8868;&#x683C;&#x9A45;&#x52D5;&#x7684;&#x6E2C;&#x8A66;&#x5728;Go&#x4E2D;&#x5F88;&#x5E38;&#x898B;&#x7684;. &#x6211;&#x5011;&#x5F88;&#x5BB9;&#x6613;&#x60F3;&#x8868;&#x683C;&#x6DFB;&#x52A0;&#x65B0;&#x7684;&#x6E2C;&#x8A66;&#x6578;&#x64DA;, &#x4F75;&#x4E14;&#x5F8C;&#x9762;&#x7684;&#x6E2C;&#x8A66;&#x908F;&#x8F2F;&#x4E5F;&#x6C92;&#x6709;&#x5197;&#x9918;, &#x9019;&#x6A23;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x66F4;&#x597D;&#x5730;&#x5B8C;&#x5584;&#x932F;&#x8AA4;&#x4FE1;&#x606F;.</p>
<p>&#x5931;&#x6557;&#x7684;&#x6E2C;&#x8A66;&#x7684;&#x8F38;&#x9F63;&#x4F75;&#x4E0D;&#x5305;&#x62EC;&#x8ABF;&#x7528; t.Errorf &#x6642;&#x523B;&#x7684;&#x5806;&#x68E7;&#x8ABF;&#x7528;&#x4FE1;&#x606F;. &#x4E0D;&#x50CF;&#x5176;&#x4ED6;&#x8A9E;&#x8A00;&#x6216;&#x6E2C;&#x8A66;&#x6846;&#x67B6;&#x7684; assert &#x65B7;&#x8A00;, t.Errorf &#x8ABF;&#x7528;&#x4E5F;&#x6C92;&#x6709;&#x5F15;&#x8D77; panic &#x6216;&#x505C;&#x6B62;&#x6E2C;&#x8A66;&#x7684;&#x57F7;&#x884C;. &#x537D;&#x4F7F;&#x8868;&#x683C;&#x4E2D;&#x524D;&#x9762;&#x7684;&#x6578;&#x64DA;&#x5C0E;&#x81F4;&#x4E86;&#x6E2C;&#x8A66;&#x7684;&#x5931;&#x6557;, &#x8868;&#x683C;&#x5F8C;&#x9762;&#x7684;&#x6E2C;&#x8A66;&#x6578;&#x64DA;&#x4F9D;&#x7136;&#x6703;&#x904B;&#x884C;&#x6E2C;&#x8A66;, &#x56E0;&#x6B64;&#x5728;&#x4E00;&#x500B;&#x6E2C;&#x8A66;&#x4E2D;&#x6211;&#x5011;&#x53EF;&#x80FD;&#x4E86;&#x89E3;&#x591A;&#x500B;&#x5931;&#x6557;&#x7684;&#x4FE1;&#x606F;.</p>
<p>&#x5931;&#x6557;&#x7684;&#x6E2C;&#x8A66;&#x7684;&#x8F38;&#x51FA;&#x4F75;&#x4E0D;&#x5305;&#x62EC;&#x8ABF;&#x7528; t.Errorf &#x6642;&#x523B;&#x7684;&#x5806;&#x68E7;&#x8ABF;&#x7528;&#x4FE1;&#x606F;. &#x4E0D;&#x50CF;&#x5176;&#x4ED6;&#x8A9E;&#x8A00;&#x6216;&#x6E2C;&#x8A66;&#x6846;&#x67B6;&#x7684; assert &#x65B7;&#x8A00;, t.Errorf &#x8ABF;&#x7528;&#x4E5F;&#x6C92;&#x6709;&#x5F15;&#x8D77; panic &#x6216;&#x505C;&#x6B62;&#x6E2C;&#x8A66;&#x7684;&#x57F7;&#x884C;. &#x537D;&#x4F7F;&#x8868;&#x683C;&#x4E2D;&#x524D;&#x9762;&#x7684;&#x6578;&#x64DA;&#x5C0E;&#x81F4;&#x4E86;&#x6E2C;&#x8A66;&#x7684;&#x5931;&#x6557;, &#x8868;&#x683C;&#x5F8C;&#x9762;&#x7684;&#x6E2C;&#x8A66;&#x6578;&#x64DA;&#x4F9D;&#x7136;&#x6703;&#x904B;&#x884C;&#x6E2C;&#x8A66;, &#x56E0;&#x6B64;&#x5728;&#x4E00;&#x500B;&#x6E2C;&#x8A66;&#x4E2D;&#x6211;&#x5011;&#x53EF;&#x80FD;&#x4E86;&#x89E3;&#x591A;&#x500B;&#x5931;&#x6557;&#x7684;&#x4FE1;&#x606F;.</p>
<p>&#x5982;&#x679C;&#x6211;&#x5011;&#x771E;&#x7684;&#x9700;&#x8981;&#x505C;&#x6B62;&#x6E2C;&#x8A66;, &#x6216;&#x8A31;&#x662F;&#x56E0;&#x7232;&#x521D;&#x59CB;&#x5316;&#x5931;&#x6557;&#x6216;&#x53EF;&#x80FD;&#x662F;&#x65E9;&#x5148;&#x7684;&#x932F;&#x8AA4;&#x5C0E;&#x81F4;&#x4E86;&#x5F8C;&#x7E8C;&#x932F;&#x8AA4;&#x7B49;&#x539F;&#x56E0;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; t.Fatal &#x6216; t.Fatalf &#x505C;&#x6B62;&#x6E2C;&#x8A66;. &#x5B83;&#x5011;&#x5FC5;&#x9B1A;&#x5728;&#x548C;&#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x540C;&#x4E00;&#x500B; goroutine &#x5167;&#x8ABF;&#x7528;.</p>
<p>&#x6E2C;&#x8A66;&#x5931;&#x6557;&#x7684;&#x4FE1;&#x606F;&#x4E00;&#x822C;&#x7684;&#x5F62;&#x5F0F;&#x662F; &quot;f(x) = y, want z&quot;, f(x) &#x89E3;&#x91CB;&#x4E86;&#x5931;&#x6557;&#x7684;&#x64CD;&#x4F5C;&#x548C;&#x5C0D;&#x61C9;&#x7684;&#x8F38;&#x9F63;, y &#x662F;&#x5BE6;&#x969B;&#x7684;&#x904B;&#x884C;&#x7D50;&#x679C;, z &#x662F;&#x671F;&#x671B;&#x7684;&#x6B63;&#x78BA;&#x7684;&#x7D50;&#x679C;. &#x5C31;&#x50CF;&#x524D;&#x9762;&#x6AA2;&#x67FB;&#x8FF4;&#x6587;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x4F8B;&#x5B50;, &#x5BE6;&#x969B;&#x7684;&#x51FD;&#x6578;&#x7528;&#x65BC; f(x) &#x90E8;&#x5206;. &#x5982;&#x679C;&#x986F;&#x793A; x &#x662F;&#x8868;&#x683C;&#x9A45;&#x52D5;&#x578B;&#x6E2C;&#x8A66;&#x4E2D;&#x6BD4;&#x8F03;&#x91CD;&#x8981;&#x7684;&#x90E8;&#x5206;, &#x56E0;&#x7232;&#x540C;&#x4E00;&#x500B;&#x65B7;&#x8A00;&#x53EF;&#x80FD;&#x5C0D;&#x61C9;&#x4E0D;&#x540C;&#x7684;&#x8868;&#x683C;&#x9805;&#x57F7;&#x884C;&#x591A;&#x6B21;. &#x8981;&#x907F;&#x514D;&#x7121;&#x7528;&#x548C;&#x5197;&#x9918;&#x7684;&#x4FE1;&#x606F;. &#x5728;&#x6E2C;&#x8A66;&#x985E;&#x4F3C; IsPalindrome &#x8FD4;&#x8FF4;&#x5E03;&#x723E;&#x985E;&#x578B;&#x7684;&#x51FD;&#x6578;&#x6642;, &#x53EF;&#x4EE5;&#x5FFD;&#x7565;&#x4F75;&#x6C92;&#x6709;&#x984D;&#x5916;&#x4FE1;&#x606F;&#x7684; z &#x90E8;&#x5206;. &#x5982;&#x679C; x, y &#x6216; z &#x662F; y &#x7684;&#x9577;&#x5EA6;, &#x8F38;&#x9F63;&#x4E00;&#x500B;&#x76F8;&#x95DC;&#x90E8;&#x5206;&#x7684;&#x7C21;&#x660E;&#x7E3D;&#x7D50;&#x537D;&#x53EF;. &#x6E2C;&#x8A66;&#x7684;&#x4F5C;&#x8005;&#x61C9;&#x8A72;&#x8981;&#x52AA;&#x529B;&#x5E6B;&#x52A9;&#x7A0B;&#x5E8F;&#x54E1;&#x8A3A;&#x65B7;&#x5931;&#x6557;&#x7684;&#x6E2C;&#x8A66;.</p>
<p>&#x6E2C;&#x8A66;&#x5931;&#x6557;&#x7684;&#x4FE1;&#x606F;&#x4E00;&#x822C;&#x7684;&#x5F62;&#x5F0F;&#x662F; &quot;f(x) = y, want z&quot;, f(x) &#x89E3;&#x91CB;&#x4E86;&#x5931;&#x6557;&#x7684;&#x64CD;&#x4F5C;&#x548C;&#x5C0D;&#x61C9;&#x7684;&#x8F38;&#x51FA;, y &#x662F;&#x5BE6;&#x969B;&#x7684;&#x904B;&#x884C;&#x7D50;&#x679C;, z &#x662F;&#x671F;&#x671B;&#x7684;&#x6B63;&#x78BA;&#x7684;&#x7D50;&#x679C;. &#x5C31;&#x50CF;&#x524D;&#x9762;&#x6AA2;&#x67FB;&#x8FF4;&#x6587;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x4F8B;&#x5B50;, &#x5BE6;&#x969B;&#x7684;&#x51FD;&#x6578;&#x7528;&#x65BC; f(x) &#x90E8;&#x5206;. &#x5982;&#x679C;&#x986F;&#x793A; x &#x662F;&#x8868;&#x683C;&#x9A45;&#x52D5;&#x578B;&#x6E2C;&#x8A66;&#x4E2D;&#x6BD4;&#x8F03;&#x91CD;&#x8981;&#x7684;&#x90E8;&#x5206;, &#x56E0;&#x7232;&#x540C;&#x4E00;&#x500B;&#x65B7;&#x8A00;&#x53EF;&#x80FD;&#x5C0D;&#x61C9;&#x4E0D;&#x540C;&#x7684;&#x8868;&#x683C;&#x9805;&#x57F7;&#x884C;&#x591A;&#x6B21;. &#x8981;&#x907F;&#x514D;&#x7121;&#x7528;&#x548C;&#x5197;&#x9918;&#x7684;&#x4FE1;&#x606F;. &#x5728;&#x6E2C;&#x8A66;&#x985E;&#x4F3C; IsPalindrome &#x8FD4;&#x8FF4;&#x5E03;&#x723E;&#x985E;&#x578B;&#x7684;&#x51FD;&#x6578;&#x6642;, &#x53EF;&#x4EE5;&#x5FFD;&#x7565;&#x4F75;&#x6C92;&#x6709;&#x984D;&#x5916;&#x4FE1;&#x606F;&#x7684; z &#x90E8;&#x5206;. &#x5982;&#x679C; x, y &#x6216; z &#x662F; y &#x7684;&#x9577;&#x5EA6;, &#x8F38;&#x51FA;&#x4E00;&#x500B;&#x76F8;&#x95DC;&#x90E8;&#x5206;&#x7684;&#x7C21;&#x660E;&#x7E3D;&#x7D50;&#x537D;&#x53EF;. &#x6E2C;&#x8A66;&#x7684;&#x4F5C;&#x8005;&#x61C9;&#x8A72;&#x8981;&#x52AA;&#x529B;&#x5E6B;&#x52A9;&#x7A0B;&#x5E8F;&#x54E1;&#x8A3A;&#x65B7;&#x5931;&#x6557;&#x7684;&#x6E2C;&#x8A66;.</p>
<p><strong>&#x7DF4;&#x7FD2; 11.1:</strong> &#x7232; 4.3&#x7BC0; &#x4E2D;&#x7684; charcount &#x7A0B;&#x5E8F;&#x7DE8;&#x5BEB;&#x6E2C;&#x8A66;.</p>
<p><strong>&#x7DF4;&#x7FD2; 11.2:</strong> &#x7232; (&#xA7;6.5)&#x7684; IntSet &#x7DE8;&#x5BEB;&#x4E00;&#x7D44;&#x6E2C;&#x8A66;, &#x7528;&#x65BC;&#x6AA2;&#x67FB;&#x6BCF;&#x500B;&#x64CD;&#x4F5C;&#x5F8C;&#x7684;&#x884C;&#x7232;&#x548C;&#x57FA;&#x65BC;&#x5167;&#x7F6E; map &#x7684;&#x96C6;&#x5408;&#x7B49;&#x50F9; , &#x5F8C;&#x9762; &#x7DF4;&#x7FD2;11.7 &#x5C07;&#x6703;&#x7528;&#x5230;.</p>
<h3 id="1121-&#x96A8;&#x6A5F;&#x6E2C;&#x8A66;">11.2.1. &#x96A8;&#x6A5F;&#x6E2C;&#x8A66;</h3>
<p>&#x8868;&#x683C;&#x9A45;&#x52D5;&#x7684;&#x6E2C;&#x8A66;&#x4FBF;&#x65BC;&#x69CB;&#x9020;&#x57FA;&#x65BC;&#x7CBE;&#x5FC3;&#x6311;&#x9078;&#x7684;&#x6E2C;&#x8A66;&#x6578;&#x64DA;&#x7684;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;. &#x53E6;&#x4E00;&#x7A2E;&#x6E2C;&#x8A66;&#x601D;&#x8DEF;&#x662F;&#x96A8;&#x6A5F;&#x6E2C;&#x8A66;, &#x4E5F;&#x5C31;&#x662F;&#x901A;&#x904E;&#x69CB;&#x9020;&#x66F4;&#x5EE3;&#x6CDB;&#x7684;&#x96A8;&#x6A5F;&#x8F38;&#x5165;&#x4F86;&#x6E2C;&#x8A66;&#x63A2;&#x7D22;&#x51FD;&#x6578;&#x7684;&#x884C;&#x7232;.</p>
<p>&#x90A3;&#x9EBD;&#x5C0D;&#x65BC;&#x4E00;&#x500B;&#x96A8;&#x6A5F;&#x7684;&#x8F38;&#x5165;, &#x6211;&#x5011;&#x5982;&#x4F55;&#x80FD;&#x77E5;&#x9053;&#x5E0C;&#x671B;&#x7684;&#x8F38;&#x9F63;&#x7D50;&#x679C;&#x5462;? &#x9019;&#x91CC;&#x6709;&#x5169;&#x7A2E;&#x7B56;&#x7565;. &#x7B2C;&#x4E00;&#x500B;&#x662F;&#x7DE8;&#x5BEB;&#x53E6;&#x4E00;&#x500B;&#x51FD;&#x6578;, &#x4F7F;&#x7528;&#x7C21;&#x55AE;&#x548C;&#x6E05;&#x6670;&#x7684;&#x7B97;&#x6CD5;, &#x96D6;&#x7136;&#x6548;&#x7387;&#x8F03;&#x4F4E;&#x4F46;&#x662F;&#x884C;&#x7232;&#x548C;&#x8981;&#x6E2C;&#x8A66;&#x7684;&#x51FD;&#x6578;&#x4E00;&#x81F4;, &#x7136;&#x5F8C;&#x91DD;&#x5C0D;&#x76F8;&#x540C;&#x7684;&#x96A8;&#x6A5F;&#x8F38;&#x5165;&#x6AA2;&#x67FB;&#x5169;&#x8005;&#x7684;&#x8F38;&#x9F63;&#x7D50;&#x679C;. &#x7B2C;&#x4E8C;&#x7A2E;&#x662F;&#x751F;&#x6210;&#x7684;&#x96A8;&#x6A5F;&#x8F38;&#x5165;&#x7684;&#x6578;&#x64DA;&#x9075;&#x5FAA;&#x7279;&#x5B9A;&#x7684;&#x6A21;&#x5F0F;, &#x9019;&#x6A23;&#x6211;&#x5011;&#x5C31;&#x53EF;&#x4EE5;&#x77E5;&#x9053;&#x671F;&#x671B;&#x7684;&#x8F38;&#x9F63;&#x7684;&#x6A21;&#x5F0F;.</p>
<p>&#x90A3;&#x9EBD;&#x5C0D;&#x65BC;&#x4E00;&#x500B;&#x96A8;&#x6A5F;&#x7684;&#x8F38;&#x5165;, &#x6211;&#x5011;&#x5982;&#x4F55;&#x80FD;&#x77E5;&#x9053;&#x5E0C;&#x671B;&#x7684;&#x8F38;&#x51FA;&#x7D50;&#x679C;&#x5462;? &#x9019;&#x91CC;&#x6709;&#x5169;&#x7A2E;&#x7B56;&#x7565;. &#x7B2C;&#x4E00;&#x500B;&#x662F;&#x7DE8;&#x5BEB;&#x53E6;&#x4E00;&#x500B;&#x51FD;&#x6578;, &#x4F7F;&#x7528;&#x7C21;&#x55AE;&#x548C;&#x6E05;&#x6670;&#x7684;&#x7B97;&#x6CD5;, &#x96D6;&#x7136;&#x6548;&#x7387;&#x8F03;&#x4F4E;&#x4F46;&#x662F;&#x884C;&#x7232;&#x548C;&#x8981;&#x6E2C;&#x8A66;&#x7684;&#x51FD;&#x6578;&#x4E00;&#x81F4;, &#x7136;&#x5F8C;&#x91DD;&#x5C0D;&#x76F8;&#x540C;&#x7684;&#x96A8;&#x6A5F;&#x8F38;&#x5165;&#x6AA2;&#x67FB;&#x5169;&#x8005;&#x7684;&#x8F38;&#x51FA;&#x7D50;&#x679C;. &#x7B2C;&#x4E8C;&#x7A2E;&#x662F;&#x751F;&#x6210;&#x7684;&#x96A8;&#x6A5F;&#x8F38;&#x5165;&#x7684;&#x6578;&#x64DA;&#x9075;&#x5FAA;&#x7279;&#x5B9A;&#x7684;&#x6A21;&#x5F0F;, &#x9019;&#x6A23;&#x6211;&#x5011;&#x5C31;&#x53EF;&#x4EE5;&#x77E5;&#x9053;&#x671F;&#x671B;&#x7684;&#x8F38;&#x51FA;&#x7684;&#x6A21;&#x5F0F;.</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x4F7F;&#x7528;&#x7684;&#x662F;&#x7B2C;&#x4E8C;&#x7A2E;&#x65B9;&#x6CD5;: randomPalindrome &#x51FD;&#x6578;&#x7528;&#x65BC;&#x96A8;&#x6A5F;&#x751F;&#x6210;&#x8FF4;&#x6587;&#x5B57;&#x7B26;&#x4E32;.</p>
<pre><code class="lang-Go"><span class="hljs-keyword">import</span> <span class="hljs-string">&quot;math/rand&quot;</span>
@@ -2217,7 +2221,7 @@ ok gopl.io/ch11/word2 0.015s
}
}
</code></pre>
<p>&#x96D6;&#x7136;&#x96A8;&#x6A5F;&#x6E2C;&#x8A66;&#x6709;&#x4E0D;&#x78BA;&#x5B9A;&#x56E0;&#x7D20;, &#x4F46;&#x662F;&#x5B83;&#x4E5F;&#x662F;&#x81F3;&#x95DC;&#x91CD;&#x8981;&#x7684;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5F9E;&#x5931;&#x6557;&#x6E2C;&#x8A66;&#x7684;&#x65E5;&#x8A8C;&#x7A6B;&#x53D6;&#x8DB3;&#x5920;&#x7684;&#x4FE1;&#x606F;. &#x5728;&#x6211;&#x5011;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;, &#x8F38;&#x5165; IsPalindrome &#x7684; p &#x53C3;&#x6578;&#x5C07;&#x544A;&#x8A34;&#x6211;&#x5011;&#x771E;&#x5BE6;&#x7684;&#x6578;&#x64DA;, &#x4F46;&#x662F;&#x5C0D;&#x65BC;&#x51FD;&#x6578;&#x5C07;&#x63A5;&#x53D7;&#x66F4;&#x8907;&#x96DC;&#x7684;&#x8F38;&#x5165;, &#x4E0D;&#x9700;&#x8981;&#x4FDD;&#x5B58;&#x6240;&#x6709;&#x7684;&#x8F38;&#x5165;, &#x96BB;&#x8981;&#x65E5;&#x8A8C;&#x4E2D;&#x7C21;&#x55AE;&#x5730;&#x8A18;&#x9332;&#x96A8;&#x6A5F;&#x6578;&#x7A2E;&#x5B50;&#x537D;&#x53EF;(&#x50CF;&#x4E0A;&#x9762;&#x7684;&#x65B9;&#x5F0F;). &#x6709;&#x4E86;&#x9019;&#x4E9B;&#x96A8;&#x6A5F;&#x6578;&#x521D;&#x59CB;&#x5316;&#x7A2E;&#x5B50;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5F88;&#x5BB9;&#x6613;&#x8129;&#x6539;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x4EE5;&#x91CD;&#x73FE;&#x5931;&#x6557;&#x7684;&#x96A8;&#x6A5F;&#x6E2C;&#x8A66;.</p>
<p>&#x96D6;&#x7136;&#x96A8;&#x6A5F;&#x6E2C;&#x8A66;&#x6709;&#x4E0D;&#x78BA;&#x5B9A;&#x56E0;&#x7D20;, &#x4F46;&#x662F;&#x5B83;&#x4E5F;&#x662F;&#x81F3;&#x95DC;&#x91CD;&#x8981;&#x7684;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5F9E;&#x5931;&#x6557;&#x6E2C;&#x8A66;&#x7684;&#x65E5;&#x8A8C;&#x7372;&#x53D6;&#x8DB3;&#x5920;&#x7684;&#x4FE1;&#x606F;. &#x5728;&#x6211;&#x5011;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;, &#x8F38;&#x5165; IsPalindrome &#x7684; p &#x53C3;&#x6578;&#x5C07;&#x544A;&#x8A34;&#x6211;&#x5011;&#x771E;&#x5BE6;&#x7684;&#x6578;&#x64DA;, &#x4F46;&#x662F;&#x5C0D;&#x65BC;&#x51FD;&#x6578;&#x5C07;&#x63A5;&#x53D7;&#x66F4;&#x8907;&#x96DC;&#x7684;&#x8F38;&#x5165;, &#x4E0D;&#x9700;&#x8981;&#x4FDD;&#x5B58;&#x6240;&#x6709;&#x7684;&#x8F38;&#x5165;, &#x96BB;&#x8981;&#x65E5;&#x8A8C;&#x4E2D;&#x7C21;&#x55AE;&#x5730;&#x8A18;&#x9332;&#x96A8;&#x6A5F;&#x6578;&#x7A2E;&#x5B50;&#x537D;&#x53EF;(&#x50CF;&#x4E0A;&#x9762;&#x7684;&#x65B9;&#x5F0F;). &#x6709;&#x4E86;&#x9019;&#x4E9B;&#x96A8;&#x6A5F;&#x6578;&#x521D;&#x59CB;&#x5316;&#x7A2E;&#x5B50;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5F88;&#x5BB9;&#x6613;&#x8129;&#x6539;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x4EE5;&#x91CD;&#x73FE;&#x5931;&#x6557;&#x7684;&#x96A8;&#x6A5F;&#x6E2C;&#x8A66;.</p>
<p>&#x901A;&#x904E;&#x4F7F;&#x7528;&#x7576;&#x524D;&#x6642;&#x9593;&#x4F5C;&#x7232;&#x96A8;&#x6A5F;&#x7A2E;&#x5B50;, &#x5728;&#x6574;&#x500B;&#x904E;&#x7A0B;&#x4E2D;&#x7684;&#x6BCF;&#x6B21;&#x904B;&#x884C;&#x6E2C;&#x8A66;&#x547D;&#x4EE4;&#x6642;&#x90FD;&#x5C07;&#x63A2;&#x7D22;&#x65B0;&#x7684;&#x96A8;&#x6A5F;&#x6578;&#x64DA;. &#x5982;&#x679C;&#x4F60;&#x4F7F;&#x7528;&#x7684;&#x662F;&#x5B9A;&#x671F;&#x904B;&#x884C;&#x7684;&#x81EA;&#x52D5;&#x5316;&#x6E2C;&#x8A66;&#x96C6;&#x6210;&#x7E6B;&#x7D71;, &#x96A8;&#x6A5F;&#x6E2C;&#x8A66;&#x5C07;&#x7279;&#x522B;&#x6709;&#x50F9;&#x503C;.</p>
<p><strong>&#x7DF4;&#x7FD2; 11.3:</strong> TestRandomPalindromes &#x96BB;&#x6E2C;&#x8A66;&#x4E86;&#x8FF4;&#x6587;&#x5B57;&#x7B26;&#x4E32;. &#x7DE8;&#x5BEB;&#x65B0;&#x7684;&#x96A8;&#x6A5F;&#x6E2C;&#x8A66;&#x751F;&#x6210;&#x5668;, &#x7528;&#x65BC;&#x6E2C;&#x8A66;&#x96A8;&#x6A5F;&#x751F;&#x6210;&#x7684;&#x975E;&#x8FF4;&#x6587;&#x5B57;&#x7B26;&#x4E32;.</p>
<p><strong>&#x7DF4;&#x7FD2; 11.4:</strong> &#x8129;&#x6539; randomPalindrome &#x51FD;&#x6578;, &#x4EE5;&#x63A2;&#x7D22; IsPalindrome &#x5C0D;&#x6A19;&#x9EDE;&#x548C;&#x7A7A;&#x683C;&#x7684;&#x8655;&#x7406;.</p>
@@ -2259,7 +2263,7 @@ ok gopl.io/ch11/word2 0.015s
<span class="hljs-keyword">return</span> <span class="hljs-constant">nil</span>
}
</code></pre>
<p>&#x5728;&#x6E2C;&#x8A66;&#x4E2D;&#x55CE;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7528;&#x5404;&#x7A2E;&#x53C3;&#x6578;&#x548C;&#x6A19;&#x6A19;&#x8A8C;&#x8ABF;&#x7528; echo &#x51FD;&#x6578;, &#x7136;&#x5F8C;&#x6AA2;&#x6E2C;&#x5B83;&#x7684;&#x8F38;&#x9F63;&#x662F;&#x5426;&#x6B63;&#x78BA;, &#x6211;&#x5011;&#x901A;&#x904E;&#x589E;&#x52A0;&#x53C3;&#x6578;&#x4F86;&#x6E1B;&#x5C11; echo &#x51FD;&#x6578;&#x5C0D;&#x5168;&#x5C40;&#x8B8A;&#x91CF;&#x7684;&#x4F9D;&#x8CF4;. &#x6211;&#x5011;&#x9084;&#x589E;&#x52A0;&#x4E86;&#x4E00;&#x500B;&#x5168;&#x5C40;&#x540D;&#x7232; out &#x7684;&#x8B8A;&#x91CF;&#x4F86;&#x66FF;&#x4EE3;&#x76F4;&#x63A5;&#x4F7F;&#x7528; os.Stdout, &#x9019;&#x6A23;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x53EF;&#x4EE5;&#x6839;&#x64DA;&#x9700;&#x8981;&#x5C07; out &#x8129;&#x6539;&#x7232;&#x4E0D;&#x540C;&#x7684;&#x5C0D;&#x8C61;&#x4EE5;&#x4FBF;&#x65BC;&#x6AA2;&#x67FB;. &#x4E0B;&#x9762;&#x5C31;&#x662F; echo_test.go &#x6587;&#x4EF6;&#x4E2D;&#x7684;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;:</p>
<p>&#x5728;&#x6E2C;&#x8A66;&#x4E2D;&#x55CE;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7528;&#x5404;&#x7A2E;&#x53C3;&#x6578;&#x548C;&#x6A19;&#x6A19;&#x8A8C;&#x8ABF;&#x7528; echo &#x51FD;&#x6578;, &#x7136;&#x5F8C;&#x6AA2;&#x6E2C;&#x5B83;&#x7684;&#x8F38;&#x51FA;&#x662F;&#x5426;&#x6B63;&#x78BA;, &#x6211;&#x5011;&#x901A;&#x904E;&#x589E;&#x52A0;&#x53C3;&#x6578;&#x4F86;&#x6E1B;&#x5C11; echo &#x51FD;&#x6578;&#x5C0D;&#x5168;&#x5C40;&#x8B8A;&#x91CF;&#x7684;&#x4F9D;&#x8CF4;. &#x6211;&#x5011;&#x9084;&#x589E;&#x52A0;&#x4E86;&#x4E00;&#x500B;&#x5168;&#x5C40;&#x540D;&#x7232; out &#x7684;&#x8B8A;&#x91CF;&#x4F86;&#x66FF;&#x4EE3;&#x76F4;&#x63A5;&#x4F7F;&#x7528; os.Stdout, &#x9019;&#x6A23;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x53EF;&#x4EE5;&#x6839;&#x64DA;&#x9700;&#x8981;&#x5C07; out &#x8129;&#x6539;&#x7232;&#x4E0D;&#x540C;&#x7684;&#x5C0D;&#x8C61;&#x4EE5;&#x4FBF;&#x65BC;&#x6AA2;&#x67FB;. &#x4E0B;&#x9762;&#x5C31;&#x662F; echo_test.go &#x6587;&#x4EF6;&#x4E2D;&#x7684;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;:</p>
<pre><code class="lang-Go"><span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> (
@@ -2297,23 +2301,23 @@ ok gopl.io/ch11/word2 0.015s
}
}
</code></pre>
<p>&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x548C;&#x7523;&#x54C1;&#x4EE3;&#x78BC;&#x5728;&#x540C;&#x4E00;&#x500B;&#x5305;. &#x96D6;&#x7136;&#x662F;main&#x5305;, &#x4E5F;&#x6709;&#x5C0D;&#x61C9;&#x7684; main &#x5165;&#x53E3;&#x51FD;&#x6578;, &#x4F46;&#x662F;&#x5728;&#x6E2C;&#x8A66;&#x7684;&#x6642;&#x5019; main &#x5305;&#x96BB;&#x662F; TestEcho &#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x5C0E;&#x5165;&#x7684;&#x4E00;&#x500B;&#x666E;&#x901A;&#x5305;, &#x91CC;&#x9762; main &#x51FD;&#x6578;&#x4F75;&#x6C92;&#x6709;&#x88AB;&#x5C0E;&#x9F63;&#x662F;&#x88AB;&#x5FFD;&#x7565;&#x7684;.</p>
<p>&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x548C;&#x7523;&#x54C1;&#x4EE3;&#x78BC;&#x5728;&#x540C;&#x4E00;&#x500B;&#x5305;. &#x96D6;&#x7136;&#x662F;main&#x5305;, &#x4E5F;&#x6709;&#x5C0D;&#x61C9;&#x7684; main &#x5165;&#x53E3;&#x51FD;&#x6578;, &#x4F46;&#x662F;&#x5728;&#x6E2C;&#x8A66;&#x7684;&#x6642;&#x5019; main &#x5305;&#x96BB;&#x662F; TestEcho &#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x5C0E;&#x5165;&#x7684;&#x4E00;&#x500B;&#x666E;&#x901A;&#x5305;, &#x91CC;&#x9762; main &#x51FD;&#x6578;&#x4F75;&#x6C92;&#x6709;&#x88AB;&#x5C0E;&#x51FA;&#x662F;&#x88AB;&#x5FFD;&#x7565;&#x7684;.</p>
<p>&#x901A;&#x904E;&#x5C07;&#x6E2C;&#x8A66;&#x653E;&#x5230;&#x8868;&#x683C;&#x4E2D;, &#x6211;&#x5011;&#x5F88;&#x5BB9;&#x6613;&#x6DFB;&#x52A0;&#x65B0;&#x7684;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;. &#x8B93;&#x6211;&#x901A;&#x904E;&#x589E;&#x52A0;&#x4E0B;&#x9762;&#x7684;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#x4F86;&#x770B;&#x770B;&#x5931;&#x6557;&#x7684;&#x60C5;&#x6CC1;&#x662F;&#x600E;&#x9EBD;&#x6A23;&#x7684;:</p>
<pre><code class="lang-Go">{<span class="hljs-constant">true</span>, <span class="hljs-string">&quot;,&quot;</span>, []<span class="hljs-typename">string</span>{<span class="hljs-string">&quot;a&quot;</span>, <span class="hljs-string">&quot;b&quot;</span>, <span class="hljs-string">&quot;c&quot;</span>}, <span class="hljs-string">&quot;a b c\n&quot;</span>}, <span class="hljs-comment">// <span class="hljs-doctag">NOTE:</span> wrong expectation!</span>
</code></pre>
<p><code>go test</code> &#x8F38;&#x9F63;&#x5982;&#x4E0B;:</p>
<p><code>go test</code> &#x8F38;&#x51FA;&#x5982;&#x4E0B;:</p>
<pre><code>$ go test gopl.io/ch11/echo
--- FAIL: TestEcho (0.00s)
echo_test.go:31: echo(true, &quot;,&quot;, [&quot;a&quot; &quot;b&quot; &quot;c&quot;]) = &quot;a,b,c&quot;, want &quot;a b c\n&quot;
FAIL
FAIL gopl.io/ch11/echo 0.006s
</code></pre><p>&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#x63CF;&#x8FF0;&#x4E86;&#x5690;&#x8A66;&#x7684;&#x64CD;&#x4F5C;(&#x4F7F;&#x7528;Go&#x985E;&#x4F3C;&#x8A9E;&#x6CD5;), &#x5BE6;&#x969B;&#x7684;&#x884C;&#x7232;, &#x548C;&#x671F;&#x671B;&#x7684;&#x884C;&#x7232;. &#x901A;&#x904E;&#x9019;&#x6A23;&#x7684;&#x932F;&#x8AA4;&#x4FE1;&#x606F;, &#x4F60;&#x53EF;&#x4EE5;&#x5728;&#x6AA2;&#x8996;&#x4EE3;&#x78BC;&#x4E4B;&#x524D;&#x5C31;&#x5F88;&#x5BB9;&#x6613;&#x5B9A;&#x4F4D;&#x932F;&#x8AA4;&#x7684;&#x539F;&#x56E0;.</p>
<p>&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;&#x5728;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x4E2D;&#x4F75;&#x6C92;&#x6709;&#x8ABF;&#x7528; log.Fatal &#x6216; os.Exit, &#x56E0;&#x7232;&#x8ABF;&#x7528;&#x9019;&#x985E;&#x51FD;&#x6578;&#x6703;&#x5C0E;&#x81F4;&#x7A0B;&#x5E8F;&#x63D0;&#x524D;&#x9000;&#x9F63;; &#x8ABF;&#x7528;&#x9019;&#x4E9B;&#x51FD;&#x6578;&#x7684;&#x7279;&#x6B0A;&#x61C9;&#x8A72;&#x653E;&#x5728; main &#x51FD;&#x6578;&#x4E2D;. &#x5982;&#x679C;&#x771E;&#x7684;&#x6709;&#x4EE5;&#x5916;&#x7684;&#x4E8B;&#x60C5;&#x5C0E;&#x81F4;&#x51FD;&#x6578;&#x767C;&#x9001; panic, &#x6E2C;&#x8A66;&#x9A45;&#x52D5;&#x61C9;&#x8A72;&#x5690;&#x8A66; recover, &#x7136;&#x5F8C;&#x5C07;&#x7576;&#x524D;&#x6E2C;&#x8A66;&#x7576;&#x4F5C;&#x5931;&#x6557;&#x8655;&#x7406;. &#x5982;&#x679C;&#x662F;&#x53EF;&#x9810;&#x671F;&#x7684;&#x932F;&#x8AA4;, &#x4F8B;&#x5982;&#x975E;&#x6CD5;&#x7684;&#x7528;&#x6236;&#x8F38;&#x5165;, &#x627E;&#x4E0D;&#x5230;&#x6587;&#x4EF6;, &#x6216;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x4E0D;&#x7576;&#x7B49;&#x61C9;&#x8A72;&#x901A;&#x904E;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x975E;&#x7A7A;&#x7684; error &#x7684;&#x65B9;&#x5F0F;&#x8655;&#x7406;. &#x5E78;&#x904B;&#x7684;&#x662F;(&#x4E0A;&#x9762;&#x7684;&#x610F;&#x5916;&#x96BB;&#x662F;&#x4E00;&#x500B;&#x63D2;&#x9EB4;), &#x6211;&#x5011;&#x7684; echo &#x793A;&#x4F8B;&#x662F;&#x6BD4;&#x8F03;&#x7C21;&#x55AE;&#x7684;&#x4E5F;&#x6C92;&#x6709;&#x9700;&#x8981;&#x8FD4;&#x8FF4;&#x975E;&#x7A7A;error&#x7684;&#x60C5;&#x6CC1;.</p>
<p>&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;&#x5728;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x4E2D;&#x4F75;&#x6C92;&#x6709;&#x8ABF;&#x7528; log.Fatal &#x6216; os.Exit, &#x56E0;&#x7232;&#x8ABF;&#x7528;&#x9019;&#x985E;&#x51FD;&#x6578;&#x6703;&#x5C0E;&#x81F4;&#x7A0B;&#x5E8F;&#x63D0;&#x524D;&#x9000;&#x51FA;; &#x8ABF;&#x7528;&#x9019;&#x4E9B;&#x51FD;&#x6578;&#x7684;&#x7279;&#x6B0A;&#x61C9;&#x8A72;&#x653E;&#x5728; main &#x51FD;&#x6578;&#x4E2D;. &#x5982;&#x679C;&#x771E;&#x7684;&#x6709;&#x4EE5;&#x5916;&#x7684;&#x4E8B;&#x60C5;&#x5C0E;&#x81F4;&#x51FD;&#x6578;&#x767C;&#x9001; panic, &#x6E2C;&#x8A66;&#x9A45;&#x52D5;&#x61C9;&#x8A72;&#x5690;&#x8A66; recover, &#x7136;&#x5F8C;&#x5C07;&#x7576;&#x524D;&#x6E2C;&#x8A66;&#x7576;&#x4F5C;&#x5931;&#x6557;&#x8655;&#x7406;. &#x5982;&#x679C;&#x662F;&#x53EF;&#x9810;&#x671F;&#x7684;&#x932F;&#x8AA4;, &#x4F8B;&#x5982;&#x975E;&#x6CD5;&#x7684;&#x7528;&#x6236;&#x8F38;&#x5165;, &#x627E;&#x4E0D;&#x5230;&#x6587;&#x4EF6;, &#x6216;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x4E0D;&#x7576;&#x7B49;&#x61C9;&#x8A72;&#x901A;&#x904E;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x975E;&#x7A7A;&#x7684; error &#x7684;&#x65B9;&#x5F0F;&#x8655;&#x7406;. &#x5E78;&#x904B;&#x7684;&#x662F;(&#x4E0A;&#x9762;&#x7684;&#x610F;&#x5916;&#x96BB;&#x662F;&#x4E00;&#x500B;&#x63D2;&#x9EB4;), &#x6211;&#x5011;&#x7684; echo &#x793A;&#x4F8B;&#x662F;&#x6BD4;&#x8F03;&#x7C21;&#x55AE;&#x7684;&#x4E5F;&#x6C92;&#x6709;&#x9700;&#x8981;&#x8FD4;&#x8FF4;&#x975E;&#x7A7A;error&#x7684;&#x60C5;&#x6CC1;.</p>
<h3 id="1123-&#x767D;&#x76D2;&#x6E2C;&#x8A66;">11.2.3. &#x767D;&#x76D2;&#x6E2C;&#x8A66;</h3>
<p>&#x4E00;&#x500B;&#x6E2C;&#x8A66;&#x5206;&#x985E;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x57FA;&#x65BC;&#x6E2C;&#x8A66;&#x8005;&#x662F;&#x5426;&#x9700;&#x8981;&#x4E86;&#x89E3;&#x88AB;&#x6E2C;&#x8A66;&#x5C0D;&#x8C61;&#x7684;&#x5167;&#x90E8;&#x5DE5;&#x4F5C;&#x539F;&#x7406;. &#x9ED1;&#x76D2;&#x6E2C;&#x8A66;&#x96BB;&#x9700;&#x8981;&#x6E2C;&#x8A66;&#x5305;&#x516C;&#x958B;&#x7684;&#x6587;&#x6A94;&#x548C;API&#x884C;&#x7232;, &#x5167;&#x90E8;&#x5BE6;&#x73FE;&#x5C0D;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x662F;&#x900F;&#x660E;&#x7684;. &#x76F8;&#x53CD;, &#x767D;&#x76D2;&#x6E2C;&#x8A66;&#x6709;&#x8A2A;&#x554F;&#x5305;&#x5167;&#x90E8;&#x51FD;&#x6578;&#x548C;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x7684;&#x6B0A;&#x9650;, &#x56E0;&#x6B64;&#x53EF;&#x4EE5;&#x505A;&#x5230;&#x4E00;&#x4E0B;&#x666E;&#x901A;&#x5BA2;&#x6236;&#x7AEF;&#x7121;&#x6CD5;&#x5BE6;&#x73FE;&#x7684;&#x6E2C;&#x8A66;. &#x4F8B;&#x5982;, &#x4E00;&#x500B;&#x98FD;&#x548C;&#x6E2C;&#x8A66;&#x53EF;&#x4EE5;&#x5728;&#x6BCF;&#x500B;&#x64CD;&#x4F5C;&#x4E4B;&#x5F8C;&#x6AA2;&#x6E2C;&#x4E0D;&#x8B8A;&#x91CF;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;. (&#x767D;&#x76D2;&#x6E2C;&#x8A66;&#x96BB;&#x662F;&#x4E00;&#x500B;&#x50B3;&#x7D71;&#x7684;&#x540D;&#x7A31;, &#x5176;&#x5BE6;&#x7A31;&#x7232; clear box &#x6703;&#x66F4;&#x6E96;&#x78BA;.)</p>
<p>&#x9ED1;&#x76D2;&#x548C;&#x767D;&#x76D2;&#x9019;&#x5169;&#x7A2E;&#x6E2C;&#x8A66;&#x65B9;&#x6CD5;&#x662F;&#x4E92;&#x88DC;&#x7684;. &#x9ED1;&#x76D2;&#x6E2C;&#x8A66;&#x4E00;&#x822C;&#x66F4;&#x5065;&#x58EF;, &#x96A8;&#x7740;&#x8EDF;&#x4EF6;&#x5BE6;&#x73FE;&#x7684;&#x5B8C;&#x5584;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x5F88;&#x5C11;&#x9700;&#x8981;&#x66F4;&#x65B0;. &#x5B83;&#x5011;&#x53EF;&#x4EE5;&#x5E6B;&#x52A9;&#x6E2C;&#x8A66;&#x8005;&#x4E86;&#x89E3;&#x771E;&#x662F;&#x5BA2;&#x6236;&#x7684;&#x9700;&#x6C42;, &#x53EF;&#x4EE5;&#x5E6B;&#x52A9;&#x767C;&#x73FE;API&#x8A2D;&#x8A08;&#x7684;&#x4E00;&#x4E9B;&#x4E0D;&#x8DB3;&#x4E4B;&#x8655;. &#x76F8;&#x53CD;, &#x767D;&#x76D2;&#x6E2C;&#x8A66;&#x5247;&#x53EF;&#x4EE5;&#x5C0D;&#x5167;&#x90E8;&#x4E00;&#x4E9B;&#x68D8;&#x624B;&#x7684;&#x5BE6;&#x73FE;&#x63D0;&#x4F9B;&#x66F4;&#x591A;&#x7684;&#x6E2C;&#x8A66;&#x8986;&#x84CB;.</p>
<p>&#x6211;&#x5011;&#x5DF2;&#x7D93;&#x770B;&#x5230;&#x5169;&#x7A2E;&#x6E2C;&#x8A66;&#x7684;&#x4F8B;&#x5B50;. TestIsPalindrome &#x6E2C;&#x8A66;&#x50C5;&#x50C5;&#x4F7F;&#x7528;&#x5C0E;&#x9F63;&#x7684; IsPalindrome &#x51FD;&#x6578;, &#x56E0;&#x6B64;&#x5B83;&#x662F;&#x4E00;&#x500B;&#x9ED1;&#x76D2;&#x6E2C;&#x8A66;. TestEcho &#x6E2C;&#x8A66;&#x5247;&#x8ABF;&#x7528;&#x4E86;&#x5167;&#x90E8;&#x7684; echo &#x51FD;&#x6578;, &#x4F75;&#x4E14;&#x66F4;&#x65B0;&#x4E86;&#x5167;&#x90E8;&#x7684; out &#x5168;&#x5C40;&#x8B8A;&#x91CF;, &#x9019;&#x5169;&#x500B;&#x90FD;&#x662F;&#x672A;&#x5C0E;&#x9F63;&#x7684;, &#x56E0;&#x6B64;&#x5B83;&#x662F;&#x767D;&#x76D2;&#x6E2C;&#x8A66;.</p>
<p>&#x7576;&#x6211;&#x5011;&#x958B;&#x767C;TestEcho&#x6E2C;&#x8A66;&#x7684;&#x6642;&#x5019;, &#x6211;&#x5011;&#x8129;&#x6539;&#x4E86; echo &#x51FD;&#x6578;&#x4F7F;&#x7528;&#x5305;&#x7D1A;&#x7684; out &#x4F5C;&#x7232;&#x8F38;&#x9F63;&#x5C0D;&#x8C61;, &#x56E0;&#x6B64;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x53EF;&#x4EE5;&#x7528;&#x53E6;&#x4E00;&#x500B;&#x5BE6;&#x73FE;&#x4EE3;&#x66FF;&#x6A19;&#x6E96;&#x8F38;&#x9F63;, &#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x65B9;&#x4FBF;&#x5C0D;&#x6BD4; echo &#x7684;&#x8F38;&#x9F63;&#x6578;&#x64DA;. &#x4F7F;&#x7528;&#x985E;&#x4F3C;&#x7684;&#x6280;&#x8853;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5C07;&#x7523;&#x54C1;&#x4EE3;&#x78BC;&#x7684;&#x5176;&#x4ED6;&#x90E8;&#x5206;&#x4E5F;&#x66FF;&#x63DB;&#x7232;&#x4E00;&#x500B;&#x5BB9;&#x6613;&#x6E2C;&#x8A66;&#x7684;&#x50DE;&#x5C0D;&#x8C61;. &#x4F7F;&#x7528;&#x50DE;&#x5C0D;&#x8C61;&#x7684;&#x597D;&#x8655;&#x662F;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x65B9;&#x4FBF;&#x914D;&#x7F6E;, &#x5BB9;&#x6613;&#x9810;&#x6E2C;, &#x66F4;&#x53EF;&#x9760;, &#x4E5F;&#x66F4;&#x5BB9;&#x6613;&#x89C0;&#x5BDF;. &#x540C;&#x6642;&#x4E5F;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4E00;&#x4E9B;&#x4E0D;&#x826F;&#x7684;&#x526F;&#x4F5C;&#x7528;, &#x4F8B;&#x5982;&#x66F4;&#x65B0;&#x751F;&#x7523;&#x6578;&#x64DA;&#x5EAB;&#x6216;&#x4FE1;&#x7528;&#x5361;&#x6D88;&#x8CBB;&#x884C;&#x7232;.</p>
<p>&#x6211;&#x5011;&#x5DF2;&#x7D93;&#x770B;&#x5230;&#x5169;&#x7A2E;&#x6E2C;&#x8A66;&#x7684;&#x4F8B;&#x5B50;. TestIsPalindrome &#x6E2C;&#x8A66;&#x50C5;&#x50C5;&#x4F7F;&#x7528;&#x5C0E;&#x51FA;&#x7684; IsPalindrome &#x51FD;&#x6578;, &#x56E0;&#x6B64;&#x5B83;&#x662F;&#x4E00;&#x500B;&#x9ED1;&#x76D2;&#x6E2C;&#x8A66;. TestEcho &#x6E2C;&#x8A66;&#x5247;&#x8ABF;&#x7528;&#x4E86;&#x5167;&#x90E8;&#x7684; echo &#x51FD;&#x6578;, &#x4F75;&#x4E14;&#x66F4;&#x65B0;&#x4E86;&#x5167;&#x90E8;&#x7684; out &#x5168;&#x5C40;&#x8B8A;&#x91CF;, &#x9019;&#x5169;&#x500B;&#x90FD;&#x662F;&#x672A;&#x5C0E;&#x51FA;&#x7684;, &#x56E0;&#x6B64;&#x5B83;&#x662F;&#x767D;&#x76D2;&#x6E2C;&#x8A66;.</p>
<p>&#x7576;&#x6211;&#x5011;&#x958B;&#x767C;TestEcho&#x6E2C;&#x8A66;&#x7684;&#x6642;&#x5019;, &#x6211;&#x5011;&#x8129;&#x6539;&#x4E86; echo &#x51FD;&#x6578;&#x4F7F;&#x7528;&#x5305;&#x7D1A;&#x7684; out &#x4F5C;&#x7232;&#x8F38;&#x51FA;&#x5C0D;&#x8C61;, &#x56E0;&#x6B64;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x53EF;&#x4EE5;&#x7528;&#x53E6;&#x4E00;&#x500B;&#x5BE6;&#x73FE;&#x4EE3;&#x66FF;&#x6A19;&#x6E96;&#x8F38;&#x51FA;, &#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x65B9;&#x4FBF;&#x5C0D;&#x6BD4; echo &#x7684;&#x8F38;&#x51FA;&#x6578;&#x64DA;. &#x4F7F;&#x7528;&#x985E;&#x4F3C;&#x7684;&#x6280;&#x8853;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5C07;&#x7523;&#x54C1;&#x4EE3;&#x78BC;&#x7684;&#x5176;&#x4ED6;&#x90E8;&#x5206;&#x4E5F;&#x66FF;&#x63DB;&#x7232;&#x4E00;&#x500B;&#x5BB9;&#x6613;&#x6E2C;&#x8A66;&#x7684;&#x50DE;&#x5C0D;&#x8C61;. &#x4F7F;&#x7528;&#x50DE;&#x5C0D;&#x8C61;&#x7684;&#x597D;&#x8655;&#x662F;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x65B9;&#x4FBF;&#x914D;&#x7F6E;, &#x5BB9;&#x6613;&#x9810;&#x6E2C;, &#x66F4;&#x53EF;&#x9760;, &#x4E5F;&#x66F4;&#x5BB9;&#x6613;&#x89C0;&#x5BDF;. &#x540C;&#x6642;&#x4E5F;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4E00;&#x4E9B;&#x4E0D;&#x826F;&#x7684;&#x526F;&#x4F5C;&#x7528;, &#x4F8B;&#x5982;&#x66F4;&#x65B0;&#x751F;&#x7523;&#x6578;&#x64DA;&#x5EAB;&#x6216;&#x4FE1;&#x7528;&#x5361;&#x6D88;&#x8CBB;&#x884C;&#x7232;.</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x6F14;&#x793A;&#x4E86;&#x7232;&#x7528;&#x6236;&#x63D0;&#x4F9B;&#x7DB2;&#x7D61;&#x5B58;&#x5132;&#x7684;web&#x670D;&#x52D9;&#x4E2D;&#x7684;&#x914D;&#x984D;&#x6AA2;&#x6E2C;&#x908F;&#x8F2F;. &#x7576;&#x7528;&#x6236;&#x4F7F;&#x7528;&#x4E86;&#x8D85;&#x904E; 90% &#x7684;&#x5B58;&#x5132;&#x914D;&#x984D;&#x4E4B;&#x5F8C;&#x5C07;&#x767C;&#x9001;&#x63D0;&#x9192;&#x90F5;&#x4EF6;.</p>
<pre><code class="lang-Go">gopl.io/ch11/storage1
@@ -2440,17 +2444,17 @@ FAIL gopl.io/ch11/echo 0.006s
<p>XTestGoFiles &#x8868;&#x793A;&#x7684;&#x662F;&#x5C6C;&#x65BC;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x7684;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;, &#x4E5F;&#x5C31;&#x662F; fmt_test &#x5305;, &#x56E0;&#x6B64;&#x5B83;&#x5011;&#x5FC5;&#x9B1A;&#x5148;&#x5C0E;&#x5165; fmt &#x5305;. &#x540C;&#x6A23;, &#x9019;&#x4E9B;&#x6587;&#x4EF6;&#x4E5F;&#x96BB;&#x662F;&#x5728;&#x6E2C;&#x8A66;&#x6642;&#x88AB;&#x69CB;&#x5EFA;&#x904B;&#x884C;:</p>
<pre><code>$ go list -f={{.XTestGoFiles}} fmt
[fmt_test.go scan_test.go stringer_test.go]
</code></pre><p>&#x6709;&#x6642;&#x5019;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x9700;&#x8981;&#x8A2A;&#x554F;&#x88AB;&#x6E2C;&#x8A66;&#x5305;&#x5167;&#x90E8;&#x7684;&#x4EE3;&#x78BC;, &#x4F8B;&#x5982;&#x5728;&#x4E00;&#x500B;&#x7232;&#x4E86;&#x907F;&#x514D;&#x5FAA;&#x74B0;&#x5C0E;&#x5165;&#x800C;&#x88AB;&#x7368;&#x7ACB;&#x5230;&#x5916;&#x90E8;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x7684;&#x767D;&#x76D2;&#x6E2C;&#x8A66;. &#x5728;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x4E00;&#x4E9B;&#x6280;&#x5DE7;&#x89E3;&#x6C7A;: &#x6211;&#x5011;&#x5728;&#x5305;&#x5167;&#x7684;&#x4E00;&#x500B; _test.go &#x6587;&#x4EF6;&#x4E2D;&#x5C0E;&#x9F63;&#x4E00;&#x500B;&#x5167;&#x90E8;&#x7684;&#x5BE6;&#x73FE;&#x7D66;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;. &#x56E0;&#x7232;&#x9019;&#x4E9B;&#x4EE3;&#x78BC;&#x96BB;&#x6709;&#x5728;&#x6E2C;&#x8A66;&#x6642;&#x7E94;&#x9700;&#x8981;, &#x56E0;&#x6B64;&#x4E00;&#x822C;&#x653E;&#x5728; export_test.go &#x6587;&#x4EF6;&#x4E2D;.</p>
</code></pre><p>&#x6709;&#x6642;&#x5019;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x9700;&#x8981;&#x8A2A;&#x554F;&#x88AB;&#x6E2C;&#x8A66;&#x5305;&#x5167;&#x90E8;&#x7684;&#x4EE3;&#x78BC;, &#x4F8B;&#x5982;&#x5728;&#x4E00;&#x500B;&#x7232;&#x4E86;&#x907F;&#x514D;&#x5FAA;&#x74B0;&#x5C0E;&#x5165;&#x800C;&#x88AB;&#x7368;&#x7ACB;&#x5230;&#x5916;&#x90E8;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x7684;&#x767D;&#x76D2;&#x6E2C;&#x8A66;. &#x5728;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x4E00;&#x4E9B;&#x6280;&#x5DE7;&#x89E3;&#x6C7A;: &#x6211;&#x5011;&#x5728;&#x5305;&#x5167;&#x7684;&#x4E00;&#x500B; _test.go &#x6587;&#x4EF6;&#x4E2D;&#x5C0E;&#x51FA;&#x4E00;&#x500B;&#x5167;&#x90E8;&#x7684;&#x5BE6;&#x73FE;&#x7D66;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;. &#x56E0;&#x7232;&#x9019;&#x4E9B;&#x4EE3;&#x78BC;&#x96BB;&#x6709;&#x5728;&#x6E2C;&#x8A66;&#x6642;&#x624D;&#x9700;&#x8981;, &#x56E0;&#x6B64;&#x4E00;&#x822C;&#x653E;&#x5728; export_test.go &#x6587;&#x4EF6;&#x4E2D;.</p>
<p>&#x4F8B;&#x5982;, fmt &#x5305;&#x7684; fmt.Scanf &#x9700;&#x8981; unicode.IsSpace &#x51FD;&#x6578;&#x63D0;&#x4F9B;&#x7684;&#x529F;&#x80FD;. &#x4F46;&#x662F;&#x7232;&#x4E86;&#x907F;&#x514D;&#x592A;&#x591A;&#x7684;&#x4F9D;&#x8CF4;, fmt &#x5305;&#x4F75;&#x6C92;&#x6709;&#x5C0E;&#x5165;&#x5305;&#x542B;&#x9245;&#x5927;&#x8868;&#x683C;&#x6578;&#x64DA;&#x7684; unicode &#x5305;; &#x76F8;&#x53CD;fmt&#x5305;&#x6709;&#x4E00;&#x500B;&#x53EB; isSpace &#x5167;&#x90E8;&#x7684;&#x7C21;&#x6613;&#x5BE6;&#x73FE;.</p>
<p>&#x7232;&#x4E86;&#x78BA;&#x4FDD; fmt.isSpace &#x548C; unicode.IsSpace &#x51FD;&#x6578;&#x7684;&#x884C;&#x7232;&#x4E00;&#x81F4;, fmt &#x5305;&#x8B39;&#x614E;&#x5730;&#x5305;&#x542B;&#x4E86;&#x4E00;&#x500B;&#x6E2C;&#x8A66;. &#x662F;&#x4E00;&#x500B;&#x5728;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x5167;&#x7684;&#x6E2C;&#x8A66;, &#x56E0;&#x6B64;&#x662F;&#x7121;&#x6CD5;&#x76F4;&#x63A5;&#x8A2A;&#x554F;&#x5230; isSpace &#x5167;&#x90E8;&#x51FD;&#x6578;&#x7684;, &#x56E0;&#x6B64; fmt &#x901A;&#x904E;&#x4E00;&#x500B;&#x7955;&#x5BC6;&#x9F63;&#x53E3;&#x5C0E;&#x9F63;&#x4E86; isSpace &#x51FD;&#x6578;. export_test.go &#x6587;&#x4EF6;&#x5C31;&#x662F;&#x5C08;&#x9580;&#x7528;&#x65BC;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x7684;&#x7955;&#x5BC6;&#x9F63;&#x53E3;.</p>
<p>&#x7232;&#x4E86;&#x78BA;&#x4FDD; fmt.isSpace &#x548C; unicode.IsSpace &#x51FD;&#x6578;&#x7684;&#x884C;&#x7232;&#x4E00;&#x81F4;, fmt &#x5305;&#x8B39;&#x614E;&#x5730;&#x5305;&#x542B;&#x4E86;&#x4E00;&#x500B;&#x6E2C;&#x8A66;. &#x662F;&#x4E00;&#x500B;&#x5728;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x5167;&#x7684;&#x6E2C;&#x8A66;, &#x56E0;&#x6B64;&#x662F;&#x7121;&#x6CD5;&#x76F4;&#x63A5;&#x8A2A;&#x554F;&#x5230; isSpace &#x5167;&#x90E8;&#x51FD;&#x6578;&#x7684;, &#x56E0;&#x6B64; fmt &#x901A;&#x904E;&#x4E00;&#x500B;&#x7955;&#x5BC6;&#x51FA;&#x53E3;&#x5C0E;&#x51FA;&#x4E86; isSpace &#x51FD;&#x6578;. export_test.go &#x6587;&#x4EF6;&#x5C31;&#x662F;&#x5C08;&#x9580;&#x7528;&#x65BC;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x7684;&#x7955;&#x5BC6;&#x51FA;&#x53E3;.</p>
<pre><code class="lang-Go"><span class="hljs-keyword">package</span> fmt
<span class="hljs-keyword">var</span> IsSpace = isSpace
</code></pre>
<p>&#x9019;&#x500B;&#x6E2C;&#x8A66;&#x6587;&#x4EF6;&#x4F75;&#x6C92;&#x6709;&#x5B9A;&#x7FA9;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;; &#x5B83;&#x96BB;&#x662F;&#x901A;&#x904E; fmt.IsSpace &#x7C21;&#x55AE;&#x5C0E;&#x9F63;&#x4E86;&#x5167;&#x90E8;&#x7684; isSpace &#x51FD;&#x6578;, &#x63D0;&#x4F9B;&#x7D66;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x4F7F;&#x7528;. &#x9019;&#x500B;&#x6280;&#x5DE7;&#x53EF;&#x4EE5;&#x5EE3;&#x6CDB;&#x7528;&#x65BC;&#x4F4D;&#x65BC;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x7684;&#x767D;&#x76D2;&#x6E2C;&#x8A66;.</p>
<p>&#x9019;&#x500B;&#x6E2C;&#x8A66;&#x6587;&#x4EF6;&#x4F75;&#x6C92;&#x6709;&#x5B9A;&#x7FA9;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;; &#x5B83;&#x96BB;&#x662F;&#x901A;&#x904E; fmt.IsSpace &#x7C21;&#x55AE;&#x5C0E;&#x51FA;&#x4E86;&#x5167;&#x90E8;&#x7684; isSpace &#x51FD;&#x6578;, &#x63D0;&#x4F9B;&#x7D66;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x4F7F;&#x7528;. &#x9019;&#x500B;&#x6280;&#x5DE7;&#x53EF;&#x4EE5;&#x5EE3;&#x6CDB;&#x7528;&#x65BC;&#x4F4D;&#x65BC;&#x6E2C;&#x8A66;&#x64F4;&#x5C55;&#x5305;&#x7684;&#x767D;&#x76D2;&#x6E2C;&#x8A66;.</p>
<h3 id="1125-&#x7DE8;&#x5BEB;&#x6709;&#x6548;&#x7684;&#x6E2C;&#x8A66;">11.2.5. &#x7DE8;&#x5BEB;&#x6709;&#x6548;&#x7684;&#x6E2C;&#x8A66;</h3>
<p>&#x8A31;&#x591A;Go&#x65B0;&#x4EBA;&#x6703;&#x9A5A;&#x7570;&#x8207;&#x5B83;&#x7684;&#x6975;&#x7C21;&#x7684;&#x6E2C;&#x8A66;&#x6846;&#x67B6;. &#x5F88;&#x591A;&#x5176;&#x4ED6;&#x8A9E;&#x8A00;&#x7684;&#x6E2C;&#x8A66;&#x6846;&#x67B6;&#x90FD;&#x63D0;&#x4F9B;&#x4E86;&#x8B58;&#x522B;&#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x7684;&#x6A5F;&#x88FD;(&#x901A;&#x5E38;&#x4F7F;&#x7528;&#x53CD;&#x5C04;&#x6216;&#x5143;&#x6578;&#x64DA;), &#x901A;&#x904E;&#x8A2D;&#x7F6E;&#x4E00;&#x4E9B; &#x2018;&#x2018;setup&#x2019;&#x2019; &#x548C; &#x2018;&#x2018;teardown&#x2019;&#x2019; &#x7684;&#x9264;&#x5B50;&#x51FD;&#x6578;&#x4F86;&#x57F7;&#x884C;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#x904B;&#x884C;&#x7684;&#x521D;&#x59CB;&#x5316;&#x6216;&#x4E4B;&#x5F8C;&#x7684;&#x6E05;&#x7406;&#x64CD;&#x4F5C;, &#x540C;&#x6642;&#x6E2C;&#x8A66;&#x5DE5;&#x5177;&#x7BB1;&#x9084;&#x63D0;&#x4F9B;&#x4E86;&#x5F88;&#x591A;&#x985E;&#x4F3C;assert&#x65B7;&#x8A00;, &#x6BD4;&#x8F03;&#x503C;, &#x683C;&#x5F0F;&#x5316;&#x8F38;&#x9F63;&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#x548C;&#x505C;&#x6B62;&#x4E00;&#x500B;&#x8B58;&#x522B;&#x7684;&#x6E2C;&#x8A66;&#x7B49;&#x8F14;&#x52A9;&#x51FD;&#x6578;(&#x901A;&#x5E38;&#x4F7F;&#x7528;&#x7570;&#x5E38;&#x6A5F;&#x88FD;). &#x96D6;&#x7136;&#x9019;&#x4E9B;&#x6A5F;&#x88FD;&#x53EF;&#x4EE5;&#x4F7F;&#x5F97;&#x6E2C;&#x8A66;&#x975E;&#x5E38;&#x7C21;&#x6F54;, &#x4F46;&#x662F;&#x6E2C;&#x8A66;&#x8F38;&#x9F63;&#x7684;&#x65E5;&#x8A8C;&#x537B;&#x50CF;&#x706B;&#x661F;&#x6587;&#x4E00;&#x822C;&#x96E3;&#x4EE5;&#x7406;&#x89E3;. &#x6B64;&#x5916;, &#x96D6;&#x7136;&#x6E2C;&#x8A66;&#x6700;&#x7D42;&#x4E5F;&#x6703;&#x8F38;&#x9F63; PASS &#x6216; FAIL &#x7684;&#x5831;&#x544A;, &#x4F46;&#x662F;&#x5B83;&#x5011;&#x63D0;&#x4F9B;&#x7684;&#x4FE1;&#x606F;&#x683C;&#x5F0F;&#x537B;&#x975E;&#x5E38;&#x4E0D;&#x5229;&#x65BC;&#x4EE3;&#x78BC;&#x7DAD;&#x8B77;&#x8005;&#x5FEB;&#x901F;&#x5B9A;&#x4F4D;&#x554F;&#x984C;, &#x56E0;&#x7232;&#x5931;&#x6557;&#x7684;&#x4FE1;&#x606F;&#x7684;&#x5177;&#x9AD4;&#x542B;&#x7FA9;&#x662F;&#x975E;&#x5E38;&#x96B1;&#x60A3;&#x7684;, &#x6BD4;&#x5982; &quot;assert: 0 == 1&quot; &#x6216; &#x6210;&#x9801;&#x7684;&#x6D77;&#x91CF;&#x8DDF;&#x8E64;&#x65E5;&#x8A8C;.</p>
<p>Go&#x8A9E;&#x8A00;&#x7684;&#x6E2C;&#x8A66;&#x98A8;&#x683C;&#x5247;&#x5F62;&#x6210;&#x9BAE;&#x660E;&#x5C0D;&#x6BD4;. &#x5B83;&#x671F;&#x671B;&#x6E2C;&#x8A66;&#x8005;&#x81EA;&#x5DF1;&#x5B8C;&#x6210;&#x5927;&#x90E8;&#x5206;&#x7684;&#x5DE5;&#x4F5C;, &#x5B9A;&#x7FA9;&#x51FD;&#x6578;&#x907F;&#x514D;&#x91CD;&#x8907;, &#x5C31;&#x50CF;&#x666E;&#x901A;&#x7DE8;&#x7A0B;&#x90A3;&#x6A23;. &#x7DE8;&#x5BEB;&#x6E2C;&#x8A66;&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x6A5F;&#x68B0;&#x7684;&#x586B;&#x5145;&#x904E;&#x7A0B;; &#x4E00;&#x500B;&#x6E2C;&#x8A66;&#x4E5F;&#x6709;&#x81EA;&#x5DF1;&#x7684;&#x63A5;&#x53E3;, &#x76E1;&#x7BA1;&#x5B83;&#x7684;&#x7DAD;&#x8B77;&#x8005;&#x4E5F;&#x662F;&#x6E2C;&#x8A66;&#x50C5;&#x6709;&#x7684;&#x4E00;&#x500B;&#x7528;&#x6236;. &#x4E00;&#x500B;&#x597D;&#x7684;&#x6E2C;&#x8A66;&#x4E0D;&#x61C9;&#x8A72;&#x5F15;&#x767C;&#x5176;&#x4ED6;&#x7121;&#x95DC;&#x7684;&#x932F;&#x8AA4;&#x4FE1;&#x606F;, &#x5B83;&#x96BB;&#x8981;&#x6E05;&#x6670;&#x7C21;&#x6F54;&#x5730;&#x63CF;&#x8FF0;&#x554F;&#x984C;&#x7684;&#x7665;&#x72C0;&#x537D;&#x53EF;, &#x6709;&#x6642;&#x5019;&#x53EF;&#x80FD;&#x9084;&#x9700;&#x8981;&#x4E00;&#x4E9B;&#x4E0A;&#x4E0B;&#x6587;&#x4FE1;&#x606F;. &#x5728;&#x7406;&#x60F3;&#x60C5;&#x6CC1;&#x4E0B;, &#x7DAD;&#x8B77;&#x8005;&#x53EF;&#x4EE5;&#x5728;&#x4E0D;&#x770B;&#x4EE3;&#x78BC;&#x7684;&#x60C5;&#x6CC1;&#x4E0B;&#x5C31;&#x80FD;&#x6839;&#x64DA;&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#x5B9A;&#x4F4D;&#x932F;&#x8AA4;&#x7523;&#x751F;&#x7684;&#x539F;&#x56E0;. &#x4E00;&#x500B;&#x597D;&#x7684;&#x6E2C;&#x8A66;&#x4E0D;&#x61C9;&#x8A72;&#x5728;&#x9047;&#x5230;&#x4E00;&#x9EDE;&#x5C0F;&#x932F;&#x8AA4;&#x5C31;&#x7ACB;&#x523B;&#x9000;&#x9F63;&#x6E2C;&#x8A66;, &#x5B83;&#x61C9;&#x8A72;&#x5690;&#x8A66;&#x5831;&#x544A;&#x66F4;&#x591A;&#x7684;&#x6E2C;&#x8A66;, &#x56E0;&#x6B64;&#x6211;&#x5011;&#x53EF;&#x80FD;&#x5F9E;&#x591A;&#x500B;&#x5931;&#x6557;&#x6E2C;&#x8A66;&#x7684;&#x6A21;&#x5F0F;&#x4E2D;&#x767C;&#x73FE;&#x932F;&#x8AA4;&#x7523;&#x751F;&#x7684;&#x898F;&#x5F8B;.</p>
<p>&#x8A31;&#x591A;Go&#x65B0;&#x4EBA;&#x6703;&#x9A5A;&#x7570;&#x8207;&#x5B83;&#x7684;&#x6975;&#x7C21;&#x7684;&#x6E2C;&#x8A66;&#x6846;&#x67B6;. &#x5F88;&#x591A;&#x5176;&#x4ED6;&#x8A9E;&#x8A00;&#x7684;&#x6E2C;&#x8A66;&#x6846;&#x67B6;&#x90FD;&#x63D0;&#x4F9B;&#x4E86;&#x8B58;&#x522B;&#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x7684;&#x6A5F;&#x88FD;(&#x901A;&#x5E38;&#x4F7F;&#x7528;&#x53CD;&#x5C04;&#x6216;&#x5143;&#x6578;&#x64DA;), &#x901A;&#x904E;&#x8A2D;&#x7F6E;&#x4E00;&#x4E9B; &#x2018;&#x2018;setup&#x2019;&#x2019; &#x548C; &#x2018;&#x2018;teardown&#x2019;&#x2019; &#x7684;&#x9264;&#x5B50;&#x51FD;&#x6578;&#x4F86;&#x57F7;&#x884C;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#x904B;&#x884C;&#x7684;&#x521D;&#x59CB;&#x5316;&#x6216;&#x4E4B;&#x5F8C;&#x7684;&#x6E05;&#x7406;&#x64CD;&#x4F5C;, &#x540C;&#x6642;&#x6E2C;&#x8A66;&#x5DE5;&#x5177;&#x7BB1;&#x9084;&#x63D0;&#x4F9B;&#x4E86;&#x5F88;&#x591A;&#x985E;&#x4F3C;assert&#x65B7;&#x8A00;, &#x6BD4;&#x8F03;&#x503C;, &#x683C;&#x5F0F;&#x5316;&#x8F38;&#x51FA;&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#x548C;&#x505C;&#x6B62;&#x4E00;&#x500B;&#x8B58;&#x522B;&#x7684;&#x6E2C;&#x8A66;&#x7B49;&#x8F14;&#x52A9;&#x51FD;&#x6578;(&#x901A;&#x5E38;&#x4F7F;&#x7528;&#x7570;&#x5E38;&#x6A5F;&#x88FD;). &#x96D6;&#x7136;&#x9019;&#x4E9B;&#x6A5F;&#x88FD;&#x53EF;&#x4EE5;&#x4F7F;&#x5F97;&#x6E2C;&#x8A66;&#x975E;&#x5E38;&#x7C21;&#x6F54;, &#x4F46;&#x662F;&#x6E2C;&#x8A66;&#x8F38;&#x51FA;&#x7684;&#x65E5;&#x8A8C;&#x537B;&#x50CF;&#x706B;&#x661F;&#x6587;&#x4E00;&#x822C;&#x96E3;&#x4EE5;&#x7406;&#x89E3;. &#x6B64;&#x5916;, &#x96D6;&#x7136;&#x6E2C;&#x8A66;&#x6700;&#x7D42;&#x4E5F;&#x6703;&#x8F38;&#x51FA; PASS &#x6216; FAIL &#x7684;&#x5831;&#x544A;, &#x4F46;&#x662F;&#x5B83;&#x5011;&#x63D0;&#x4F9B;&#x7684;&#x4FE1;&#x606F;&#x683C;&#x5F0F;&#x537B;&#x975E;&#x5E38;&#x4E0D;&#x5229;&#x65BC;&#x4EE3;&#x78BC;&#x7DAD;&#x8B77;&#x8005;&#x5FEB;&#x901F;&#x5B9A;&#x4F4D;&#x554F;&#x984C;, &#x56E0;&#x7232;&#x5931;&#x6557;&#x7684;&#x4FE1;&#x606F;&#x7684;&#x5177;&#x9AD4;&#x542B;&#x7FA9;&#x662F;&#x975E;&#x5E38;&#x96B1;&#x60A3;&#x7684;, &#x6BD4;&#x5982; &quot;assert: 0 == 1&quot; &#x6216; &#x6210;&#x9801;&#x7684;&#x6D77;&#x91CF;&#x8DDF;&#x8E64;&#x65E5;&#x8A8C;.</p>
<p>Go&#x8A9E;&#x8A00;&#x7684;&#x6E2C;&#x8A66;&#x98A8;&#x683C;&#x5247;&#x5F62;&#x6210;&#x9BAE;&#x660E;&#x5C0D;&#x6BD4;. &#x5B83;&#x671F;&#x671B;&#x6E2C;&#x8A66;&#x8005;&#x81EA;&#x5DF1;&#x5B8C;&#x6210;&#x5927;&#x90E8;&#x5206;&#x7684;&#x5DE5;&#x4F5C;, &#x5B9A;&#x7FA9;&#x51FD;&#x6578;&#x907F;&#x514D;&#x91CD;&#x8907;, &#x5C31;&#x50CF;&#x666E;&#x901A;&#x7DE8;&#x7A0B;&#x90A3;&#x6A23;. &#x7DE8;&#x5BEB;&#x6E2C;&#x8A66;&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x6A5F;&#x68B0;&#x7684;&#x586B;&#x5145;&#x904E;&#x7A0B;; &#x4E00;&#x500B;&#x6E2C;&#x8A66;&#x4E5F;&#x6709;&#x81EA;&#x5DF1;&#x7684;&#x63A5;&#x53E3;, &#x76E1;&#x7BA1;&#x5B83;&#x7684;&#x7DAD;&#x8B77;&#x8005;&#x4E5F;&#x662F;&#x6E2C;&#x8A66;&#x50C5;&#x6709;&#x7684;&#x4E00;&#x500B;&#x7528;&#x6236;. &#x4E00;&#x500B;&#x597D;&#x7684;&#x6E2C;&#x8A66;&#x4E0D;&#x61C9;&#x8A72;&#x5F15;&#x767C;&#x5176;&#x4ED6;&#x7121;&#x95DC;&#x7684;&#x932F;&#x8AA4;&#x4FE1;&#x606F;, &#x5B83;&#x96BB;&#x8981;&#x6E05;&#x6670;&#x7C21;&#x6F54;&#x5730;&#x63CF;&#x8FF0;&#x554F;&#x984C;&#x7684;&#x7665;&#x72C0;&#x537D;&#x53EF;, &#x6709;&#x6642;&#x5019;&#x53EF;&#x80FD;&#x9084;&#x9700;&#x8981;&#x4E00;&#x4E9B;&#x4E0A;&#x4E0B;&#x6587;&#x4FE1;&#x606F;. &#x5728;&#x7406;&#x60F3;&#x60C5;&#x6CC1;&#x4E0B;, &#x7DAD;&#x8B77;&#x8005;&#x53EF;&#x4EE5;&#x5728;&#x4E0D;&#x770B;&#x4EE3;&#x78BC;&#x7684;&#x60C5;&#x6CC1;&#x4E0B;&#x5C31;&#x80FD;&#x6839;&#x64DA;&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#x5B9A;&#x4F4D;&#x932F;&#x8AA4;&#x7523;&#x751F;&#x7684;&#x539F;&#x56E0;. &#x4E00;&#x500B;&#x597D;&#x7684;&#x6E2C;&#x8A66;&#x4E0D;&#x61C9;&#x8A72;&#x5728;&#x9047;&#x5230;&#x4E00;&#x9EDE;&#x5C0F;&#x932F;&#x8AA4;&#x5C31;&#x7ACB;&#x523B;&#x9000;&#x51FA;&#x6E2C;&#x8A66;, &#x5B83;&#x61C9;&#x8A72;&#x5690;&#x8A66;&#x5831;&#x544A;&#x66F4;&#x591A;&#x7684;&#x6E2C;&#x8A66;, &#x56E0;&#x6B64;&#x6211;&#x5011;&#x53EF;&#x80FD;&#x5F9E;&#x591A;&#x500B;&#x5931;&#x6557;&#x6E2C;&#x8A66;&#x7684;&#x6A21;&#x5F0F;&#x4E2D;&#x767C;&#x73FE;&#x932F;&#x8AA4;&#x7523;&#x751F;&#x7684;&#x898F;&#x5F8B;.</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x65B7;&#x8A00;&#x51FD;&#x6578;&#x6BD4;&#x8F03;&#x5169;&#x500B;&#x503C;, &#x7136;&#x5F8C;&#x751F;&#x6210;&#x4E00;&#x500B;&#x901A;&#x7528;&#x7684;&#x932F;&#x8AA4;&#x4FE1;&#x606F;, &#x4F75;&#x505C;&#x6B62;&#x7A0B;&#x5E8F;. &#x5B83;&#x5F88;&#x65B9;&#x4FBF;&#x4F7F;&#x7528;&#x4E5F;&#x78BA;&#x5BE6;&#x6709;&#x6548;&#x679C;, &#x4F46;&#x662F;&#x7576;&#x8B58;&#x522B;&#x7684;&#x6642;&#x5019;, &#x932F;&#x8AA4;&#x6642;&#x6253;&#x5370;&#x7684;&#x4FE1;&#x606F;&#x5E7E;&#x4E4E;&#x662F;&#x6C92;&#x6709;&#x50F9;&#x503C;&#x7684;. &#x5B83;&#x4F75;&#x6C92;&#x6709;&#x7232;&#x89E3;&#x6C7A;&#x554F;&#x984C;&#x63D0;&#x4F9B;&#x4E00;&#x500B;&#x5F88;&#x597D;&#x7684;&#x5165;&#x53E3;.</p>
<pre><code class="lang-Go"><span class="hljs-keyword">import</span> (
<span class="hljs-string">&quot;fmt&quot;</span>
@@ -2469,7 +2473,7 @@ FAIL gopl.io/ch11/echo 0.006s
<span class="hljs-comment">// ...</span>
}
</code></pre>
<p>&#x5F9E;&#x9019;&#x500B;&#x610F;&#x7FA9;&#x4E0A;&#x8AAC;, &#x65B7;&#x8A00;&#x51FD;&#x6578;&#x72AF;&#x4E86;&#x904E;&#x65E9;&#x62BD;&#x8C61;&#x7684;&#x932F;&#x8AA4;: &#x50C5;&#x50C5;&#x6E2C;&#x8A66;&#x5169;&#x500B;&#x6574;&#x6578;&#x662F;&#x5426;&#x76F8;&#x540C;, &#x800C;&#x653E;&#x68C4;&#x4E86;&#x6839;&#x64DA;&#x4E0A;&#x4E0B;&#x6587;&#x63D0;&#x4F9B;&#x66F4;&#x6709;&#x610F;&#x7FA9;&#x7684;&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#x7684;&#x505A;&#x6CD5;. &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x6839;&#x64DA;&#x5177;&#x9AD4;&#x7684;&#x932F;&#x8AA4;&#x6253;&#x5370;&#x4E00;&#x500B;&#x66F4;&#x6709;&#x50F9;&#x503C;&#x7684;&#x932F;&#x8AA4;&#x4FE1;&#x606F;, &#x5C31;&#x50CF;&#x4E0B;&#x9762;&#x4F8B;&#x5B50;&#x90A3;&#x6A23;. &#x6E2C;&#x8A66;&#x5728;&#x96BB;&#x6709;&#x4E00;&#x6B21;&#x91CD;&#x8907;&#x7684;&#x6A21;&#x5F0F;&#x9F63;&#x73FE;&#x6642;&#x5F15;&#x5165;&#x62BD;&#x8C61;.</p>
<p>&#x5F9E;&#x9019;&#x500B;&#x610F;&#x7FA9;&#x4E0A;&#x8AAC;, &#x65B7;&#x8A00;&#x51FD;&#x6578;&#x72AF;&#x4E86;&#x904E;&#x65E9;&#x62BD;&#x8C61;&#x7684;&#x932F;&#x8AA4;: &#x50C5;&#x50C5;&#x6E2C;&#x8A66;&#x5169;&#x500B;&#x6574;&#x6578;&#x662F;&#x5426;&#x76F8;&#x540C;, &#x800C;&#x653E;&#x68C4;&#x4E86;&#x6839;&#x64DA;&#x4E0A;&#x4E0B;&#x6587;&#x63D0;&#x4F9B;&#x66F4;&#x6709;&#x610F;&#x7FA9;&#x7684;&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#x7684;&#x505A;&#x6CD5;. &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x6839;&#x64DA;&#x5177;&#x9AD4;&#x7684;&#x932F;&#x8AA4;&#x6253;&#x5370;&#x4E00;&#x500B;&#x66F4;&#x6709;&#x50F9;&#x503C;&#x7684;&#x932F;&#x8AA4;&#x4FE1;&#x606F;, &#x5C31;&#x50CF;&#x4E0B;&#x9762;&#x4F8B;&#x5B50;&#x90A3;&#x6A23;. &#x6E2C;&#x8A66;&#x5728;&#x96BB;&#x6709;&#x4E00;&#x6B21;&#x91CD;&#x8907;&#x7684;&#x6A21;&#x5F0F;&#x51FA;&#x73FE;&#x6642;&#x5F15;&#x5165;&#x62BD;&#x8C61;.</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> TestSplit(t *testing.T) {
s, sep := <span class="hljs-string">&quot;a:b:c&quot;</span>, <span class="hljs-string">&quot;:&quot;</span>
words := strings.Split(s, sep)
@@ -2481,12 +2485,12 @@ FAIL gopl.io/ch11/echo 0.006s
}
</code></pre>
<p>&#x73FE;&#x5728;&#x7684;&#x6E2C;&#x8A66;&#x4E0D;&#x50C5;&#x5831;&#x544A;&#x4E86;&#x8ABF;&#x7528;&#x7684;&#x5177;&#x9AD4;&#x51FD;&#x6578;, &#x5B83;&#x7684;&#x8F38;&#x5165;, &#x548C;&#x7D50;&#x679C;&#x7684;&#x610F;&#x7FA9;; &#x4F75;&#x4E14;&#x6253;&#x5370;&#x7684;&#x771E;&#x5BE6;&#x8FD4;&#x8FF4;&#x7684;&#x503C;&#x548C;&#x671F;&#x671B;&#x8FD4;&#x8FF4;&#x7684;&#x503C;; &#x4F75;&#x4E14;&#x537D;&#x4F7F;&#x65B7;&#x8A00;&#x5931;&#x6557;&#x4F9D;&#x7136;&#x6703;&#x7E7C;&#x7E8C;&#x5690;&#x8A66;&#x904B;&#x884C;&#x66F4;&#x591A;&#x7684;&#x6E2C;&#x8A66;. &#x4E00;&#x65E6;&#x6211;&#x5011;&#x5BEB;&#x4E86;&#x9019;&#x6A23;&#x7D50;&#x69CB;&#x7684;&#x6E2C;&#x8A66;, &#x4E0B;&#x4E00;&#x6B65;&#x81EA;&#x7136;&#x4E0D;&#x662F;&#x7528;&#x66F4;&#x591A;&#x7684;if&#x8A9E;&#x53E5;&#x4F86;&#x64F4;&#x5C55;&#x6E2C;&#x8A66;&#x7528;&#x4F8B;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7528;&#x50CF; IsPalindrome &#x7684;&#x8868;&#x9A45;&#x52D5;&#x6E2C;&#x8A66;&#x90A3;&#x6A23;&#x4F86;&#x6E96;&#x5099;&#x66F4;&#x591A;&#x7684; s, sep &#x6E2C;&#x8A66;&#x7528;&#x4F8B;.</p>
<p>&#x524D;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x4F75;&#x4E0D;&#x9700;&#x8981;&#x984D;&#x5916;&#x7684;&#x8F14;&#x52A9;&#x51FD;&#x6578;, &#x5982;&#x679C;&#x5982;&#x679C;&#x6709;&#x53EF;&#x4EE5;&#x4F7F;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x66F4;&#x7C21;&#x55AE;&#x7684;&#x65B9;&#x6CD5;&#x6211;&#x5011;&#x4E5F;&#x6A02;&#x610F;&#x63A5;&#x53D7;. (&#x6211;&#x5011;&#x5C07;&#x5728; 13.3&#x7BC0; &#x770B;&#x5230;&#x4E00;&#x500B; reflect.DeepEqual &#x8F14;&#x52A9;&#x51FD;&#x6578;.) &#x958B;&#x59CB;&#x4E00;&#x500B;&#x597D;&#x7684;&#x6E2C;&#x8A66;&#x7684;&#x95DC;&#x9375;&#x662F;&#x901A;&#x904E;&#x5BE6;&#x73FE;&#x4F60;&#x771E;&#x6B63;&#x60F3;&#x8981;&#x7684;&#x5177;&#x9AD4;&#x884C;&#x7232;, &#x7136;&#x5F8C;&#x7E94;&#x662F;&#x8003;&#x616E;&#x7136;&#x5F8C;&#x7C21;&#x5316;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;. &#x6700;&#x597D;&#x7684;&#x7D50;&#x679C;&#x662F;&#x76F4;&#x63A5;&#x5F9E;&#x5EAB;&#x7684;&#x62BD;&#x8C61;&#x63A5;&#x53E3;&#x958B;&#x59CB;, &#x91DD;&#x5C0D;&#x516C;&#x5171;&#x63A5;&#x53E3;&#x7DE8;&#x5BEB;&#x4E00;&#x4E9B;&#x6E2C;&#x8A66;&#x51FD;&#x6578;.</p>
<p><strong>&#x7DF4;&#x7FD2;11.5:</strong> &#x7528;&#x8868;&#x683C;&#x9A45;&#x52D5;&#x7684;&#x6280;&#x8853;&#x64F4;&#x5C55;TestSplit&#x6E2C;&#x8A66;, &#x4F75;&#x6253;&#x5370;&#x671F;&#x671B;&#x7684;&#x8F38;&#x9F63;&#x7D50;&#x679C;.</p>
<p>&#x524D;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x4F75;&#x4E0D;&#x9700;&#x8981;&#x984D;&#x5916;&#x7684;&#x8F14;&#x52A9;&#x51FD;&#x6578;, &#x5982;&#x679C;&#x5982;&#x679C;&#x6709;&#x53EF;&#x4EE5;&#x4F7F;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x66F4;&#x7C21;&#x55AE;&#x7684;&#x65B9;&#x6CD5;&#x6211;&#x5011;&#x4E5F;&#x6A02;&#x610F;&#x63A5;&#x53D7;. (&#x6211;&#x5011;&#x5C07;&#x5728; 13.3&#x7BC0; &#x770B;&#x5230;&#x4E00;&#x500B; reflect.DeepEqual &#x8F14;&#x52A9;&#x51FD;&#x6578;.) &#x958B;&#x59CB;&#x4E00;&#x500B;&#x597D;&#x7684;&#x6E2C;&#x8A66;&#x7684;&#x95DC;&#x9375;&#x662F;&#x901A;&#x904E;&#x5BE6;&#x73FE;&#x4F60;&#x771E;&#x6B63;&#x60F3;&#x8981;&#x7684;&#x5177;&#x9AD4;&#x884C;&#x7232;, &#x7136;&#x5F8C;&#x624D;&#x662F;&#x8003;&#x616E;&#x7136;&#x5F8C;&#x7C21;&#x5316;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;. &#x6700;&#x597D;&#x7684;&#x7D50;&#x679C;&#x662F;&#x76F4;&#x63A5;&#x5F9E;&#x5EAB;&#x7684;&#x62BD;&#x8C61;&#x63A5;&#x53E3;&#x958B;&#x59CB;, &#x91DD;&#x5C0D;&#x516C;&#x5171;&#x63A5;&#x53E3;&#x7DE8;&#x5BEB;&#x4E00;&#x4E9B;&#x6E2C;&#x8A66;&#x51FD;&#x6578;.</p>
<p><strong>&#x7DF4;&#x7FD2;11.5:</strong> &#x7528;&#x8868;&#x683C;&#x9A45;&#x52D5;&#x7684;&#x6280;&#x8853;&#x64F4;&#x5C55;TestSplit&#x6E2C;&#x8A66;, &#x4F75;&#x6253;&#x5370;&#x671F;&#x671B;&#x7684;&#x8F38;&#x51FA;&#x7D50;&#x679C;.</p>
<h3 id="1126-&#x907F;&#x514D;&#x7684;&#x4E0D;&#x7A69;&#x5B9A;&#x7684;&#x6E2C;&#x8A66;">11.2.6. &#x907F;&#x514D;&#x7684;&#x4E0D;&#x7A69;&#x5B9A;&#x7684;&#x6E2C;&#x8A66;</h3>
<p>&#x5982;&#x679C;&#x4E00;&#x500B;&#x61C9;&#x7528;&#x7A0B;&#x5E8F;&#x5C0D;&#x65BC;&#x65B0;&#x9F63;&#x73FE;&#x7684;&#x4F46;&#x6709;&#x6548;&#x7684;&#x8F38;&#x5165;&#x7D93;&#x5E38;&#x5931;&#x6557;&#x8AAC;&#x660E;&#x7A0B;&#x5E8F;&#x4E0D;&#x5920;&#x7A69;&#x5065;; &#x540C;&#x6A23;&#x5982;&#x679C;&#x4E00;&#x500B;&#x6E2C;&#x8A66;&#x50C5;&#x50C5;&#x56E0;&#x7232;&#x8072;&#x97F3;&#x8B8A;&#x5316;&#x5C31;&#x6703;&#x5C0E;&#x81F4;&#x5931;&#x6557;&#x4E5F;&#x662F;&#x4E0D;&#x5408;&#x908F;&#x8F2F;&#x7684;. &#x5C31;&#x50CF;&#x4E00;&#x500B;&#x4E0D;&#x5920;&#x7A69;&#x5065;&#x7684;&#x7A0B;&#x5E8F;&#x6703;&#x632B;&#x6557;&#x5B83;&#x7684;&#x7528;&#x6236;&#x4E00;&#x6A23;, &#x4E00;&#x500B;&#x8106;&#x5F31;&#x6027;&#x6E2C;&#x8A66;&#x540C;&#x6A23;&#x6703;&#x6FC0;&#x6012;&#x5B83;&#x7684;&#x7DAD;&#x8B77;&#x8005;. &#x6700;&#x8106;&#x5F31;&#x7684;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x6703;&#x5728;&#x7A0B;&#x5E8F;&#x6C92;&#x6709;&#x4EFB;&#x4F55;&#x8B8A;&#x5316;&#x7684;&#x6642;&#x5019;&#x7523;&#x751F;&#x4E0D;&#x540C;&#x7684;&#x7D50;&#x679C;, &#x6642;&#x597D;&#x6642;&#x58DE;, &#x8655;&#x7406;&#x5B83;&#x5011;&#x6703;&#x8017;&#x8CBB;&#x5927;&#x91CF;&#x7684;&#x6642;&#x9593;&#x4F46;&#x662F;&#x4F75;&#x4E0D;&#x6703;&#x5F97;&#x5230;&#x4EFB;&#x4F55;&#x597D;&#x8655;.</p>
<p>&#x7576;&#x4E00;&#x500B;&#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x7523;&#x751F;&#x4E00;&#x500B;&#x8907;&#x96DC;&#x7684;&#x8F38;&#x9F63;&#x5982;&#x4E00;&#x500B;&#x5F88;&#x9577;&#x7684;&#x5B57;&#x7B26;&#x4E32;, &#x6216;&#x4E00;&#x500B;&#x7CBE;&#x5FC3;&#x8A2D;&#x8A08;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;, &#x6216;&#x4E00;&#x500B;&#x6587;&#x4EF6;, &#x5B83;&#x53EF;&#x4EE5;&#x7528;&#x65BC;&#x548C;&#x9810;&#x8A2D;&#x7684;&#x2018;&#x2018;golden&#x2019;&#x2019;&#x7D50;&#x679C;&#x6578;&#x64DA;&#x5C0D;&#x6BD4;, &#x7528;&#x9019;&#x7A2E;&#x7C21;&#x55AE;&#x65B9;&#x5F0F;&#x5BEB;&#x6E2C;&#x8A66;&#x662F;&#x8A98;&#x4EBA;&#x7684;. &#x4F46;&#x662F;&#x96A8;&#x7740;&#x9805;&#x76EE;&#x7684;&#x767C;&#x5C55;, &#x8F38;&#x9F63;&#x7684;&#x67D0;&#x4E9B;&#x90E8;&#x5206;&#x5F88;&#x53EF;&#x80FD;&#x6703;&#x767C;&#x751F;&#x8B8A;&#x5316;, &#x76E1;&#x7BA1;&#x5F88;&#x53EF;&#x80FD;&#x662F;&#x4E00;&#x500B;&#x6539;&#x9032;&#x7684;&#x5BE6;&#x73FE;&#x5C0E;&#x81F4;&#x7684;. &#x800C;&#x4E14;&#x4E0D;&#x50C5;&#x50C5;&#x662F;&#x8F38;&#x9F63;&#x90E8;&#x5206;, &#x51FD;&#x6578;&#x8907;&#x96DC;&#x8907;&#x88FD;&#x7684;&#x8F38;&#x5165;&#x90E8;&#x5206;&#x53EF;&#x80FD;&#x4E5F;&#x8DDF;&#x7740;&#x8B8A;&#x5316;&#x4E86;, &#x56E0;&#x6B64;&#x6E2C;&#x8A66;&#x4F7F;&#x7528;&#x7684;&#x8F38;&#x5165;&#x4E5F;&#x5C31;&#x4E0D;&#x5728;&#x6709;&#x6548;&#x4E86;.</p>
<p>&#x907F;&#x514D;&#x8106;&#x5F31;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x96BB;&#x6AA2;&#x6E2C;&#x4F60;&#x771E;&#x6B63;&#x95DC;&#x5FC3;&#x7684;&#x5C6C;&#x6027;. &#x4FDD;&#x5B58;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x7684;&#x7C21;&#x6F54;&#x548C;&#x5167;&#x90E8;&#x7D50;&#x69CB;&#x7684;&#x7A69;&#x5B9A;. &#x7279;&#x522B;&#x662F;&#x5C0D;&#x65B7;&#x8A00;&#x90E8;&#x5206;&#x8981;&#x6709;&#x6240;&#x9078;&#x64C7;. &#x4E0D;&#x8981;&#x6AA2;&#x67FB;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x5168;&#x5339;&#x914D;, &#x4F46;&#x662F;&#x5C0B;&#x627E;&#x76F8;&#x95DC;&#x7684;&#x5B50;&#x5B57;&#x7B26;&#x4E32;, &#x56E0;&#x7232;&#x67D0;&#x4E9B;&#x5B50;&#x5B57;&#x7B26;&#x4E32;&#x5728;&#x9805;&#x76EE;&#x7684;&#x767C;&#x5C55;&#x4E2D;&#x662F;&#x6BD4;&#x8F03;&#x7A69;&#x5B9A;&#x4E0D;&#x8B8A;&#x7684;. &#x901A;&#x5E38;&#x7DE8;&#x5BEB;&#x4E00;&#x500B;&#x91CD;&#x8907;&#x96DC;&#x7684;&#x8F38;&#x9F63;&#x4E2D;&#x63D0;&#x53D6;&#x5FC5;&#x8981;&#x7CBE;&#x83EF;&#x4FE1;&#x606F;&#x4EE5;&#x7528;&#x65BC;&#x65B7;&#x8A00;&#x662F;&#x503C;&#x5F97;&#x7684;, &#x96D6;&#x7136;&#x9019;&#x53EF;&#x80FD;&#x6703;&#x5E36;&#x4F86;&#x5F88;&#x591A;&#x524D;&#x671F;&#x7684;&#x5DE5;&#x4F5C;, &#x4F46;&#x662F;&#x5B83;&#x53EF;&#x4EE5;&#x5E6B;&#x52A9;&#x8FC5;&#x901F;&#x53CA;&#x6642;&#x8129;&#x8907;&#x56E0;&#x7232;&#x9805;&#x76EE;&#x6F14;&#x5316;&#x800C;&#x5C0E;&#x81F4;&#x7684;&#x4E0D;&#x5408;&#x908F;&#x8F2F;&#x7684;&#x5931;&#x6557;&#x6E2C;&#x8A66;.</p>
<p>&#x5982;&#x679C;&#x4E00;&#x500B;&#x61C9;&#x7528;&#x7A0B;&#x5E8F;&#x5C0D;&#x65BC;&#x65B0;&#x51FA;&#x73FE;&#x7684;&#x4F46;&#x6709;&#x6548;&#x7684;&#x8F38;&#x5165;&#x7D93;&#x5E38;&#x5931;&#x6557;&#x8AAC;&#x660E;&#x7A0B;&#x5E8F;&#x4E0D;&#x5920;&#x7A69;&#x5065;; &#x540C;&#x6A23;&#x5982;&#x679C;&#x4E00;&#x500B;&#x6E2C;&#x8A66;&#x50C5;&#x50C5;&#x56E0;&#x7232;&#x8072;&#x97F3;&#x8B8A;&#x5316;&#x5C31;&#x6703;&#x5C0E;&#x81F4;&#x5931;&#x6557;&#x4E5F;&#x662F;&#x4E0D;&#x5408;&#x908F;&#x8F2F;&#x7684;. &#x5C31;&#x50CF;&#x4E00;&#x500B;&#x4E0D;&#x5920;&#x7A69;&#x5065;&#x7684;&#x7A0B;&#x5E8F;&#x6703;&#x632B;&#x6557;&#x5B83;&#x7684;&#x7528;&#x6236;&#x4E00;&#x6A23;, &#x4E00;&#x500B;&#x8106;&#x5F31;&#x6027;&#x6E2C;&#x8A66;&#x540C;&#x6A23;&#x6703;&#x6FC0;&#x6012;&#x5B83;&#x7684;&#x7DAD;&#x8B77;&#x8005;. &#x6700;&#x8106;&#x5F31;&#x7684;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x6703;&#x5728;&#x7A0B;&#x5E8F;&#x6C92;&#x6709;&#x4EFB;&#x4F55;&#x8B8A;&#x5316;&#x7684;&#x6642;&#x5019;&#x7523;&#x751F;&#x4E0D;&#x540C;&#x7684;&#x7D50;&#x679C;, &#x6642;&#x597D;&#x6642;&#x58DE;, &#x8655;&#x7406;&#x5B83;&#x5011;&#x6703;&#x8017;&#x8CBB;&#x5927;&#x91CF;&#x7684;&#x6642;&#x9593;&#x4F46;&#x662F;&#x4F75;&#x4E0D;&#x6703;&#x5F97;&#x5230;&#x4EFB;&#x4F55;&#x597D;&#x8655;.</p>
<p>&#x7576;&#x4E00;&#x500B;&#x6E2C;&#x8A66;&#x51FD;&#x6578;&#x7523;&#x751F;&#x4E00;&#x500B;&#x8907;&#x96DC;&#x7684;&#x8F38;&#x51FA;&#x5982;&#x4E00;&#x500B;&#x5F88;&#x9577;&#x7684;&#x5B57;&#x7B26;&#x4E32;, &#x6216;&#x4E00;&#x500B;&#x7CBE;&#x5FC3;&#x8A2D;&#x8A08;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;, &#x6216;&#x4E00;&#x500B;&#x6587;&#x4EF6;, &#x5B83;&#x53EF;&#x4EE5;&#x7528;&#x65BC;&#x548C;&#x9810;&#x8A2D;&#x7684;&#x2018;&#x2018;golden&#x2019;&#x2019;&#x7D50;&#x679C;&#x6578;&#x64DA;&#x5C0D;&#x6BD4;, &#x7528;&#x9019;&#x7A2E;&#x7C21;&#x55AE;&#x65B9;&#x5F0F;&#x5BEB;&#x6E2C;&#x8A66;&#x662F;&#x8A98;&#x4EBA;&#x7684;. &#x4F46;&#x662F;&#x96A8;&#x7740;&#x9805;&#x76EE;&#x7684;&#x767C;&#x5C55;, &#x8F38;&#x51FA;&#x7684;&#x67D0;&#x4E9B;&#x90E8;&#x5206;&#x5F88;&#x53EF;&#x80FD;&#x6703;&#x767C;&#x751F;&#x8B8A;&#x5316;, &#x76E1;&#x7BA1;&#x5F88;&#x53EF;&#x80FD;&#x662F;&#x4E00;&#x500B;&#x6539;&#x9032;&#x7684;&#x5BE6;&#x73FE;&#x5C0E;&#x81F4;&#x7684;. &#x800C;&#x4E14;&#x4E0D;&#x50C5;&#x50C5;&#x662F;&#x8F38;&#x51FA;&#x90E8;&#x5206;, &#x51FD;&#x6578;&#x8907;&#x96DC;&#x8907;&#x88FD;&#x7684;&#x8F38;&#x5165;&#x90E8;&#x5206;&#x53EF;&#x80FD;&#x4E5F;&#x8DDF;&#x7740;&#x8B8A;&#x5316;&#x4E86;, &#x56E0;&#x6B64;&#x6E2C;&#x8A66;&#x4F7F;&#x7528;&#x7684;&#x8F38;&#x5165;&#x4E5F;&#x5C31;&#x4E0D;&#x5728;&#x6709;&#x6548;&#x4E86;.</p>
<p>&#x907F;&#x514D;&#x8106;&#x5F31;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x96BB;&#x6AA2;&#x6E2C;&#x4F60;&#x771E;&#x6B63;&#x95DC;&#x5FC3;&#x7684;&#x5C6C;&#x6027;. &#x4FDD;&#x5B58;&#x6E2C;&#x8A66;&#x4EE3;&#x78BC;&#x7684;&#x7C21;&#x6F54;&#x548C;&#x5167;&#x90E8;&#x7D50;&#x69CB;&#x7684;&#x7A69;&#x5B9A;. &#x7279;&#x522B;&#x662F;&#x5C0D;&#x65B7;&#x8A00;&#x90E8;&#x5206;&#x8981;&#x6709;&#x6240;&#x9078;&#x64C7;. &#x4E0D;&#x8981;&#x6AA2;&#x67FB;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x5168;&#x5339;&#x914D;, &#x4F46;&#x662F;&#x5C0B;&#x627E;&#x76F8;&#x95DC;&#x7684;&#x5B50;&#x5B57;&#x7B26;&#x4E32;, &#x56E0;&#x7232;&#x67D0;&#x4E9B;&#x5B50;&#x5B57;&#x7B26;&#x4E32;&#x5728;&#x9805;&#x76EE;&#x7684;&#x767C;&#x5C55;&#x4E2D;&#x662F;&#x6BD4;&#x8F03;&#x7A69;&#x5B9A;&#x4E0D;&#x8B8A;&#x7684;. &#x901A;&#x5E38;&#x7DE8;&#x5BEB;&#x4E00;&#x500B;&#x91CD;&#x8907;&#x96DC;&#x7684;&#x8F38;&#x51FA;&#x4E2D;&#x63D0;&#x53D6;&#x5FC5;&#x8981;&#x7CBE;&#x83EF;&#x4FE1;&#x606F;&#x4EE5;&#x7528;&#x65BC;&#x65B7;&#x8A00;&#x662F;&#x503C;&#x5F97;&#x7684;, &#x96D6;&#x7136;&#x9019;&#x53EF;&#x80FD;&#x6703;&#x5E36;&#x4F86;&#x5F88;&#x591A;&#x524D;&#x671F;&#x7684;&#x5DE5;&#x4F5C;, &#x4F46;&#x662F;&#x5B83;&#x53EF;&#x4EE5;&#x5E6B;&#x52A9;&#x8FC5;&#x901F;&#x53CA;&#x6642;&#x8129;&#x8907;&#x56E0;&#x7232;&#x9805;&#x76EE;&#x6F14;&#x5316;&#x800C;&#x5C0E;&#x81F4;&#x7684;&#x4E0D;&#x5408;&#x908F;&#x8F2F;&#x7684;&#x5931;&#x6557;&#x6E2C;&#x8A66;.</p>
</section>
@@ -2518,7 +2522,7 @@ FAIL gopl.io/ch11/echo 0.006s
<script>
require(["gitbook"], function(gitbook) {
var config = {"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2}};
var config = {"katex":{},"highlight":{},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2}};
gitbook.start(config);
});
</script>