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="2.1" data-chapter-title="命名" data-filepath="ch2/ch2-01.md" data-basepath=".." data-revision="Fri Dec 25 2015 12:32:44 GMT+0800 (中国标准时间)">
<div class="book" data-level="2.1" data-chapter-title="命名" data-filepath="ch2/ch2-01.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>
@@ -2020,28 +2024,28 @@
<section class="normal" id="section-">
<h2 id="21-&#x547D;&#x540D;">2.1. &#x547D;&#x540D;</h2>
<p>Go&#x8A9E;&#x8A00;&#x4E2D;&#x7684;&#x7684;&#x51FD;&#x6578;&#x540D;, &#x8B8A;&#x91CF;&#x540D;, &#x5E38;&#x91CF;&#x540D;, &#x985E;&#x578B;&#x540D;, &#x8A9E;&#x53E5;&#x6BB5;&#x6A19;&#x7C64;&#x540D;, &#x548C; &#x5305;&#x540D; &#x7B49;&#x6240;&#x6709;&#x7684;&#x547D;&#x540D;, &#x90FD;&#x9075;&#x5FAA;&#x4E00;&#x500B;&#x547D;&#x540D;&#x898F;&#x5247;: &#x4E00;&#x500B;&#x540D;&#x5B57;&#x5FC5;&#x9B1A;&#x4EE5;&#x4E00;&#x500B;&#x5B57;&#x6BCD;(Unicode&#x5B57;&#x6BCD;)&#x6216;&#x4E0B;&#x5283;&#x7DDA;&#x958B;&#x982D;, &#x5F8C;&#x9762;&#x53EF;&#x4EE5;&#x8DDF;&#x4EFB;&#x610F;&#x6578;&#x91CF;&#x7684;&#x5B57;&#x6BCD;,&#x6578;&#x5B57;&#x6216;&#x4E0B;&#x5283;&#x7DDA;. &#x4E0D;&#x540C;&#x5927;&#x5C0F;&#x5BEB;&#x5B57;&#x6BCD;&#x662F;&#x4E0D;&#x540C;&#x7684;: <code>heapSort</code> &#x548C; <code>Heapsort</code> &#x662F;&#x5169;&#x500B;&#x4E0D;&#x540C;&#x7684;&#x540D;&#x5B57;.</p>
<p>Go&#x8A9E;&#x8A00;&#x985E;&#x4F3C; <code>if</code> &#x548C; <code>switch</code> &#x7684;&#x95DC;&#x9375;&#x5B57;&#x6709;25&#x500B;; &#x95DC;&#x9375;&#x5B57;&#x4E0D;&#x80FD;&#x7528;&#x65BC;&#x81EA;&#x5B9A;&#x7FA9;&#x540D;&#x5B57;, &#x96BB;&#x80FD;&#x5728;&#x7279;&#x5B9A;&#x8A9E;&#x6CD5;&#x4E2D;&#x4F7F;&#x7528;.</p>
<p>Go&#x8A9E;&#x8A00;&#x4E2D;&#x7684;&#x51FD;&#x6578;&#x540D;&#x3001;&#x8B8A;&#x91CF;&#x540D;&#x3001;&#x5E38;&#x91CF;&#x540D;&#x3001;&#x985E;&#x578B;&#x540D;&#x3001;&#x8A9E;&#x53E5;&#x6A19;&#x865F;&#x548C;&#x5305;&#x540D;&#x7B49;&#x6240;&#x6709;&#x7684;&#x547D;&#x540D;&#xFF0C;&#x90FD;&#x9075;&#x5FAA;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x547D;&#x540D;&#x898F;&#x5247;&#xFF1A;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x5FC5;&#x9B1A;&#x4EE5;&#x4E00;&#x500B;&#x5B57;&#x6BCD;&#xFF08;Unicode&#x5B57;&#x6BCD;&#xFF09;&#x6216;&#x4E0B;&#x5283;&#x7DDA;&#x958B;&#x982D;&#xFF0C;&#x5F8C;&#x9762;&#x53EF;&#x4EE5;&#x8DDF;&#x4EFB;&#x610F;&#x6578;&#x91CF;&#x7684;&#x5B57;&#x6BCD;&#x3001;&#x6578;&#x5B57;&#x6216;&#x4E0B;&#x5283;&#x7DDA;&#x3002;&#x5927;&#x5BEB;&#x5B57;&#x6BCD;&#x548C;&#x5C0F;&#x5BEB;&#x5B57;&#x6BCD;&#x662F;&#x4E0D;&#x540C;&#x7684;&#xFF1A;heapSort&#x548C;Heapsort&#x662F;&#x5169;&#x500B;&#x4E0D;&#x540C;&#x7684;&#x540D;&#x5B57;&#x3002;</p>
<p>Go&#x8A9E;&#x8A00;&#x4E2D;&#x985E;&#x4F3C;if&#x548C;switch&#x7684;&#x95DC;&#x9375;&#x5B57;&#x6709;25&#x500B;&#xFF1B;&#x95DC;&#x9375;&#x5B57;&#x4E0D;&#x80FD;&#x7528;&#x65BC;&#x81EA;&#x5B9A;&#x7FA9;&#x540D;&#x5B57;&#xFF0C;&#x96BB;&#x80FD;&#x5728;&#x7279;&#x5B9A;&#x8A9E;&#x6CD5;&#x7D50;&#x69CB;&#x4E2D;&#x4F7F;&#x7528;&#x3002;</p>
<pre><code>break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var
</code></pre><p>&#x6B64;&#x5916;, &#x9084;&#x6709;&#x5927;&#x7D04;30&#x591A;&#x500B;&#x9810;&#x5148;&#x5B9A;&#x7FA9;&#x7684;&#x540D;&#x5B57;, &#x6BD4;&#x5982; <code>int</code> &#x548C; <code>true</code> &#x7B49;, &#x4E3B;&#x8981;&#x7528;&#x65BC;&#x5167;&#x5EFA;&#x7684;&#x5E38;&#x91CF;, &#x985E;&#x578B;, &#x548C; &#x51FD;&#x6578;.</p>
<pre><code>Constants: true false iota nil
</code></pre><p>&#x6B64;&#x5916;&#xFF0C;&#x9084;&#x6709;&#x5927;&#x7D04;30&#x591A;&#x500B;&#x9810;&#x5B9A;&#x7FA9;&#x7684;&#x540D;&#x5B57;&#xFF0C;&#x6BD4;&#x5982;int&#x548C;true&#x7B49;&#xFF0C;&#x4E3B;&#x8981;&#x5C0D;&#x61C9;&#x5167;&#x5EFA;&#x7684;&#x5E38;&#x91CF;&#x3001;&#x985E;&#x578B;&#x548C;&#x51FD;&#x6578;&#x3002;</p>
<pre><code>&#x5167;&#x5EFA;&#x5E38;&#x91CF;: true false iota nil
Types: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error
&#x5167;&#x5EFA;&#x985E;&#x578B;: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error
Functions: make len cap new append copy close delete
complex real imag
panic recover
</code></pre><p>&#x9019;&#x4E9B;&#x5167;&#x90E8;&#x9810;&#x5148;&#x5B9A;&#x7FA9;&#x7684;&#x540D;&#x5B57;&#x4E0D;&#x662F;&#x95DC;&#x9375;&#x5B57;, &#x4F60;&#x53EF;&#x4EE5;&#x5728;&#x5B9A;&#x7FA9;&#x4E2D;&#x91CD;&#x73FE;&#x4F7F;&#x7528;&#x5B83;&#x5011;. &#x5728;&#x4E00;&#x4E9B;&#x7279;&#x6B8A;&#x7684;&#x5834;&#x666F;&#x91CD;&#x65B0;&#x5B9A;&#x7FA9;&#x662F;&#x6709;&#x610F;&#x7FA9;&#x7684;, &#x4F46;&#x662F;&#x4E5F;&#x8981;&#x8A3B;&#x610F;&#x907F;&#x514D;&#x5F15;&#x8D77;&#x6DF7;&#x4E82;.</p>
<p>&#x5982;&#x679C;&#x4E00;&#x500B;&#x5BE6;&#x9AD4;&#x662F;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x5B9A;&#x7FA9;, &#x90A3;&#x9EBD;&#x5B83;&#x7684;&#x5C31;&#x96BB;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x6709;&#x6548;. &#x5982;&#x679C;&#x662F;&#x5728;&#x51FD;&#x6578;&#x5916;&#x90E8;&#x5B9A;&#x7FA9;, &#x90A3;&#x9EBD;&#x5C07;&#x5728;&#x7576;&#x524D;&#x5305;&#x7684;&#x6240;&#x6709;&#x6587;&#x4EF6;&#x4E2D;&#x90FD;&#x53EF;&#x4EE5;&#x8A2A;&#x554F;. &#x540D;&#x5B57;&#x7684;&#x958B;&#x982D;&#x5B57;&#x6BCD;&#x7684;&#x5927;&#x5C0F;&#x5BEB;&#x6C7A;&#x5B9A;&#x4E86;&#x540D;&#x5B57;&#x5728;&#x5305;&#x5916;&#x7684;&#x53EF;&#x898B;&#x6027;. &#x5982;&#x679C;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x662F;&#x5927;&#x5BEB;&#x5B57;&#x6BCD;&#x958B;&#x982D;&#x7684;, &#x90A3;&#x9EBD;&#x5B83;&#x5C07;&#x662F;&#x5C0E;&#x9F63;&#x7684;, &#x4E5F;&#x5C31;&#x662F;&#x53EF;&#x4EE5;&#x88AB;&#x5916;&#x90E8;&#x7684;&#x5305;&#x8A2A;&#x554F;, &#x4F8B;&#x5982; <code>fmt</code> &#x5305;&#x7684; <code>Printf</code> &#x51FD;&#x6578;&#x5C31;&#x662F;&#x5C0E;&#x9F63;&#x7684;, &#x53EF;&#x4EE5;&#x5728; <code>fmt</code> &#x5305;&#x5916;&#x90E8;&#x8A2A;&#x554F;. &#x5305;&#x672C;&#x8EAB;&#x7684;&#x540D;&#x5B57;&#x4E00;&#x822C;&#x7E3D;&#x662F;&#x7528;&#x5C0F;&#x5BEB;&#x5B57;&#x6BCD;.</p>
<p>&#x540D;&#x5B57;&#x7684;&#x9577;&#x5EA6;&#x6C92;&#x6709;&#x9650;&#x88FD;, &#x4F46;&#x662F;Go&#x7684;&#x98A8;&#x683C;&#x662F;&#x76E1;&#x91CF;&#x4F7F;&#x7528;&#x77ED;&#x5C0F;&#x7684;&#x540D;&#x5B57;, &#x5C0D;&#x65BC;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x5C24;&#x5176;&#x662F;&#x9019;&#x6A23;; &#x4F60;&#x6703;&#x7D93;&#x5E38;&#x770B;&#x5230; <code>i</code> &#x4E4B;&#x985E;&#x7684;&#x540D;&#x5B57;, &#x800C;&#x662F;&#x5197;&#x9577;&#x7684; <code>theLoopIndex</code>. &#x901A;&#x5E38;&#x4F86;&#x8AAC;, &#x5982;&#x679C;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x6BD4;&#x8F03;&#x5927;, &#x751F;&#x547D;&#x9031;&#x671F;&#x8F03;&#x9577;, &#x90A3;&#x9EBD;&#x7528;&#x9577;&#x7684;&#x540D;&#x5B57;&#x5C07;&#x66F4;&#x6709;&#x610F;&#x7FA9;.</p>
<p>&#x5728;&#x7FD2;&#x6163;&#x4E0A;, Go&#x7A0B;&#x5E8F;&#x54E1;&#x63A8;&#x85A6;&#x4F7F;&#x7528;<code>&#x99DD;&#x5CEF;&#x5F0F;</code>&#x547D;&#x540D;, &#x7576;&#x540D;&#x5B57;&#x6709;&#x5E7E;&#x500B;&#x55AE;&#x8A5E;&#x7684;&#x6642;&#x512A;&#x5148;&#x4F7F;&#x7528;&#x5927;&#x5C0F;&#x5BEB;&#x5206;&#x9694;, &#x800C;&#x4E0D;&#x662F;&#x512A;&#x5148;&#x7528;&#x4E0B;&#x5283;&#x7DDA;&#x5206;&#x9694;. &#x56E0;&#x6B64;, &#x6A19;&#x6E96;&#x5EAB;&#x6709; <code>QuoteRuneToASCII</code> &#x548C; <code>parseRequestLine</code> &#x9019;&#x6A23;&#x7684;&#x51FD;&#x6578;&#x547D;&#x540D;, &#x4F46;&#x662F;&#x4E0D;&#x6703;&#x7528; <code>quote_rune_to_ASCII</code> &#x548C; <code>parse_request_line</code> &#x9019;&#x6A23;&#x7684;&#x547D;&#x540D;. &#x50CF; <code>ASCII</code> &#x548C; <code>HTML</code> &#x9019;&#x6A23;&#x7684;&#x7E2E;&#x7565;&#x8A5E;&#x907F;&#x514D;&#x4F7F;&#x7528;&#x5927;&#x5C0F;&#x5BEB;&#x6DF7;&#x5408;, &#x5B83;&#x5011;&#x53EF;&#x80FD;&#x88AB;&#x7A31;&#x7232; <code>htmlEscape</code>, <code>HTMLEscape</code> &#x6216; <code>escapeHTML</code>, &#x4F46;&#x4E0D;&#x6703;&#x662F; <code>escapeHtml</code>.</p>
&#x5167;&#x5EFA;&#x51FD;&#x6578;: make len cap new append copy close delete
complex real imag
panic recover
</code></pre><p>&#x9019;&#x4E9B;&#x5167;&#x90E8;&#x9810;&#x5148;&#x5B9A;&#x7FA9;&#x7684;&#x540D;&#x5B57;&#x4F75;&#x4E0D;&#x662F;&#x95DC;&#x9375;&#x5B57;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x518D;&#x5B9A;&#x7FA9;&#x4E2D;&#x91CD;&#x65B0;&#x4F7F;&#x7528;&#x5B83;&#x5011;&#x3002;&#x5728;&#x4E00;&#x4E9B;&#x7279;&#x6B8A;&#x7684;&#x5834;&#x666F;&#x4E2D;&#x91CD;&#x65B0;&#x5B9A;&#x7FA9;&#x5B83;&#x5011;&#x4E5F;&#x662F;&#x6709;&#x610F;&#x7FA9;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x4E5F;&#x8981;&#x8A3B;&#x610F;&#x907F;&#x514D;&#x904E;&#x5EA6;&#x800C;&#x5F15;&#x8D77;&#x8A9E;&#x7FA9;&#x6DF7;&#x4E82;&#x3002;</p>
<p>&#x5982;&#x679C;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x662F;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x5B9A;&#x7FA9;&#xFF0C;&#x90A3;&#x9EBD;&#x5B83;&#x7684;&#x5C31;&#x96BB;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x6709;&#x6548;&#x3002;&#x5982;&#x679C;&#x662F;&#x5728;&#x51FD;&#x6578;&#x5916;&#x90E8;&#x5B9A;&#x7FA9;&#xFF0C;&#x90A3;&#x9EBD;&#x5C07;&#x5728;&#x7576;&#x524D;&#x5305;&#x7684;&#x6240;&#x6709;&#x6587;&#x4EF6;&#x4E2D;&#x90FD;&#x53EF;&#x4EE5;&#x8A2A;&#x554F;&#x3002;&#x540D;&#x5B57;&#x7684;&#x958B;&#x982D;&#x5B57;&#x6BCD;&#x7684;&#x5927;&#x5C0F;&#x5BEB;&#x6C7A;&#x5B9A;&#x4E86;&#x540D;&#x5B57;&#x5728;&#x5305;&#x5916;&#x7684;&#x53EF;&#x898B;&#x6027;&#x3002;&#x5982;&#x679C;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x662F;&#x5927;&#x5BEB;&#x5B57;&#x6BCD;&#x958B;&#x982D;&#x7684;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x5FC5;&#x9B1A;&#x662F;&#x5728;&#x51FD;&#x6578;&#x5916;&#x90E8;&#x5B9A;&#x7FA9;&#x7684;&#x5305;&#x7D1A;&#x540D;&#x5B57;&#xFF1B;&#x5305;&#x7D1A;&#x51FD;&#x6578;&#x540D;&#x672C;&#x8EAB;&#x4E5F;&#x662F;&#x5305;&#x7D1A;&#x540D;&#x5B57;&#xFF09;&#xFF0C;&#x90A3;&#x9EBD;&#x5B83;&#x5C07;&#x662F;&#x5C0E;&#x51FA;&#x7684;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x53EF;&#x4EE5;&#x88AB;&#x5916;&#x90E8;&#x7684;&#x5305;&#x8A2A;&#x554F;&#xFF0C;&#x4F8B;&#x5982;fmt&#x5305;&#x7684;Printf&#x51FD;&#x6578;&#x5C31;&#x662F;&#x5C0E;&#x51FA;&#x7684;&#xFF0C;&#x53EF;&#x4EE5;&#x5728;fmt&#x5305;&#x5916;&#x90E8;&#x8A2A;&#x554F;&#x3002;&#x5305;&#x672C;&#x8EAB;&#x7684;&#x540D;&#x5B57;&#x4E00;&#x822C;&#x7E3D;&#x662F;&#x7528;&#x5C0F;&#x5BEB;&#x5B57;&#x6BCD;&#x3002;</p>
<p>&#x540D;&#x5B57;&#x7684;&#x9577;&#x5EA6;&#x6C92;&#x6709;&#x908F;&#x8F2F;&#x9650;&#x88FD;&#xFF0C;&#x4F46;&#x662F;Go&#x8A9E;&#x8A00;&#x7684;&#x98A8;&#x683C;&#x662F;&#x76E1;&#x91CF;&#x4F7F;&#x7528;&#x77ED;&#x5C0F;&#x7684;&#x540D;&#x5B57;&#xFF0C;&#x5C0D;&#x65BC;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x5C24;&#x5176;&#x662F;&#x9019;&#x6A23;&#xFF1B;&#x4F60;&#x6703;&#x7D93;&#x5E38;&#x770B;&#x5230;i&#x4E4B;&#x985E;&#x7684;&#x77ED;&#x540D;&#x5B57;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5197;&#x9577;&#x7684;theLoopIndex&#x547D;&#x540D;&#x3002;&#x901A;&#x5E38;&#x4F86;&#x8AAC;&#xFF0C;&#x5982;&#x679C;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x6BD4;&#x8F03;&#x5927;&#xFF0C;&#x751F;&#x547D;&#x9031;&#x671F;&#x4E5F;&#x6BD4;&#x8F03;&#x9577;&#xFF0C;&#x90A3;&#x9EBD;&#x7528;&#x9577;&#x7684;&#x540D;&#x5B57;&#x5C07;&#x6703;&#x66F4;&#x6709;&#x610F;&#x7FA9;&#x3002;</p>
<p>&#x5728;&#x7FD2;&#x6163;&#x4E0A;&#xFF0C;Go&#x8A9E;&#x8A00;&#x7A0B;&#x5E8F;&#x54E1;&#x63A8;&#x85A6;&#x4F7F;&#x7528; <strong>&#x99DD;&#x5CEF;&#x5F0F;</strong> &#x547D;&#x540D;&#xFF0C;&#x7576;&#x540D;&#x5B57;&#x6709;&#x5E7E;&#x500B;&#x55AE;&#x8A5E;&#x7D44;&#x6210;&#x7684;&#x6642;&#x512A;&#x5148;&#x4F7F;&#x7528;&#x5927;&#x5C0F;&#x5BEB;&#x5206;&#x9694;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x512A;&#x5148;&#x7528;&#x4E0B;&#x5283;&#x7DDA;&#x5206;&#x9694;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x5728;&#x6A19;&#x6E96;&#x5EAB;&#x6709;QuoteRuneToASCII&#x548C;parseRequestLine&#x9019;&#x6A23;&#x7684;&#x51FD;&#x6578;&#x547D;&#x540D;&#xFF0C;&#x4F46;&#x662F;&#x4E00;&#x822C;&#x4E0D;&#x6703;&#x7528;quote_rune_to_ASCII&#x548C;parse_request_line&#x9019;&#x6A23;&#x7684;&#x547D;&#x540D;&#x3002;&#x800C;&#x50CF;ASCII&#x548C;HTML&#x9019;&#x6A23;&#x7684;&#x7E2E;&#x7565;&#x8A5E;&#x5247;&#x907F;&#x514D;&#x4F7F;&#x7528;&#x5927;&#x5C0F;&#x5BEB;&#x6DF7;&#x5408;&#x7684;&#x5BEB;&#x6CD5;&#xFF0C;&#x5B83;&#x5011;&#x53EF;&#x80FD;&#x88AB;&#x7A31;&#x7232;htmlEscape&#x3001;HTMLEscape&#x6216;escapeHTML&#xFF0C;&#x4F46;&#x4E0D;&#x6703;&#x662F;escapeHtml&#x3002;</p>
</section>
@@ -2073,7 +2077,7 @@ Functions: make len cap new append copy close delete
<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>

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="2.2" data-chapter-title="聲明" data-filepath="ch2/ch2-02.md" data-basepath=".." data-revision="Fri Dec 25 2015 12:32:44 GMT+0800 (中国标准时间)">
<div class="book" data-level="2.2" data-chapter-title="聲明" data-filepath="ch2/ch2-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>
@@ -2020,9 +2024,8 @@
<section class="normal" id="section-">
<h2 id="22-&#x8072;&#x660E;">2.2. &#x8072;&#x660E;</h2>
<p>&#x8072;&#x660E;&#x5B9A;&#x7FA9;&#x4E86;&#x7A0B;&#x5E8F;&#x7684;&#x5165;&#x53E3;&#x4EE5;&#x53CA;&#x90E8;&#x5206;&#x6216;&#x5168;&#x90E8;&#x7684;&#x5C6C;&#x6027;. Go&#x4E3B;&#x8981;&#x6709;&#x56DB;&#x7A2E;&#x8072;&#x660E;&#x985E;&#x578B;: var, const, type, &#x548C; func, &#x5206;&#x522B;&#x5C0D;&#x61C9; &#x8B8A;&#x91CF;, &#x5E38;&#x91CF;, &#x985E;&#x578B;, &#x548C; &#x51FD;&#x6578;&#x7684; &#x8072;&#x660E;. &#x9019;&#x4E00;&#x7AE0;&#x6211;&#x5011;&#x91CD;&#x9EDE;&#x8A0E;&#x8AD6;&#x8B8A;&#x91CF;&#x548C;&#x985E;&#x578B;&#x7684;&#x8072;&#x660E;, &#x7B2C;&#x4E09;&#x7AE0;&#x5C07;&#x8A0E;&#x8AD6;&#x5E38;&#x91CF;&#x7684;&#x8072;&#x660E;, &#x7B2C;&#x4E94;&#x7AE0;&#x5C07;&#x8A0E;&#x8AD6;&#x51FD;&#x6578;&#x7684;&#x8072;&#x660E;.</p>
<p>&#x4E00;&#x500B;Go&#x7A0B;&#x5E8F;&#x5B58;&#x5132;&#x5728;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;&#x4EE5;<code>.go</code>&#x7232;&#x5F8C;&#x7DB4;&#x540D;&#x7684;&#x6587;&#x4EF6;&#x4E2D;. &#x6BCF;&#x500B;&#x6587;&#x4EF6;&#x4EE5;&#x500B;&#x5305;&#x7684;&#x8072;&#x660E;&#x958B;&#x59CB;, &#x4EE5;&#x8AAC;&#x660E;&#x6587;&#x4EF6;&#x662F;&#x5C6C;&#x65BC;&#x5305;&#x7684;&#x4E00;&#x90E8;&#x5206;.
&#x5305;&#x8072;&#x660E;&#x4E4B;&#x5F8C;&#x662F; import &#x5C0E;&#x5165;&#x8072;&#x660E;, &#x7136;&#x5F8C;&#x662F;&#x5305;&#x4E00;&#x7D1A;&#x7684;&#x985E;&#x578B;/&#x8B8A;&#x91CF;/&#x5E38;&#x91CF;/&#x51FD;&#x6578;&#x7684;&#x8072;&#x660E;, &#x8072;&#x660E;&#x7684;&#x9806;&#x5E8F;&#x7121;&#x95DC;&#x7DCA;&#x8981;. &#x4F8B;&#x5982;, &#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x8072;&#x660E;&#x4E86;&#x4E00;&#x500B;&#x5E38;&#x91CF;, &#x4E00;&#x500B;&#x51FD;&#x6578;&#x548C;&#x5169;&#x500B;&#x8B8A;&#x91CF;:</p>
<p>&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x5B9A;&#x7FA9;&#x4E86;&#x7A0B;&#x5E8F;&#x7684;&#x5404;&#x7A2E;&#x5BE6;&#x9AD4;&#x5C0D;&#x8C61;&#x4EE5;&#x53CA;&#x90E8;&#x5206;&#x6216;&#x5168;&#x90E8;&#x7684;&#x5C6C;&#x6027;&#x3002;Go&#x8A9E;&#x8A00;&#x4E3B;&#x8981;&#x6709;&#x56DB;&#x7A2E;&#x985E;&#x578B;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#xFF1A;var&#x3001;const&#x3001;type&#x548C;func&#xFF0C;&#x5206;&#x522B;&#x5C0D;&#x61C9;&#x8B8A;&#x91CF;&#x3001;&#x5E38;&#x91CF;&#x3001;&#x985E;&#x578B;&#x548C;&#x51FD;&#x6578;&#x5BE6;&#x9AD4;&#x5C0D;&#x8C61;&#x7684;&#x8072;&#x660E;&#x3002;&#x9019;&#x4E00;&#x7AE0;&#x6211;&#x5011;&#x91CD;&#x9EDE;&#x8A0E;&#x8AD6;&#x8B8A;&#x91CF;&#x548C;&#x985E;&#x578B;&#x7684;&#x8072;&#x660E;&#xFF0C;&#x7B2C;&#x4E09;&#x7AE0;&#x5C07;&#x8A0E;&#x8AD6;&#x5E38;&#x91CF;&#x7684;&#x8072;&#x660E;&#xFF0C;&#x7B2C;&#x4E94;&#x7AE0;&#x5C07;&#x8A0E;&#x8AD6;&#x51FD;&#x6578;&#x7684;&#x8072;&#x660E;&#x3002;</p>
<p>&#x4E00;&#x500B;Go&#x8A9E;&#x8A00;&#x7DE8;&#x5BEB;&#x7684;&#x7A0B;&#x5E8F;&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;&#x4EE5;.go&#x7232;&#x6587;&#x4EF6;&#x5F8C;&#x7DB4;&#x540D;&#x7684;&#x6E90;&#x6587;&#x4EF6;&#x4E2D;&#x3002;&#x6BCF;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x4EE5;&#x5305;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x958B;&#x59CB;&#xFF0C;&#x8AAC;&#x660E;&#x8A72;&#x6E90;&#x6587;&#x4EF6;&#x662F;&#x5C6C;&#x65BC;&#x54EA;&#x500B;&#x5305;&#x3002;&#x5305;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x4E4B;&#x5F8C;&#x662F;import&#x8A9E;&#x53E5;&#x5C0E;&#x5165;&#x4F9D;&#x8CF4;&#x7684;&#x5176;&#x5B83;&#x5305;&#xFF0C;&#x7136;&#x5F8C;&#x662F;&#x5305;&#x4E00;&#x7D1A;&#x7684;&#x985E;&#x578B;&#x3001;&#x8B8A;&#x91CF;&#x3001;&#x5E38;&#x91CF;&#x3001;&#x51FD;&#x6578;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#xFF0C;&#x5305;&#x4E00;&#x7D1A;&#x7684;&#x5404;&#x7A2E;&#x985E;&#x578B;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x7684;&#x9806;&#x5E8F;&#x7121;&#x95DC;&#x7DCA;&#x8981;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x7684;&#x540D;&#x5B57;&#x5247;&#x5FC5;&#x9B1A;&#x5148;&#x8072;&#x660E;&#x4E4B;&#x5F8C;&#x624D;&#x80FD;&#x4F7F;&#x7528;&#xFF09;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#x8072;&#x660E;&#x4E86;&#x4E00;&#x500B;&#x5E38;&#x91CF;&#x3001;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x548C;&#x5169;&#x500B;&#x8B8A;&#x91CF;&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch2/boiling
<span class="hljs-comment">// Boiling prints the boiling point of water.</span>
<span class="hljs-keyword">package</span> main
@@ -2039,9 +2042,9 @@
<span class="hljs-comment">// boiling point = 212&#xB0;F or 100&#xB0;C</span>
}
</code></pre>
<p>&#x5176;&#x4E2D; &#x5E38;&#x91CF; <code>boilingF</code> &#x662F;&#x5728;&#x5305;&#x4E00;&#x7D1A;&#x8072;&#x660E;&#x7684;, &#x7136;&#x5F8C; <code>f</code> &#x548C; <code>c</code> &#x662F;&#x5728; main &#x51FD;&#x6578;&#x5167;&#x90E8;&#x8072;&#x660E;&#x7684;. &#x5728;&#x5305;&#x4E00;&#x7D1A;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x53EF;&#x5728;&#x6574;&#x500B;&#x5305;&#x8A2A;&#x554F;, &#x800C;&#x4E0D;&#x50C5;&#x50C5;&#x5728;&#x5176;&#x8072;&#x660E;&#x7684;&#x6587;&#x4EF6;&#x4E2D;&#x8A2A;&#x554F;. &#x76F8;&#x6BD4;&#x4E4B;&#x4E0B;, &#x5C40;&#x90E8;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x5C31;&#x96BB;&#x80FD;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x5F88;&#x5C0F;&#x7684;&#x90E8;&#x5206;&#x53EF;&#x8A2A;&#x554F;.</p>
<p>&#x4E00;&#x500B;&#x51FD;&#x6578;&#x7684;&#x8072;&#x660E;&#x6709;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x540D;&#x5B57;, &#x53C3;&#x6578;&#x5217;&#x8868;(&#x7531;&#x51FD;&#x6578;&#x7684;&#x8ABF;&#x7528;&#x8005;&#x63D0;&#x4F9B;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#x7684;&#x5177;&#x9AD4;&#x503C;), &#x4E00;&#x500B;&#x53EF;&#x9078;&#x7684;&#x8FD4;&#x8FF4;&#x503C;&#x5217;&#x8868;, &#x548C;&#x5305;&#x542B;&#x51FD;&#x6578;&#x8A9E;&#x53E5;&#x5B9A;&#x7FA9;&#x7684;&#x51FD;&#x6578;&#x9AD4;. &#x5982;&#x679C;&#x51FD;&#x6578;&#x6C92;&#x6709;&#x8FD4;&#x8FF4;&#x503C;, &#x90A3;&#x9EBD;&#x8FD4;&#x8FF4;&#x503C;&#x5217;&#x8868;&#x662F;&#x7701;&#x7565;&#x7684;. &#x57F7;&#x884C;&#x51FD;&#x6578;&#x5F9E;&#x51FD;&#x6578;&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x8A9E;&#x53E5;&#x958B;&#x59CB;, &#x4F46;&#x662F;&#x9806;&#x5E8F;&#x57F7;&#x884C;&#x76F4;&#x5230;&#x9047;&#x5230; renturn &#x8FD4;&#x8FF4;&#x8A9E;&#x8A00;, &#x5982;&#x679C;&#x6C92;&#x6709;&#x8FD4;&#x8FF4;&#x8A9E;&#x53E5;&#x5247;&#x662F;&#x5230;&#x51FD;&#x6578;&#x672B;&#x5C3E;, &#x7136;&#x5F8C;&#x8FD4;&#x8FF4;&#x5230;&#x8ABF;&#x7528;&#x8005;.</p>
<p>&#x6211;&#x5011;&#x5DF2;&#x7D93;&#x770B;&#x5230;&#x904E;&#x5F88;&#x591A;&#x51FD;&#x6578;&#x7684;&#x4F8B;&#x5B50;&#x4E86;, &#x5728;&#x7B2C;&#x4E94;&#x7AE0;&#x5C07;&#x6DF1;&#x5165;&#x8A0E;&#x8AD6;&#x51FD;&#x6578;&#x7684;&#x7D30;&#x7BC0;, &#x9019;&#x91CC;&#x96BB;&#x7C97;&#x7565;&#x8AAC;&#x4E0B;. &#x4E0B;&#x9762;&#x7684; <code>fToC</code> &#x51FD;&#x6578;&#x5C01;&#x88DD;&#x4E86;&#x6EAB;&#x5EA6;&#x8F49;&#x63DB;&#x7684;&#x908F;&#x8F2F;, &#x9019;&#x6A23;&#x5B83;&#x96BB;&#x9700;&#x8981;&#x5B9A;&#x7FA9;&#x4E00;&#x6B21;, &#x5C31;&#x53EF;&#x4EE5;&#x5728;&#x591A;&#x500B;&#x5730;&#x65B9;&#x591A;&#x6B21;&#x4F7F;&#x7528;. &#x9019;&#x500B;&#x4F8B;&#x5B50;&#x4E2D;, main &#x51FD;&#x6578;&#x5C31;&#x8ABF;&#x7528;&#x4E86;&#x5169;&#x6B21; <code>fToC</code> &#x51FD;&#x6578;, &#x5206;&#x522B;&#x662F;&#x4F7F;&#x7528;&#x5C40;&#x90E8;&#x5B9A;&#x7FA9;&#x7684;&#x5169;&#x500B;&#x5E38;&#x91CF;&#x4F5C;&#x7232;&#x51FD;&#x6578;&#x53C3;&#x6578;.</p>
<p>&#x5176;&#x4E2D;&#x5E38;&#x91CF;boilingF&#x662F;&#x5728;&#x5305;&#x4E00;&#x7D1A;&#x8303;&#x570D;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x8072;&#x660E;&#x7684;&#xFF0C;&#x7136;&#x5F8C;f&#x548C;c&#x5169;&#x500B;&#x8B8A;&#x91CF;&#x662F;&#x5728;main&#x51FD;&#x6578;&#x5167;&#x90E8;&#x8072;&#x660E;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x8072;&#x660E;&#x7684;&#x3002;&#x5728;&#x5305;&#x4E00;&#x7D1A;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x53EF;&#x5728;&#x6574;&#x500B;&#x5305;&#x5C0D;&#x61C9;&#x7684;&#x6BCF;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x4E2D;&#x8A2A;&#x554F;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x50C5;&#x50C5;&#x5728;&#x5176;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x6240;&#x5728;&#x7684;&#x6E90;&#x6587;&#x4EF6;&#x4E2D;&#x8A2A;&#x554F;&#x3002;&#x76F8;&#x6BD4;&#x4E4B;&#x4E0B;&#xFF0C;&#x5C40;&#x90E8;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x5C31;&#x96BB;&#x80FD;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x5F88;&#x5C0F;&#x7684;&#x8303;&#x570D;&#x88AB;&#x8A2A;&#x554F;&#x3002;</p>
<p>&#x4E00;&#x500B;&#x51FD;&#x6578;&#x7684;&#x8072;&#x660E;&#x7531;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x540D;&#x5B57;&#x3001;&#x53C3;&#x6578;&#x5217;&#x8868;&#xFF08;&#x7531;&#x51FD;&#x6578;&#x7684;&#x8ABF;&#x7528;&#x8005;&#x63D0;&#x4F9B;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#x7684;&#x5177;&#x9AD4;&#x503C;&#xFF09;&#x3001;&#x4E00;&#x500B;&#x53EF;&#x9078;&#x7684;&#x8FD4;&#x8FF4;&#x503C;&#x5217;&#x8868;&#x548C;&#x5305;&#x542B;&#x51FD;&#x6578;&#x5B9A;&#x7FA9;&#x7684;&#x51FD;&#x6578;&#x9AD4;&#x7D44;&#x6210;&#x3002;&#x5982;&#x679C;&#x51FD;&#x6578;&#x6C92;&#x6709;&#x8FD4;&#x8FF4;&#x503C;&#xFF0C;&#x90A3;&#x9EBD;&#x8FD4;&#x8FF4;&#x503C;&#x5217;&#x8868;&#x662F;&#x7701;&#x7565;&#x7684;&#x3002;&#x57F7;&#x884C;&#x51FD;&#x6578;&#x5F9E;&#x51FD;&#x6578;&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x8A9E;&#x53E5;&#x958B;&#x59CB;&#xFF0C;&#x4F9D;&#x6B21;&#x9806;&#x5E8F;&#x57F7;&#x884C;&#x76F4;&#x5230;&#x9047;&#x5230;renturn&#x8FD4;&#x8FF4;&#x8A9E;&#x53E5;&#xFF0C;&#x5982;&#x679C;&#x6C92;&#x6709;&#x8FD4;&#x8FF4;&#x8A9E;&#x53E5;&#x5247;&#x662F;&#x57F7;&#x884C;&#x5230;&#x51FD;&#x6578;&#x672B;&#x5C3E;&#xFF0C;&#x7136;&#x5F8C;&#x8FD4;&#x8FF4;&#x5230;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x8005;&#x3002;</p>
<p>&#x6211;&#x5011;&#x5DF2;&#x7D93;&#x770B;&#x5230;&#x904E;&#x5F88;&#x591A;&#x51FD;&#x6578;&#x8072;&#x660E;&#x548C;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x7684;&#x4F8B;&#x5B50;&#x4E86;&#xFF0C;&#x5728;&#x7B2C;&#x4E94;&#x7AE0;&#x5C07;&#x6DF1;&#x5165;&#x8A0E;&#x8AD6;&#x51FD;&#x6578;&#x7684;&#x76F8;&#x95DC;&#x7D30;&#x7BC0;&#xFF0C;&#x9019;&#x91CC;&#x96BB;&#x7C21;&#x55AE;&#x89E3;&#x91CB;&#x4E0B;&#x3002;&#x4E0B;&#x9762;&#x7684;fToC&#x51FD;&#x6578;&#x5C01;&#x88DD;&#x4E86;&#x6EAB;&#x5EA6;&#x8F49;&#x63DB;&#x7684;&#x8655;&#x7406;&#x908F;&#x8F2F;&#xFF0C;&#x9019;&#x6A23;&#x5B83;&#x96BB;&#x9700;&#x8981;&#x88AB;&#x5B9A;&#x7FA9;&#x4E00;&#x6B21;&#xFF0C;&#x5C31;&#x53EF;&#x4EE5;&#x5728;&#x591A;&#x500B;&#x5730;&#x65B9;&#x591A;&#x6B21;&#x88AB;&#x4F7F;&#x7528;&#x3002;&#x5728;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;main&#x51FD;&#x6578;&#x5C31;&#x8ABF;&#x7528;&#x4E86;&#x5169;&#x6B21;fToC&#x51FD;&#x6578;&#xFF0C;&#x5206;&#x522B;&#x662F;&#x4F7F;&#x7528;&#x5728;&#x5C40;&#x90E8;&#x5B9A;&#x7FA9;&#x7684;&#x5169;&#x500B;&#x5E38;&#x91CF;&#x4F5C;&#x7232;&#x8ABF;&#x7528;&#x51FD;&#x6578;&#x7684;&#x53C3;&#x6578;&#x3002;</p>
<pre><code class="lang-Go">gopl.io/ch2/ftoc
<span class="hljs-comment">// Ftoc prints two Fahrenheit-to-Celsius conversions.</span>
<span class="hljs-keyword">package</span> main
@@ -2089,7 +2092,7 @@
<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>

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="2.3" data-chapter-title="變量" data-filepath="ch2/ch2-03.md" data-basepath=".." data-revision="Fri Dec 25 2015 12:32:44 GMT+0800 (中国标准时间)">
<div class="book" data-level="2.3" data-chapter-title="變量" data-filepath="ch2/ch2-03.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>
@@ -2020,45 +2024,44 @@
<section class="normal" id="section-">
<h2 id="23-&#x8B8A;&#x91CF;">2.3. &#x8B8A;&#x91CF;</h2>
<p>var &#x8072;&#x660E;&#x53EF;&#x4EE5;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x7279;&#x5B9A;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;, &#x7136;&#x5F8C;&#x7D66;&#x8B8A;&#x91CF;&#x9644;&#x52A0;&#x4E00;&#x500B;&#x540D;&#x5B57;, &#x4F75;&#x4E14;&#x8A2D;&#x7F6E;&#x8B8A;&#x91CF;&#x7684;&#x521D;&#x59CB;&#x503C;. &#x8B8A;&#x91CF;&#x8072;&#x660E;&#x7684;&#x4E00;&#x822C;&#x8A9E;&#x6CD5;:</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> name <span class="hljs-keyword">type</span> = &#x8868;&#x9054;&#x5F0F;
<p>var&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x53EF;&#x4EE5;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x7279;&#x5B9A;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x7136;&#x5F8C;&#x7D66;&#x8B8A;&#x91CF;&#x9644;&#x52A0;&#x4E00;&#x500B;&#x540D;&#x5B57;&#xFF0C;&#x4F75;&#x4E14;&#x8A2D;&#x7F6E;&#x8B8A;&#x91CF;&#x7684;&#x521D;&#x59CB;&#x503C;&#x3002;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x7684;&#x4E00;&#x822C;&#x8A9E;&#x6CD5;&#x5982;&#x4E0B;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> &#x8B8A;&#x91CF;&#x540D;&#x5B57; &#x985E;&#x578B; = &#x8868;&#x9054;&#x5F0F;
</code></pre>
<p>&#x5176;&#x4E2D;&#x985E;&#x578B;&#x6216; <code>= &#x8868;&#x9054;&#x5F0F;</code> &#x53EF;&#x4EE5;&#x7701;&#x7565;&#x5176;&#x4E2D;&#x7684;&#x4E00;&#x500B;. &#x5982;&#x679C;&#x7701;&#x7565;&#x7684;&#x662F;&#x985E;&#x578B;&#x4FE1;&#x606F;, &#x90A3;&#x9EBD;&#x5C07;&#x6839;&#x64DA;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x985E;&#x63A8;&#x5C0E;&#x985E;&#x578B;&#x4FE1;&#x606F;. &#x5982;&#x679C;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x88AB;&#x7701;&#x7565;, &#x90A3;&#x9EBD;&#x5C07;&#x7528;&#x96F6;&#x503C;&#x521D;&#x59CB;&#x5316;&#x8B8A;&#x91CF;. &#x6578;&#x503C;&#x985E;&#x578B;&#x8B8A;&#x91CF;&#x7684;&#x96F6;&#x503C;&#x662F;0, &#x5E03;&#x723E;&#x985E;&#x578B;&#x8B8A;&#x91CF;&#x7684;&#x96F6;&#x503C;&#x662F; false, &#x5B57;&#x7B26;&#x4E32;&#x7684;&#x96F6;&#x503C;&#x662F;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;, &#x63A5;&#x53E3;&#x6216;&#x5F15;&#x7528;&#x985E;&#x578B;(&#x5305;&#x62EC; &#x5207;&#x7247;, &#x5B57;&#x5178;, &#x901A;&#x9053; &#x548C; &#x51FD;&#x6578;)&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x96F6;&#x503C;&#x662F; nil. &#x6578;&#x7D44;&#x6216;&#x7D50;&#x69CB;&#x9AD4;&#x7B49;&#x805A;&#x5408;&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;&#x662F;&#x6BCF;&#x500B;&#x5143;&#x7D20;&#x6216;&#x5B57;&#x6BB5;&#x90FD;&#x662F;&#x96F6;&#x503C;.</p>
<p>&#x96F6;&#x503C;&#x6A5F;&#x88FD;&#x53EF;&#x4EE5;&#x78BA;&#x4FDD;&#x6BCF;&#x500B;&#x8072;&#x660E;&#x7684;&#x8B8A;&#x91CF;&#x7E3D;&#x662F;&#x6709;&#x4E00;&#x500B;&#x826F;&#x597D;&#x5B9A;&#x7FA9;&#x7684;&#x503C;, &#x5728; Go &#x4E2D;&#x4E0D;&#x5B58;&#x5728;&#x672A;&#x521D;&#x59CB;&#x5316;&#x7684;&#x8B8A;&#x91CF;. &#x9019;&#x500B;&#x53EF;&#x4EE5;&#x7C21;&#x5316;&#x5F88;&#x591A;&#x4EE3;&#x78BC;, &#x5728;&#x6C92;&#x6709;&#x589E;&#x52A0;&#x984D;&#x5916;&#x5DE5;&#x4F5C;&#x7684;&#x524D;&#x63D0;&#x4E0B;&#x78BA;&#x4FDD;&#x908A;&#x754C;&#x689D;&#x4EF6;&#x4E0B;&#x7684;&#x5408;&#x7406;&#x884C;&#x7232;. &#x4F8B;&#x5982;:</p>
<p>&#x5176;&#x4E2D;&#x201C;<em>&#x985E;&#x578B;</em>&#x201D;&#x6216;&#x201C;<em>= &#x8868;&#x9054;&#x5F0F;</em>&#x201D;&#x5169;&#x500B;&#x90E8;&#x5206;&#x53EF;&#x4EE5;&#x7701;&#x7565;&#x5176;&#x4E2D;&#x7684;&#x4E00;&#x500B;&#x3002;&#x5982;&#x679C;&#x7701;&#x7565;&#x7684;&#x662F;&#x985E;&#x578B;&#x4FE1;&#x606F;&#xFF0C;&#x90A3;&#x9EBD;&#x5C07;&#x6839;&#x64DA;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x4F86;&#x63A8;&#x5C0E;&#x8B8A;&#x91CF;&#x7684;&#x985E;&#x578B;&#x4FE1;&#x606F;&#x3002;&#x5982;&#x679C;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x88AB;&#x7701;&#x7565;&#xFF0C;&#x90A3;&#x9EBD;&#x5C07;&#x7528;&#x96F6;&#x503C;&#x521D;&#x59CB;&#x5316;&#x8A72;&#x8B8A;&#x91CF;&#x3002; &#x6578;&#x503C;&#x985E;&#x578B;&#x8B8A;&#x91CF;&#x5C0D;&#x61C9;&#x7684;&#x96F6;&#x503C;&#x662F;0&#xFF0C;&#x5E03;&#x723E;&#x985E;&#x578B;&#x8B8A;&#x91CF;&#x5C0D;&#x61C9;&#x7684;&#x96F6;&#x503C;&#x662F;false&#xFF0C;&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#x5C0D;&#x61C9;&#x7684;&#x96F6;&#x503C;&#x662F;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x63A5;&#x53E3;&#x6216;&#x5F15;&#x7528;&#x985E;&#x578B;&#xFF08;&#x5305;&#x62EC;slice&#x3001;map&#x3001;chan&#x548C;&#x51FD;&#x6578;&#xFF09;&#x8B8A;&#x91CF;&#x5C0D;&#x61C9;&#x7684;&#x96F6;&#x503C;&#x662F;nil&#x3002;&#x6578;&#x7D44;&#x6216;&#x7D50;&#x69CB;&#x9AD4;&#x7B49;&#x805A;&#x5408;&#x985E;&#x578B;&#x5C0D;&#x61C9;&#x7684;&#x96F6;&#x503C;&#x662F;&#x6BCF;&#x500B;&#x5143;&#x7D20;&#x6216;&#x5B57;&#x6BB5;&#x90FD;&#x662F;&#x5C0D;&#x61C9;&#x8A72;&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;&#x3002;</p>
<p>&#x96F6;&#x503C;&#x521D;&#x59CB;&#x5316;&#x6A5F;&#x88FD;&#x53EF;&#x4EE5;&#x78BA;&#x4FDD;&#x6BCF;&#x500B;&#x8072;&#x660E;&#x7684;&#x8B8A;&#x91CF;&#x7E3D;&#x662F;&#x6709;&#x4E00;&#x500B;&#x826F;&#x597D;&#x5B9A;&#x7FA9;&#x7684;&#x503C;&#xFF0C;&#x56E0;&#x6B64;&#x5728;Go&#x8A9E;&#x8A00;&#x4E2D;&#x4E0D;&#x5B58;&#x5728;&#x672A;&#x521D;&#x59CB;&#x5316;&#x7684;&#x8B8A;&#x91CF;&#x3002;&#x9019;&#x500B;&#x7279;&#x6027;&#x53EF;&#x4EE5;&#x7C21;&#x5316;&#x5F88;&#x591A;&#x4EE3;&#x78BC;&#xFF0C;&#x800C;&#x4E14;&#x53EF;&#x4EE5;&#x5728;&#x6C92;&#x6709;&#x589E;&#x52A0;&#x984D;&#x5916;&#x5DE5;&#x4F5C;&#x7684;&#x524D;&#x63D0;&#x4E0B;&#x78BA;&#x4FDD;&#x908A;&#x754C;&#x689D;&#x4EF6;&#x4E0B;&#x7684;&#x5408;&#x7406;&#x884C;&#x7232;&#x3002;&#x4F8B;&#x5982;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> s <span class="hljs-typename">string</span>
fmt.Println(s) <span class="hljs-comment">// &quot;&quot;</span>
</code></pre>
<p>&#x9019;&#x6BB5;&#x4EE3;&#x78BC;&#x5C07;&#x6253;&#x5370;&#x4E00;&#x500B;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;, &#x800C;&#x4E0D;&#x662F;&#x5C0E;&#x81F4;&#x932F;&#x8AA4;&#x6216;&#x7523;&#x751F;&#x4E0D;&#x53EF;&#x9810;&#x77E5;&#x7684;&#x884C;&#x7232;. Go &#x7A0B;&#x5E8F;&#x54E1;&#x7D93;&#x5E38;&#x8B93;&#x4E00;&#x4E9B;&#x805A;&#x5408;&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;&#x4E5F;&#x6709;&#x610F;&#x7FA9;, &#x9019;&#x6A23;&#x4E0D;&#x7BA1;&#x4EFB;&#x4F55;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x7E3D;&#x662F;&#x6709;&#x4E00;&#x500B;&#x5408;&#x7406;&#x7684;&#x96F6;&#x503C;&#x72C0;&#x614B;.</p>
<p>&#x53EF;&#x4EE5;&#x5728;&#x4E00;&#x500B;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x4E2D;&#x540C;&#x6642;&#x8072;&#x660E;&#x4E00;&#x7D44;&#x8B8A;&#x91CF;, &#x6216;&#x7528;&#x4E00;&#x7D44;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x8072;&#x660E;&#x4F75;&#x521D;&#x59CB;&#x5316;&#x4E00;&#x7D44;&#x8B8A;&#x91CF;.
&#x5982;&#x679C;&#x7701;&#x7565;&#x6BCF;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x985E;&#x578B;, &#x5C07;&#x53EF;&#x4EE5;&#x8072;&#x660E;&#x591A;&#x500B;&#x4E0D;&#x540C;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;(&#x985E;&#x578B;&#x7531;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x63A8;&#x5C0E;):</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> i, j, k <span class="hljs-typename">int</span> <span class="hljs-comment">// int, int, int</span>
<p>&#x9019;&#x6BB5;&#x4EE3;&#x78BC;&#x5C07;&#x6253;&#x5370;&#x4E00;&#x500B;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5C0E;&#x81F4;&#x932F;&#x8AA4;&#x6216;&#x7523;&#x751F;&#x4E0D;&#x53EF;&#x9810;&#x77E5;&#x7684;&#x884C;&#x7232;&#x3002;Go&#x8A9E;&#x8A00;&#x7A0B;&#x5E8F;&#x54E1;&#x61C9;&#x8A72;&#x8B93;&#x4E00;&#x4E9B;&#x805A;&#x5408;&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;&#x4E5F;&#x5177;&#x6709;&#x610F;&#x7FA9;&#xFF0C;&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x4FDD;&#x8B49;&#x4E0D;&#x7BA1;&#x4EFB;&#x4F55;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x7E3D;&#x662F;&#x6709;&#x4E00;&#x500B;&#x5408;&#x7406;&#x6709;&#x6548;&#x7684;&#x96F6;&#x503C;&#x72C0;&#x614B;&#x3002;</p>
<p>&#x4E5F;&#x53EF;&#x4EE5;&#x5728;&#x4E00;&#x500B;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x4E2D;&#x540C;&#x6642;&#x8072;&#x660E;&#x4E00;&#x7D44;&#x8B8A;&#x91CF;&#xFF0C;&#x6216;&#x7528;&#x4E00;&#x7D44;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x8072;&#x660E;&#x4F75;&#x521D;&#x59CB;&#x5316;&#x4E00;&#x7D44;&#x8B8A;&#x91CF;&#x3002;&#x5982;&#x679C;&#x7701;&#x7565;&#x6BCF;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x5C07;&#x53EF;&#x4EE5;&#x8072;&#x660E;&#x591A;&#x500B;&#x985E;&#x578B;&#x4E0D;&#x540C;&#x7684;&#x8B8A;&#x91CF;&#xFF08;&#x985E;&#x578B;&#x7531;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x63A8;&#x5C0E;&#xFF09;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> i, j, k <span class="hljs-typename">int</span> <span class="hljs-comment">// int, int, int</span>
<span class="hljs-keyword">var</span> b, f, s = <span class="hljs-constant">true</span>, <span class="hljs-number">2.3</span>, <span class="hljs-string">&quot;four&quot;</span> <span class="hljs-comment">// bool, float64, string</span>
</code></pre>
<p>&#x521D;&#x59CB;&#x5316;&#x53EF;&#x4EE5;&#x662F;&#x5B57;&#x9762;&#x91CF;&#x6216;&#x4EFB;&#x610F;&#x7684;&#x8868;&#x9054;&#x5F0F;. &#x5305;&#x7D1A;&#x522B;&#x8072;&#x660E;&#x7684;&#x8B8A;&#x91CF;&#x6703;&#x5728; main &#x51FD;&#x6578;&#x57F7;&#x884C;&#x524D;&#x5B8C;&#x6210;&#x521D;&#x59CB;&#x5316; (&#xA7;2.6.2), &#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x5C07;&#x5728;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x88AB;&#x57F7;&#x884C;&#x5230;&#x7684;&#x6642;&#x5019;&#x521D;&#x59CB;&#x5316;.</p>
<p>&#x4E00;&#x7D44;&#x8B8A;&#x91CF;&#x7684;&#x521D;&#x59CB;&#x5316;&#x4E5F;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x8ABF;&#x7528;&#x4E00;&#x500B;&#x51FD;&#x6578;, &#x7531;&#x51FD;&#x6578;&#x8FD4;&#x8FF4;&#x7684;&#x591A;&#x500B;&#x8FD4;&#x8FF4;&#x503C;&#x521D;&#x59CB;&#x5316;:</p>
<p>&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x53EF;&#x4EE5;&#x662F;&#x5B57;&#x9762;&#x91CF;&#x6216;&#x4EFB;&#x610F;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x3002;&#x5728;&#x5305;&#x7D1A;&#x522B;&#x8072;&#x660E;&#x7684;&#x8B8A;&#x91CF;&#x6703;&#x5728;main&#x5165;&#x53E3;&#x51FD;&#x6578;&#x57F7;&#x884C;&#x524D;&#x5B8C;&#x6210;&#x521D;&#x59CB;&#x5316;&#xFF08;&#xA7;2.6.2&#xFF09;&#xFF0C;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x5C07;&#x5728;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x88AB;&#x57F7;&#x884C;&#x5230;&#x7684;&#x6642;&#x5019;&#x5B8C;&#x6210;&#x521D;&#x59CB;&#x5316;&#x3002;</p>
<p>&#x4E00;&#x7D44;&#x8B8A;&#x91CF;&#x4E5F;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x8ABF;&#x7528;&#x4E00;&#x500B;&#x51FD;&#x6578;&#xFF0C;&#x7531;&#x51FD;&#x6578;&#x8FD4;&#x8FF4;&#x7684;&#x591A;&#x500B;&#x8FD4;&#x8FF4;&#x503C;&#x521D;&#x59CB;&#x5316;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> f, err = os.Open(name) <span class="hljs-comment">// os.Open returns a file and an error</span>
</code></pre>
<h3 id="231-&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;">2.3.1. &#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;</h3>
<p>&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;, &#x6709;&#x4E00;&#x7A2E;&#x7A31;&#x7232;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x7684;&#x5F62;&#x5F0F;&#x53EF;&#x7528;&#x65BC;&#x8072;&#x660E;&#x548C;&#x521D;&#x59CB;&#x5316;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;. &#x4EE5; <code>&#x540D;&#x5B57; := &#x8868;&#x9054;&#x5F0F;</code> &#x65B9;&#x5F0F;&#x8072;&#x660E;&#x8B8A;&#x91CF;, &#x8B8A;&#x91CF;&#x7684;&#x985E;&#x578B;&#x6839;&#x64DA;&#x8868;&#x9054;&#x5F0F;&#x4F86;&#x63A8;&#x5C0E;. &#x9019;&#x91CC;&#x51FD;&#x6578;&#x4E2D;&#x662F;&#x4E09;&#x500B;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;(&#xA7;1.4):</p>
<p>&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#xFF0C;&#x6709;&#x4E00;&#x7A2E;&#x7A31;&#x7232;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x7684;&#x5F62;&#x5F0F;&#x53EF;&#x7528;&#x65BC;&#x8072;&#x660E;&#x548C;&#x521D;&#x59CB;&#x5316;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x3002;&#x5B83;&#x4EE5;&#x201C;&#x540D;&#x5B57; := &#x8868;&#x9054;&#x5F0F;&#x201D;&#x5F62;&#x5F0F;&#x8072;&#x660E;&#x8B8A;&#x91CF;&#xFF0C;&#x8B8A;&#x91CF;&#x7684;&#x985E;&#x578B;&#x6839;&#x64DA;&#x8868;&#x9054;&#x5F0F;&#x4F86;&#x81EA;&#x52D5;&#x63A8;&#x5C0E;&#x3002;&#x4E0B;&#x9762;&#x662F;lissajous&#x51FD;&#x6578;&#x4E2D;&#x7684;&#x4E09;&#x500B;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#xFF08;&#xA7;1.4&#xFF09;&#xFF1A;</p>
<pre><code class="lang-Go">anim := gif.GIF{LoopCount: nframes}
freq := rand.Float64() * <span class="hljs-number">3.0</span>
t := <span class="hljs-number">0.0</span>
</code></pre>
<p>&#x56E0;&#x7232;&#x7C21;&#x6F54;&#x548C;&#x9748;&#x6D3B;&#x6027;, &#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x7528;&#x65BC;&#x5927;&#x90E8;&#x5206;&#x7684;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x548C;&#x521D;&#x59CB;&#x5316;. var &#x65B9;&#x5F0F;&#x7684;&#x8072;&#x660E;&#x5F80;&#x5F80;&#x662F;&#x7528;&#x65BC;&#x9700;&#x8981;&#x986F;&#x793A;&#x6307;&#x5B9A;&#x985E;&#x578B;&#x7684;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;, &#x6216;&#x8005;&#x56E0;&#x7232;&#x7A0D;&#x5F8C;&#x6703;&#x88AB;&#x8CE6;&#x503C;&#x800C;&#x521D;&#x59CB;&#x503C;&#x7121;&#x95DC;&#x7DCA;&#x8981;&#x7684;&#x8B8A;&#x91CF;.</p>
<pre><code class="lang-Go">i := <span class="hljs-number">100</span> <span class="hljs-comment">// an int</span>
<p>&#x56E0;&#x7232;&#x7C21;&#x6F54;&#x548C;&#x9748;&#x6D3B;&#x7684;&#x7279;&#x9EDE;&#xFF0C;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x88AB;&#x5EE3;&#x6CDB;&#x7528;&#x65BC;&#x5927;&#x90E8;&#x5206;&#x7684;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x548C;&#x521D;&#x59CB;&#x5316;&#x3002;var&#x5F62;&#x5F0F;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x5F80;&#x5F80;&#x662F;&#x7528;&#x65BC;&#x9700;&#x8981;&#x986F;&#x5F0F;&#x6307;&#x5B9A;&#x8B8A;&#x91CF;&#x985E;&#x578B;&#x5730;&#x65B9;&#xFF0C;&#x6216;&#x8005;&#x56E0;&#x7232;&#x8B8A;&#x91CF;&#x7A0D;&#x5F8C;&#x6703;&#x88AB;&#x91CD;&#x65B0;&#x8CE6;&#x503C;&#x800C;&#x521D;&#x59CB;&#x503C;&#x7121;&#x95DC;&#x7DCA;&#x8981;&#x7684;&#x5730;&#x65B9;&#x3002;</p>
<pre><code class="lang-Go">i := <span class="hljs-number">100</span> <span class="hljs-comment">// an int</span>
<span class="hljs-keyword">var</span> boiling <span class="hljs-typename">float64</span> = <span class="hljs-number">100</span> <span class="hljs-comment">// a float64</span>
<span class="hljs-keyword">var</span> names []<span class="hljs-typename">string</span>
<span class="hljs-keyword">var</span> err error
<span class="hljs-keyword">var</span> p Point
</code></pre>
<p>&#x65BC; var &#x8072;&#x660E;&#x8B8A;&#x91CF;&#x4E00;&#x6A23;, &#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x4E5F;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x8072;&#x660E;&#x548C;&#x521D;&#x59CB;&#x5316;&#x4E00;&#x7D44;&#x8B8A;&#x91CF;:</p>
<p>&#x548C;var&#x5F62;&#x5F0F;&#x8072;&#x660E;&#x8B8A;&#x8A9E;&#x53E5;&#x4E00;&#x6A23;&#xFF0C;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x4E5F;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x8072;&#x660E;&#x548C;&#x521D;&#x59CB;&#x5316;&#x4E00;&#x7D44;&#x8B8A;&#x91CF;&#xFF1A;</p>
<pre><code class="lang-Go">i, j := <span class="hljs-number">0</span>, <span class="hljs-number">1</span>
</code></pre>
<p>&#x4F46;&#x662F;&#x9019;&#x7A2E;&#x8072;&#x660E;&#x591A;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x65B9;&#x5F0F;&#x96BB;&#x7C21;&#x6613;&#x5728;&#x53EF;&#x4EE5;&#x63D0;&#x9AD8;&#x4EE3;&#x78BC;&#x53EF;&#x8B80;&#x6027;&#x7684;&#x5730;&#x65B9;&#x4F7F;&#x7528;, &#x6BD4;&#x5982; for &#x5FAA;&#x74B0;&#x7684;&#x521D;&#x59CB;&#x5316;&#x90E8;&#x5206;.</p>
<p>&#x8ACB;&#x8A18;&#x4F4F; <code>:=</code> &#x662F;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x8072;&#x660E;, &#x800C; <code>=</code> &#x662F;&#x4E00;&#x500B;&#x8CE6;&#x503C;&#x64CD;&#x4F5C;. &#x4E0D;&#x8981;&#x6DF7;&#x6DC6;&#x591A;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x548C;&#x5143;&#x7D44;&#x7684;&#x591A;&#x91CD;(&#xA7;2.4.1), &#x5F8C;&#x8005;&#x662F;&#x5C07;&#x53F3;&#x908A;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x503C;&#x8CE6;&#x7D66;&#x5DE6;&#x908A;&#x5C0D;&#x61C9;&#x4F4D;&#x7F6E;&#x7684;&#x8B8A;&#x91CF;:</p>
<p>&#x4F46;&#x662F;&#x9019;&#x7A2E;&#x540C;&#x6642;&#x8072;&#x660E;&#x591A;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x65B9;&#x5F0F;&#x61C9;&#x8A72;&#x9650;&#x88FD;&#x96BB;&#x5728;&#x53EF;&#x4EE5;&#x63D0;&#x9AD8;&#x4EE3;&#x78BC;&#x53EF;&#x8B80;&#x6027;&#x7684;&#x5730;&#x65B9;&#x4F7F;&#x7528;&#xFF0C;&#x6BD4;&#x5982;for&#x8A9E;&#x53E5;&#x7684;&#x5FAA;&#x74B0;&#x7684;&#x521D;&#x59CB;&#x5316;&#x8A9E;&#x53E5;&#x90E8;&#x5206;&#x3002;</p>
<p>&#x8ACB;&#x8A18;&#x4F4F;&#x201C;:=&#x201D;&#x662F;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#xFF0C;&#x800C;&#x201C;=&#x2018;&#x662F;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x8CE6;&#x503C;&#x64CD;&#x4F5C;&#x3002;&#x4E5F;&#x4E0D;&#x8981;&#x6DF7;&#x6DC6;&#x591A;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x548C;&#x5143;&#x7D44;&#x7684;&#x591A;&#x91CD;&#x8CE6;&#x503C;&#xFF08;&#xA7;2.4.1&#xFF09;&#xFF0C;&#x5F8C;&#x8005;&#x662F;&#x5C07;&#x53F3;&#x908A;&#x5404;&#x500B;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x503C;&#x8CE6;&#x503C;&#x7D66;&#x5DE6;&#x908A;&#x5C0D;&#x61C9;&#x4F4D;&#x7F6E;&#x7684;&#x5404;&#x500B;&#x8B8A;&#x91CF;&#xFF1A;</p>
<pre><code class="lang-Go">i, j = j, i <span class="hljs-comment">// &#x4EA4;&#x63DB; i &#x548C; j &#x7684;&#x503C;</span>
</code></pre>
<p>&#x548C;&#x666E;&#x901A; var &#x8B8A;&#x91CF;&#x8072;&#x660E;&#x4E00;&#x6A23;, &#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x4E5F;&#x53EF;&#x4EE5;&#x7528;&#x8ABF;&#x7528;&#x51FD;&#x6578;&#x7684;&#x8FD4;&#x8FF4;&#x503C;&#x4F86;&#x8072;&#x660E;, &#x50CF; os.Open &#x51FD;&#x6578;&#x8FD4;&#x8FF4;&#x5169;&#x500B;&#x503C;:</p>
<p>&#x548C;&#x666E;&#x901A;var&#x5F62;&#x5F0F;&#x7684;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x4E00;&#x6A23;&#xFF0C;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x4E5F;&#x53EF;&#x4EE5;&#x7528;&#x51FD;&#x6578;&#x7684;&#x8FD4;&#x8FF4;&#x503C;&#x4F86;&#x8072;&#x660E;&#x548C;&#x521D;&#x59CB;&#x5316;&#x8B8A;&#x91CF;&#xFF0C;&#x50CF;&#x4E0B;&#x9762;&#x7684;os.Open&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x5C07;&#x8FD4;&#x8FF4;&#x5169;&#x500B;&#x503C;&#xFF1A;</p>
<pre><code class="lang-Go">f, err := os.Open(name)
<span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> {
<span class="hljs-keyword">return</span> err
@@ -2066,36 +2069,36 @@ t := <span class="hljs-number">0.0</span>
<span class="hljs-comment">// ...use f...</span>
f.Close()
</code></pre>
<p>&#x9019;&#x91CC;&#x6709;&#x4E00;&#x500B;&#x6BD4;&#x8F03;&#x5FAE;&#x5999;&#x7684;&#x5730;&#x65B9;: &#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x5DE6;&#x908A;&#x7684;&#x5168;&#x90E8;&#x8B8A;&#x91CF;&#x53EF;&#x80FD;&#x4F75;&#x4E0D;&#x662F;&#x5168;&#x90E8;&#x90FD;&#x662F;&#x525B;&#x525B;&#x8072;&#x660E;&#x7684;. &#x5982;&#x679C;&#x6709;&#x4E00;&#x4E9B;&#x5DF2;&#x7D93;&#x5728;&#x76F8;&#x540C;&#x7684;&#x8A5E;&#x6CD5;&#x584A;&#x8072;&#x660E;&#x904E;&#x4E86;(&#xA7;2.7), &#x90A3;&#x9EBD;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x5C0D;&#x9019;&#x4E9B;&#x5DF2;&#x7D93;&#x8072;&#x660E;&#x904E;&#x7684;&#x8B8A;&#x91CF;&#x5C31;&#x96BB;&#x6709;&#x8CE6;&#x503C;&#x884C;&#x7232;&#x4E86;.</p>
<p>&#x5728;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x4E2D;, &#x7B2C;&#x4E00;&#x500B;&#x8A9E;&#x53E5;&#x8072;&#x660E;&#x4E86; in &#x548C; err &#x8B8A;&#x91CF;. &#x7B2C;&#x4E8C;&#x500B;&#x8A9E;&#x53E5;&#x96BB;&#x8072;&#x660E;&#x4E86; out, &#x7136;&#x5F8C;&#x5C0D;&#x5DF2;&#x7D93;&#x8072;&#x660E;&#x7684; err &#x9032;&#x884C;&#x8CE6;&#x503C;.</p>
<p>&#x9019;&#x91CC;&#x6709;&#x4E00;&#x500B;&#x6BD4;&#x8F03;&#x5FAE;&#x5999;&#x7684;&#x5730;&#x65B9;&#xFF1A;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x5DE6;&#x908A;&#x7684;&#x8B8A;&#x91CF;&#x53EF;&#x80FD;&#x4F75;&#x4E0D;&#x662F;&#x5168;&#x90E8;&#x90FD;&#x662F;&#x525B;&#x525B;&#x8072;&#x660E;&#x7684;&#x3002;&#x5982;&#x679C;&#x6709;&#x4E00;&#x4E9B;&#x5DF2;&#x7D93;&#x5728;&#x76F8;&#x540C;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x8072;&#x660E;&#x904E;&#x4E86;&#xFF08;&#xA7;2.7&#xFF09;&#xFF0C;&#x90A3;&#x9EBD;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x5C0D;&#x9019;&#x4E9B;&#x5DF2;&#x7D93;&#x8072;&#x660E;&#x904E;&#x7684;&#x8B8A;&#x91CF;&#x5C31;&#x96BB;&#x6709;&#x8CE6;&#x503C;&#x884C;&#x7232;&#x4E86;&#x3002;</p>
<p>&#x5728;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x4E2D;&#xFF0C;&#x7B2C;&#x4E00;&#x500B;&#x8A9E;&#x53E5;&#x8072;&#x660E;&#x4E86;in&#x548C;err&#x5169;&#x500B;&#x8B8A;&#x91CF;&#x3002;&#x5728;&#x7B2C;&#x4E8C;&#x500B;&#x8A9E;&#x53E5;&#x96BB;&#x8072;&#x660E;&#x4E86;out&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#xFF0C;&#x7136;&#x5F8C;&#x5C0D;&#x5DF2;&#x7D93;&#x8072;&#x660E;&#x7684;err&#x9032;&#x884C;&#x4E86;&#x8CE6;&#x503C;&#x64CD;&#x4F5C;&#x3002;</p>
<pre><code class="lang-Go">in, err := os.Open(infile)
<span class="hljs-comment">// ...</span>
out, err := os.Create(outfile)
</code></pre>
<p>&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x5FC5;&#x9B1A;&#x81F3;&#x5C11;&#x8072;&#x660E;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x8B8A;&#x91CF;, &#x5426;&#x5247;&#x7DE8;&#x8B6F;&#x5C07;&#x4E0D;&#x80FD;&#x901A;&#x904E;:</p>
<p>&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x4E2D;&#x5FC5;&#x9B1A;&#x81F3;&#x5C11;&#x8981;&#x8072;&#x660E;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x5C07;&#x4E0D;&#x80FD;&#x7DE8;&#x8B6F;&#x901A;&#x904E;&#xFF1A;</p>
<pre><code class="lang-Go">f, err := os.Open(infile)
<span class="hljs-comment">// ...</span>
f, err := os.Create(outfile) <span class="hljs-comment">// compile error: no new variables</span>
</code></pre>
<p>&#x89E3;&#x6C7A;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x7B2C;&#x4E8C;&#x500B;&#x8A9E;&#x53E5;&#x6539;&#x7528;&#x666E;&#x901A;&#x7684;&#x8CE6;&#x503C;&#x8A9E;&#x8A00;.</p>
<p>&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x96BB;&#x6709;&#x5C0D;&#x5728;&#x8B8A;&#x91CF;&#x5DF2;&#x7D93;&#x5728;&#x540C;&#x7D1A;&#x8A5E;&#x6CD5;&#x57DF;&#x8072;&#x660E;&#x904E;&#x7684;&#x8B8A;&#x91CF;&#x7E94;&#x548C;&#x8CE6;&#x503C;&#x64CD;&#x4F5C;&#x7B49;&#x540C;, &#x5982;&#x679C;&#x8B8A;&#x91CF;&#x662F;&#x5728;&#x5916;&#x90E8;&#x8A5E;&#x6CD5;&#x57DF;&#x8072;&#x660E;&#x4E86;, &#x90A3;&#x9EBD;&#x5C07;&#x6703;&#x8072;&#x660E;&#x4E00;&#x500B;&#x65B0;&#x8B8A;&#x91CF;. &#x6211;&#x5011;&#x5728;&#x672C;&#x7AE0;&#x5F8C;&#x9762;&#x5C07;&#x6703;&#x770B;&#x5230;&#x985E;&#x4F3C;&#x7684;&#x4F8B;&#x5B50;.</p>
<h3 id="232-&#x6307;&#x91DD;">2.3.2 &#x6307;&#x91DD;</h3>
<p>&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x4FDD;&#x5B58;&#x4E86;&#x4E00;&#x500B;&#x503C;&#x7684;&#x5167;&#x5B58;&#x7A7A;&#x9593;. &#x8B8A;&#x91CF;&#x5728;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x5275;&#x5EFA;&#x6642;&#x7D81;&#x5B9A;&#x4E00;&#x500B;&#x540D;&#x5B57;, &#x6BD4;&#x5982; x, &#x4F46;&#x662F;&#x9084;&#x6709;&#x5F88;&#x591A;&#x8B8A;&#x91CF;&#x59CB;&#x7D42;&#x4EE5;&#x8868;&#x9054;&#x5F0F;&#x65B9;&#x5F0F;&#x5F15;&#x5165;, &#x4F8B;&#x5982; x[i] &#x6216; x.f. &#x6240;&#x6709;&#x9019;&#x4E9B;&#x8868;&#x9054;&#x5F0F;&#x90FD;&#x8B80;&#x53D6;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x503C;, &#x9664;&#x975E;&#x5B83;&#x5011;&#x662F;&#x9F63;&#x73FE;&#x5728;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x5DE6;&#x908A;, &#x9019;&#x7A2E;&#x6642;&#x5019;&#x662F;&#x7D66;&#x8B8A;&#x91CF;&#x8CE6;&#x4E88;&#x4E00;&#x500B;&#x65B0;&#x503C;.</p>
<p>&#x4E00;&#x500B;&#x6307;&#x91DD;&#x7684;&#x503C;&#x662F;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x5730;&#x5740;. &#x4E00;&#x500B;&#x6307;&#x91DD;&#x5C0D;&#x61C9;&#x8B8A;&#x91CF;&#x5728;&#x5167;&#x5B58;&#x4E2D;&#x7684;&#x5B58;&#x5132;&#x4F4D;&#x7F6E;. &#x4F75;&#x4E0D;&#x662F;&#x6BCF;&#x4E00;&#x500B;&#x503C;&#x90FD;&#x6703;&#x6709;&#x4E00;&#x500B;&#x5730;&#x5740;, &#x4F46;&#x662F;&#x5C0D;&#x65BC;&#x6BCF;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x5FC5;&#x7136;&#x6709;&#x5C0D;&#x61C9;&#x7684;&#x5730;&#x5740;. &#x901A;&#x904E;&#x6307;&#x91DD;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x8B80;&#x6216;&#x66F4;&#x65B0;&#x8B8A;&#x91CF;&#x7684;&#x503C;, &#x800C;&#x4E0D;&#x9700;&#x8981;&#x77E5;&#x9053;&#x8B8A;&#x91CF;&#x7684;&#x540D;&#x5B57;(&#x537D;&#x4F7F;&#x8B8A;&#x91CF;&#x6709;&#x540D;&#x5B57;&#x7684;&#x8A71;).</p>
<p>&#x5982;&#x679C;&#x9019;&#x6A23;&#x8072;&#x660E;&#x4E00;&#x500B;&#x8B8A;&#x91CF; <code>var x int</code>, &#x90A3;&#x9EBD; <code>&amp;x</code> &#x8868;&#x9054;&#x5F0F;(x&#x7684;&#x5730;&#x5740;)&#x5C07;&#x7523;&#x751F;&#x4E00;&#x500B;&#x6307;&#x5411;&#x6574;&#x6578;&#x8B8A;&#x91CF;&#x7684;&#x6307;&#x91DD;, &#x5C0D;&#x61C9;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;&#x662F; <code>*int</code>, &#x7A31;&#x4E4B;&#x7232; &quot;&#x6307;&#x5411; int &#x7684;&#x6307;&#x91DD;&quot;. &#x5982;&#x679C;&#x6307;&#x91DD;&#x540D;&#x5B57;&#x7232; p, &#x90A3;&#x9EBD;&#x53EF;&#x4EE5;&#x8AAC; &quot;p &#x6307;&#x91DD;&#x6307;&#x5411; x&quot;, &#x6216;&#x8005;&#x8AAC; &quot;p &#x6307;&#x91DD;&#x4FDD;&#x5B58;&#x4E86; x &#x8B8A;&#x91CF;&#x7684;&#x5730;&#x5740;&quot;. <code>*p</code> &#x5C0D;&#x61C9; p &#x6307;&#x91DD;&#x6307;&#x5411;&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x503C;. <code>*p</code> &#x8868;&#x9054;&#x5F0F;&#x8B80;&#x53D6;&#x8B8A;&#x91CF;&#x7684;&#x503C;, &#x7232; int &#x985E;&#x578B;, &#x540C;&#x6642;&#x56E0;&#x7232; <code>*p</code> &#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x8B8A;&#x91CF;, &#x6240;&#x4EE5;&#x53EF;&#x4EE5;&#x9F63;&#x73FE;&#x5728;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x5DE6;&#x908A;, &#x7528;&#x65BC;&#x66F4;&#x65B0;&#x6240;&#x6307;&#x5411;&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x503C;.</p>
<p>&#x89E3;&#x6C7A;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x7B2C;&#x4E8C;&#x500B;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x6539;&#x7528;&#x666E;&#x901A;&#x7684;&#x591A;&#x91CD;&#x8CE6;&#x503C;&#x8A9E;&#x8A00;&#x3002;</p>
<p>&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x96BB;&#x6709;&#x5C0D;&#x5DF2;&#x7D93;&#x5728;&#x540C;&#x7D1A;&#x8A5E;&#x6CD5;&#x57DF;&#x8072;&#x660E;&#x904E;&#x7684;&#x8B8A;&#x91CF;&#x624D;&#x548C;&#x8CE6;&#x503C;&#x64CD;&#x4F5C;&#x8A9E;&#x53E5;&#x7B49;&#x50F9;&#xFF0C;&#x5982;&#x679C;&#x8B8A;&#x91CF;&#x662F;&#x5728;&#x5916;&#x90E8;&#x8A5E;&#x6CD5;&#x57DF;&#x8072;&#x660E;&#x7684;&#xFF0C;&#x90A3;&#x9EBD;&#x7C21;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x5C07;&#x6703;&#x5728;&#x7576;&#x524D;&#x8A5E;&#x6CD5;&#x57DF;&#x91CD;&#x65B0;&#x8072;&#x660E;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x8B8A;&#x91CF;&#x3002;&#x6211;&#x5011;&#x5728;&#x672C;&#x7AE0;&#x5F8C;&#x9762;&#x5C07;&#x6703;&#x770B;&#x5230;&#x985E;&#x4F3C;&#x7684;&#x4F8B;&#x5B50;&#x3002;</p>
<h3 id="232-&#x6307;&#x91DD;">2.3.2. &#x6307;&#x91DD;</h3>
<p>&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x4FDD;&#x5B58;&#x4E86;&#x8B8A;&#x91CF;&#x5C0D;&#x61C9;&#x985E;&#x578B;&#x503C;&#x7684;&#x5167;&#x5B58;&#x7A7A;&#x9593;&#x3002;&#x666E;&#x901A;&#x8B8A;&#x91CF;&#x5728;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x5275;&#x5EFA;&#x6642;&#x88AB;&#x7D81;&#x5B9A;&#x5230;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x540D;&#xFF0C;&#x6BD4;&#x5982;&#x53EB;x&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x4F46;&#x662F;&#x9084;&#x6709;&#x5F88;&#x591A;&#x8B8A;&#x91CF;&#x59CB;&#x7D42;&#x4EE5;&#x8868;&#x9054;&#x5F0F;&#x65B9;&#x5F0F;&#x5F15;&#x5165;&#xFF0C;&#x4F8B;&#x5982;x[i]&#x6216;x.f&#x8B8A;&#x91CF;&#x3002;&#x6240;&#x6709;&#x9019;&#x4E9B;&#x8868;&#x9054;&#x5F0F;&#x4E00;&#x822C;&#x90FD;&#x662F;&#x8B80;&#x53D6;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#xFF0C;&#x9664;&#x975E;&#x5B83;&#x5011;&#x662F;&#x51FA;&#x73FE;&#x5728;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x5DE6;&#x908A;&#xFF0C;&#x9019;&#x7A2E;&#x6642;&#x5019;&#x662F;&#x7D66;&#x5C0D;&#x61C9;&#x8B8A;&#x91CF;&#x8CE6;&#x4E88;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x503C;&#x3002;</p>
<p>&#x4E00;&#x500B;&#x6307;&#x91DD;&#x7684;&#x503C;&#x662F;&#x53E6;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x5730;&#x5740;&#x3002;&#x4E00;&#x500B;&#x6307;&#x91DD;&#x5C0D;&#x61C9;&#x8B8A;&#x91CF;&#x5728;&#x5167;&#x5B58;&#x4E2D;&#x7684;&#x5B58;&#x5132;&#x4F4D;&#x7F6E;&#x3002;&#x4F75;&#x4E0D;&#x662F;&#x6BCF;&#x4E00;&#x500B;&#x503C;&#x90FD;&#x6703;&#x6709;&#x4E00;&#x500B;&#x5167;&#x5B58;&#x5730;&#x5740;&#xFF0C;&#x4F46;&#x662F;&#x5C0D;&#x65BC;&#x6BCF;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x5FC5;&#x7136;&#x6709;&#x5C0D;&#x61C9;&#x7684;&#x5167;&#x5B58;&#x5730;&#x5740;&#x3002;&#x901A;&#x904E;&#x6307;&#x91DD;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x8B80;&#x6216;&#x66F4;&#x65B0;&#x5C0D;&#x61C9;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#xFF0C;&#x800C;&#x4E0D;&#x9700;&#x8981;&#x77E5;&#x9053;&#x8A72;&#x8B8A;&#x91CF;&#x7684;&#x540D;&#x5B57;&#xFF08;&#x5982;&#x679C;&#x8B8A;&#x91CF;&#x6709;&#x540D;&#x5B57;&#x7684;&#x8A71;&#xFF09;&#x3002;</p>
<p>&#x5982;&#x679C;&#x7528;&#x201C;var x int&#x201D;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x8072;&#x660E;&#x4E00;&#x500B;x&#x8B8A;&#x91CF;&#xFF0C;&#x90A3;&#x9EBD;&amp;x&#x8868;&#x9054;&#x5F0F;&#xFF08;&#x53D6;x&#x8B8A;&#x91CF;&#x7684;&#x5167;&#x5B58;&#x5730;&#x5740;&#xFF09;&#x5C07;&#x7523;&#x751F;&#x4E00;&#x500B;&#x6307;&#x5411;&#x8A72;&#x6574;&#x6578;&#x8B8A;&#x91CF;&#x7684;&#x6307;&#x91DD;&#xFF0C;&#x6307;&#x91DD;&#x5C0D;&#x61C9;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;&#x662F;<code>*int</code>&#xFF0C;&#x6307;&#x91DD;&#x88AB;&#x7A31;&#x4E4B;&#x7232;&#x201C;&#x6307;&#x5411;int&#x985E;&#x578B;&#x7684;&#x6307;&#x91DD;&#x201D;&#x3002;&#x5982;&#x679C;&#x6307;&#x91DD;&#x540D;&#x5B57;&#x7232;p&#xFF0C;&#x90A3;&#x9EBD;&#x53EF;&#x4EE5;&#x8AAC;&#x201C;p&#x6307;&#x91DD;&#x6307;&#x5411;&#x8B8A;&#x91CF;x&#x201D;&#xFF0C;&#x6216;&#x8005;&#x8AAC;&#x201C;p&#x6307;&#x91DD;&#x4FDD;&#x5B58;&#x4E86;x&#x8B8A;&#x91CF;&#x7684;&#x5167;&#x5B58;&#x5730;&#x5740;&#x201D;&#x3002;&#x540C;&#x6642;<code>*p</code>&#x8868;&#x9054;&#x5F0F;&#x5C0D;&#x61C9;p&#x6307;&#x91DD;&#x6307;&#x5411;&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#x3002;&#x4E00;&#x822C;<code>*p</code>&#x8868;&#x9054;&#x5F0F;&#x8B80;&#x53D6;&#x6307;&#x91DD;&#x6307;&#x5411;&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#xFF0C;&#x9019;&#x91CC;&#x7232;int&#x985E;&#x578B;&#x7684;&#x503C;&#xFF0C;&#x540C;&#x6642;&#x56E0;&#x7232;<code>*p</code>&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#xFF0C;&#x6240;&#x4EE5;&#x8A72;&#x8868;&#x9054;&#x5F0F;&#x4E5F;&#x53EF;&#x4EE5;&#x51FA;&#x73FE;&#x5728;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x5DE6;&#x908A;&#xFF0C;&#x8868;&#x793A;&#x66F4;&#x65B0;&#x6307;&#x91DD;&#x6240;&#x6307;&#x5411;&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#x3002;</p>
<pre><code class="lang-Go">x := <span class="hljs-number">1</span>
p := &amp;x <span class="hljs-comment">// p, of type *int, points to x</span>
fmt.Println(*p) <span class="hljs-comment">// &quot;1&quot;</span>
*p = <span class="hljs-number">2</span> <span class="hljs-comment">// equivalent to x = 2</span>
fmt.Println(x) <span class="hljs-comment">// &quot;2&quot;</span>
</code></pre>
<p>&#x5C0D;&#x65BC;&#x805A;&#x5408;&#x985E;&#x578B;, &#x6BD4;&#x5982;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6BCF;&#x500B;&#x5B57;&#x6BB5;, &#x6216;&#x8005;&#x662F;&#x6578;&#x7D44;&#x7684;&#x6BCF;&#x500B;&#x5143;&#x7D20;, &#x4E5F;&#x90FD;&#x662F;&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x8B8A;&#x91CF;, &#x4F75;&#x4E14;&#x53EF;&#x4EE5;&#x88AB;&#x7A6B;&#x53D6;&#x5730;&#x5740;.</p>
<p>&#x8B8A;&#x91CF;&#x6709;&#x6642;&#x5019;&#x88AB;&#x7A31;&#x7232;&#x53EF;&#x5C0B;&#x5740;&#x7684;&#x503C;. &#x5982;&#x679C;&#x8B8A;&#x91CF;&#x7531;&#x8868;&#x9054;&#x5F0F;&#x81E8;&#x6642;&#x751F;&#x6210;, &#x90A3;&#x9EBD;&#x8868;&#x9054;&#x5F0F;&#x5FC5;&#x9B1A;&#x80FD;&#x63A5;&#x53D7; <code>&amp;</code> &#x53D6;&#x5730;&#x5740;&#x64CD;&#x4F5C;.</p>
<p>&#x4EFB;&#x4F55;&#x985E;&#x578B;&#x7684;&#x6307;&#x91DD;&#x7684;&#x96F6;&#x503C;&#x90FD;&#x662F; nil. &#x5982;&#x679C; <code>p != nil</code> &#x6E2C;&#x8A66;&#x7232;&#x771E;, &#x90A3;&#x9EBD; p &#x662F;&#x6307;&#x5411;&#x8B8A;&#x91CF;. &#x6307;&#x91DD;&#x76F4;&#x63A5;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x9032;&#x884C;&#x76F8;&#x7B49;&#x6E2C;&#x8A66;&#x7684;, &#x96BB;&#x6709;&#x7576;&#x5B83;&#x5011;&#x6307;&#x5411;&#x540C;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x6216;&#x5168;&#x90E8;&#x662F; nil &#x6642;&#x7E94;&#x76F8;&#x7B49;.</p>
<p>&#x5C0D;&#x65BC;&#x805A;&#x5408;&#x985E;&#x578B;&#x6BCF;&#x500B;&#x6210;&#x54E1;&#x2014;&#x2014;&#x6BD4;&#x5982;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6BCF;&#x500B;&#x5B57;&#x6BB5;&#x3001;&#x6216;&#x8005;&#x662F;&#x6578;&#x7D44;&#x7684;&#x6BCF;&#x500B;&#x5143;&#x7D20;&#x2014;&#x2014;&#x4E5F;&#x90FD;&#x662F;&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#xFF0C;&#x56E0;&#x6B64;&#x53EF;&#x4EE5;&#x88AB;&#x53D6;&#x5730;&#x5740;&#x3002;</p>
<p>&#x8B8A;&#x91CF;&#x6709;&#x6642;&#x5019;&#x88AB;&#x7A31;&#x7232;&#x53EF;&#x5C0B;&#x5740;&#x7684;&#x503C;&#x3002;&#x537D;&#x4F7F;&#x8B8A;&#x91CF;&#x7531;&#x8868;&#x9054;&#x5F0F;&#x81E8;&#x6642;&#x751F;&#x6210;&#xFF0C;&#x90A3;&#x9EBD;&#x8868;&#x9054;&#x5F0F;&#x4E5F;&#x5FC5;&#x9B1A;&#x80FD;&#x63A5;&#x53D7;<code>&amp;</code>&#x53D6;&#x5730;&#x5740;&#x64CD;&#x4F5C;&#x3002;</p>
<p>&#x4EFB;&#x4F55;&#x985E;&#x578B;&#x7684;&#x6307;&#x91DD;&#x7684;&#x96F6;&#x503C;&#x90FD;&#x662F;nil&#x3002;&#x5982;&#x679C;<code>p != nil</code>&#x6E2C;&#x8A66;&#x7232;&#x771E;&#xFF0C;&#x90A3;&#x9EBD;p&#x662F;&#x6307;&#x5411;&#x67D0;&#x500B;&#x6709;&#x6548;&#x8B8A;&#x91CF;&#x3002;&#x6307;&#x91DD;&#x4E4B;&#x9593;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x9032;&#x884C;&#x76F8;&#x7B49;&#x6E2C;&#x8A66;&#x7684;&#xFF0C;&#x96BB;&#x6709;&#x7576;&#x5B83;&#x5011;&#x6307;&#x5411;&#x540C;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x6216;&#x5168;&#x90E8;&#x662F;nil&#x6642;&#x624D;&#x76F8;&#x7B49;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> x, y <span class="hljs-typename">int</span>
fmt.Println(&amp;x == &amp;x, &amp;x == &amp;y, &amp;x == <span class="hljs-constant">nil</span>) <span class="hljs-comment">// &quot;true false false&quot;</span>
</code></pre>
<p>&#x5728;Go&#x8A9E;&#x8A00;&#x4E2D;, &#x8FD4;&#x8FF4;&#x51FD;&#x6578;&#x4E2D;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x7684;&#x5730;&#x5740;&#x662F;&#x5B89;&#x5168;&#x7684;. &#x4F8B;&#x5982;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;, &#x8ABF;&#x7528; f &#x51FD;&#x6578;&#x6642;&#x5275;&#x5EFA; v &#x5C40;&#x90E8;&#x8B8A;&#x91CF;, &#x5728;&#x5730;&#x5740;&#x88AB;&#x8FD4;&#x8FF4;&#x4E4B;&#x5F8C;&#x4F9D;&#x7136;&#x6709;&#x6548;, &#x56E0;&#x7232;&#x6307;&#x91DD; p &#x4F9D;&#x7136;&#x5F15;&#x7528;&#x9019;&#x500B;&#x8B8A;&#x91CF;.</p>
<p>&#x5728;Go&#x8A9E;&#x8A00;&#x4E2D;&#xFF0C;&#x8FD4;&#x8FF4;&#x51FD;&#x6578;&#x4E2D;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x7684;&#x5730;&#x5740;&#x4E5F;&#x662F;&#x5B89;&#x5168;&#x7684;&#x3002;&#x4F8B;&#x5982;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#xFF0C;&#x8ABF;&#x7528;f&#x51FD;&#x6578;&#x6642;&#x5275;&#x5EFA;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;v&#xFF0C;&#x5728;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x5730;&#x5740;&#x88AB;&#x8FD4;&#x8FF4;&#x4E4B;&#x5F8C;&#x4F9D;&#x7136;&#x6709;&#x6548;&#xFF0C;&#x56E0;&#x7232;&#x6307;&#x91DD;p&#x4F9D;&#x7136;&#x5F15;&#x7528;&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> p = f()
<span class="hljs-keyword">func</span> f() *<span class="hljs-typename">int</span> {
@@ -2103,12 +2106,12 @@ fmt.Println(&amp;x == &amp;x, &amp;x == &amp;y, &amp;x == <span class="hljs-cons
<span class="hljs-keyword">return</span> &amp;v
}
</code></pre>
<p>&#x6BCF;&#x6B21;&#x8ABF;&#x7528; f &#x51FD;&#x6578;&#x90FD;&#x5C07;&#x8FD4;&#x8FF4;&#x4E0D;&#x540C;&#x7684;&#x7D50;&#x679C;:</p>
<p>&#x6BCF;&#x6B21;&#x8ABF;&#x7528;f&#x51FD;&#x6578;&#x90FD;&#x5C07;&#x8FD4;&#x8FF4;&#x4E0D;&#x540C;&#x7684;&#x7D50;&#x679C;&#xFF1A;</p>
<pre><code class="lang-Go">fmt.Println(f() == f()) <span class="hljs-comment">// &quot;false&quot;</span>
</code></pre>
<p>&#x56E0;&#x7232;&#x6307;&#x91DD;&#x5305;&#x542B;&#x4E86;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x5730;&#x5740;, &#x56E0;&#x6B64;&#x5C07;&#x6307;&#x91DD;&#x4F5C;&#x7232;&#x53C3;&#x6578;&#x8ABF;&#x7528;&#x51FD;&#x6578;, &#x5C07;&#x53EF;&#x4EE5;&#x5728;&#x51FD;&#x6578;&#x4E2D;&#x901A;&#x904E;&#x6307;&#x91DD;&#x66F4;&#x65B0;&#x8B8A;&#x91CF;&#x7684;&#x503C;. &#x4F8B;&#x5982;&#x9019;&#x500B;&#x901A;&#x904E;&#x6307;&#x91DD;&#x4F86;&#x66F4;&#x65B0;&#x8B8A;&#x91CF;&#x7684;&#x503C;, &#x7136;&#x5F8C;&#x8FD4;&#x8FF4;&#x66F4;&#x65B0;&#x5F8C;&#x7684;&#x503C;, &#x53EF;&#x7528;&#x5728;&#x4E00;&#x500B;&#x8868;&#x9054;&#x5F0F;&#x4E2D;:</p>
<p>&#x56E0;&#x7232;&#x6307;&#x91DD;&#x5305;&#x542B;&#x4E86;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x5730;&#x5740;&#xFF0C;&#x56E0;&#x6B64;&#x5982;&#x679C;&#x5C07;&#x6307;&#x91DD;&#x4F5C;&#x7232;&#x53C3;&#x6578;&#x8ABF;&#x7528;&#x51FD;&#x6578;&#xFF0C;&#x90A3;&#x5C07;&#x53EF;&#x4EE5;&#x5728;&#x51FD;&#x6578;&#x4E2D;&#x901A;&#x904E;&#x8A72;&#x6307;&#x91DD;&#x4F86;&#x66F4;&#x65B0;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#x3002;&#x4F8B;&#x5982;&#x4E0B;&#x9762;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x5C31;&#x662F;&#x901A;&#x904E;&#x6307;&#x91DD;&#x4F86;&#x66F4;&#x65B0;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#xFF0C;&#x7136;&#x5F8C;&#x8FD4;&#x8FF4;&#x66F4;&#x65B0;&#x5F8C;&#x7684;&#x503C;&#xFF0C;&#x53EF;&#x7528;&#x5728;&#x4E00;&#x500B;&#x8868;&#x9054;&#x5F0F;&#x4E2D;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x9019;&#x662F;&#x5C0D;C&#x8A9E;&#x8A00;&#x4E2D;<code>++v</code>&#x64CD;&#x4F5C;&#x7684;&#x6A21;&#x64EC;&#xFF0C;&#x9019;&#x91CC;&#x96BB;&#x662F;&#x7232;&#x4E86;&#x8AAC;&#x660E;&#x6307;&#x91DD;&#x7684;&#x7528;&#x6CD5;&#xFF0C;incr&#x51FD;&#x6578;&#x6A21;&#x64EC;&#x7684;&#x505A;&#x6CD5;&#x4F75;&#x4E0D;&#x63A8;&#x85A6;&#xFF09;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> incr(p *<span class="hljs-typename">int</span>) <span class="hljs-typename">int</span> {
*p++ <span class="hljs-comment">// increments what p points to; does not change p</span>
*p++ <span class="hljs-comment">// &#x975E;&#x5E38;&#x91CD;&#x8981;&#xFF1A;&#x96BB;&#x662F;&#x589E;&#x52A0;p&#x6307;&#x5411;&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#xFF0C;&#x4F75;&#x4E0D;&#x6539;&#x8B8A;p&#x6307;&#x91DD;&#xFF01;&#xFF01;&#xFF01;</span>
<span class="hljs-keyword">return</span> *p
}
@@ -2116,8 +2119,8 @@ v := <span class="hljs-number">1</span>
incr(&amp;v) <span class="hljs-comment">// side effect: v is now 2</span>
fmt.Println(incr(&amp;v)) <span class="hljs-comment">// &quot;3&quot; (and v is 3)</span>
</code></pre>
<p>&#x6BCF;&#x6B21;&#x6211;&#x5011;&#x5C0D;&#x8B8A;&#x91CF;&#x53D6;&#x5730;&#x5740;, &#x6216;&#x8005;&#x8907;&#x88FD;&#x6307;&#x91DD;, &#x6211;&#x5011;&#x90FD;&#x5275;&#x5EFA;&#x4E86;&#x8B8A;&#x91CF;&#x7684;&#x65B0;&#x7684;&#x522B;&#x540D;. &#x4F8B;&#x5982;, *p &#x662F; &#x8B8A;&#x91CF; v &#x7684;&#x522B;&#x540D;. &#x6307;&#x91DD;&#x7279;&#x522B;&#x6709;&#x52A0;&#x8F09;&#x7684;&#x5730;&#x65B9;&#x5728;&#x65BC;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x4E0D;&#x7528;&#x540D;&#x5B57;&#x800C;&#x8A2A;&#x554F;&#x4E00;&#x500B;&#x8B8A;&#x91CF;, &#x4F46;&#x662F;&#x9019;&#x662F;&#x4E00;&#x628A;&#x96D9;&#x5203;&#x528D;: &#x8981;&#x627E;&#x5230;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x6240;&#x6709;&#x8A2A;&#x554F;&#x8005;, &#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x77E5;&#x9053;&#x8B8A;&#x91CF;&#x5168;&#x90E8;&#x7684;&#x522B;&#x540D;. &#x4E0D;&#x50C5;&#x50C5;&#x662F;&#x6307;&#x91DD;&#x5275;&#x5EFA;&#x522B;&#x540D;, &#x5F88;&#x591A;&#x5176;&#x4ED6;&#x5F15;&#x7528;&#x985E;&#x578B;&#x4E5F;&#x6703;&#x5275;&#x5EFA;&#x522B;&#x540D;, &#x4F8B;&#x5982; &#x5207;&#x7247;, &#x5B57;&#x5178;&#x548C;&#x7BA1;&#x9053;, &#x751A;&#x81F3;&#x7D50;&#x69CB;&#x9AD4;, &#x6578;&#x7D44;&#x548C;&#x63A5;&#x53E3;&#x90FD;&#x6703;&#x5275;&#x5EFA;&#x6240;&#x5F15;&#x7528;&#x8B8A;&#x91CF;&#x7684;&#x522B;&#x540D;.</p>
<p>&#x6307;&#x91DD;&#x662F; flag &#x5305;&#x7684;&#x95DC;&#x9375;, &#x5B83;&#x4F7F;&#x7528;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#x4F86;&#x8A2D;&#x7F6E;&#x5C0D;&#x61C9;&#x7684;&#x8B8A;&#x91CF;, &#x800C;&#x9019;&#x4E9B;&#x5206;&#x5E03;&#x5728;&#x6574;&#x500B;&#x7A0B;&#x5E8F;&#x4E2D;. &#x7232;&#x4E86;&#x8AAC;&#x660E;&#x9019;&#x4E00;&#x9EDE;, &#x5728;&#x65E9;&#x4E9B;&#x7684;echo&#x7248;&#x672C;&#x4E2D;, &#x5305;&#x542B;&#x4E86;&#x5169;&#x500B;&#x53EF;&#x9078;&#x7684;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;: <code>-n</code> &#x7528;&#x65BC;&#x5FFD;&#x7565;&#x884C;&#x5C3E;&#x7684;&#x63DB;&#x884C;&#x7B26;, <code>-s sep</code> &#x7528;&#x65BC;&#x6307;&#x5B9A;&#x5206;&#x9694;&#x5B57;&#x7B26;(&#x9ED8;&#x8A8D;&#x662F;&#x7A7A;&#x683C;). &#x9019;&#x662F;&#x7B2C;&#x56DB;&#x500B;&#x7248;&#x672C;, &#x5C0D;&#x61C9;&#x5305; gopl.io/ch2/echo4.</p>
<p>&#x6BCF;&#x6B21;&#x6211;&#x5011;&#x5C0D;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x53D6;&#x5730;&#x5740;&#xFF0C;&#x6216;&#x8005;&#x8907;&#x88FD;&#x6307;&#x91DD;&#xFF0C;&#x6211;&#x5011;&#x90FD;&#x662F;&#x7232;&#x539F;&#x8B8A;&#x91CF;&#x5275;&#x5EFA;&#x4E86;&#x65B0;&#x7684;&#x522B;&#x540D;&#x3002;&#x4F8B;&#x5982;&#xFF0C;<code>*p</code>&#x5C31;&#x662F;&#x662F; &#x8B8A;&#x91CF;v&#x7684;&#x522B;&#x540D;&#x3002;&#x6307;&#x91DD;&#x7279;&#x522B;&#x6709;&#x50F9;&#x503C;&#x7684;&#x5730;&#x65B9;&#x5728;&#x65BC;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x4E0D;&#x7528;&#x540D;&#x5B57;&#x800C;&#x8A2A;&#x554F;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#xFF0C;&#x4F46;&#x662F;&#x9019;&#x662F;&#x4E00;&#x628A;&#x96D9;&#x5203;&#x528D;&#xFF1A;&#x8981;&#x627E;&#x5230;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x6240;&#x6709;&#x8A2A;&#x554F;&#x8005;&#x4F75;&#x4E0D;&#x5BB9;&#x6613;&#xFF0C;&#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x77E5;&#x9053;&#x8B8A;&#x91CF;&#x5168;&#x90E8;&#x7684;&#x522B;&#x540D;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x9019;&#x662F;Go&#x8A9E;&#x8A00;&#x7684;&#x5783;&#x573E;&#x8FF4;&#x6536;&#x5668;&#x6240;&#x505A;&#x7684;&#x5DE5;&#x4F5C;&#xFF09;&#x3002;&#x4E0D;&#x50C5;&#x50C5;&#x662F;&#x6307;&#x91DD;&#x6703;&#x5275;&#x5EFA;&#x522B;&#x540D;&#xFF0C;&#x5F88;&#x591A;&#x5176;&#x4ED6;&#x5F15;&#x7528;&#x985E;&#x578B;&#x4E5F;&#x6703;&#x5275;&#x5EFA;&#x522B;&#x540D;&#xFF0C;&#x4F8B;&#x5982;slice&#x3001;map&#x548C;chan&#xFF0C;&#x751A;&#x81F3;&#x7D50;&#x69CB;&#x9AD4;&#x3001;&#x6578;&#x7D44;&#x548C;&#x63A5;&#x53E3;&#x90FD;&#x6703;&#x5275;&#x5EFA;&#x6240;&#x5F15;&#x7528;&#x8B8A;&#x91CF;&#x7684;&#x522B;&#x540D;&#x3002;</p>
<p>&#x6307;&#x91DD;&#x662F;&#x5BE6;&#x73FE;&#x6A19;&#x6E96;&#x5EAB;&#x4E2D;flag&#x5305;&#x7684;&#x95DC;&#x9375;&#x6280;&#x8853;&#xFF0C;&#x5B83;&#x4F7F;&#x7528;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#x4F86;&#x8A2D;&#x7F6E;&#x5C0D;&#x61C9;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#xFF0C;&#x800C;&#x9019;&#x4E9B;&#x5C0D;&#x61C9;&#x547D;&#x4EE4;&#x884C;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x7684;&#x8B8A;&#x91CF;&#x53EF;&#x80FD;&#x6703;&#x96F6;&#x6563;&#x5206;&#x5E03;&#x5728;&#x6574;&#x500B;&#x7A0B;&#x5E8F;&#x4E2D;&#x3002;&#x7232;&#x4E86;&#x8AAC;&#x660E;&#x9019;&#x4E00;&#x9EDE;&#xFF0C;&#x5728;&#x65E9;&#x4E9B;&#x7684;echo&#x7248;&#x672C;&#x4E2D;&#xFF0C;&#x5C31;&#x5305;&#x542B;&#x4E86;&#x5169;&#x500B;&#x53EF;&#x9078;&#x7684;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#xFF1A;<code>-n</code>&#x7528;&#x65BC;&#x5FFD;&#x7565;&#x884C;&#x5C3E;&#x7684;&#x63DB;&#x884C;&#x7B26;&#xFF0C;<code>-s sep</code>&#x7528;&#x65BC;&#x6307;&#x5B9A;&#x5206;&#x9694;&#x5B57;&#x7B26;&#xFF08;&#x9ED8;&#x8A8D;&#x662F;&#x7A7A;&#x683C;&#xFF09;&#x3002;&#x4E0B;&#x9762;&#x9019;&#x662F;&#x7B2C;&#x56DB;&#x500B;&#x7248;&#x672C;&#xFF0C;&#x5C0D;&#x61C9;&#x5305;&#x8DEF;&#x5F91;&#x7232;gopl.io/ch2/echo4&#x3002;</p>
<pre><code class="lang-Go">gopl.io/ch2/echo4
<span class="hljs-comment">// Echo4 prints its command-line arguments.</span>
<span class="hljs-keyword">package</span> main
@@ -2139,9 +2142,9 @@ fmt.Println(incr(&amp;v)) <span class="hljs-comment">// &quot;3&quot; (and v is
}
}
</code></pre>
<p><code>flag.Bool</code> &#x51FD;&#x6578;&#x8ABF;&#x7528;&#x5275;&#x5EFA;&#x4E86;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x5E03;&#x723E;&#x578B;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x8B8A;&#x91CF;. &#x5B83;&#x6709;&#x4E09;&#x500B;&#x5C6C;&#x6027;: &#x7B2C;&#x4E00;&#x500B;&#x662F;&#x7684;&#x540D;&#x5B57;&quot;n&quot;, &#x7136;&#x5F8C;&#x662F;&#x6A19;&#x8A8C;&#x7684;&#x9ED8;&#x8A8D;&#x503C;(&#x9019;&#x91CC;&#x662F;false), &#x6700;&#x5F8C;&#x662F;&#x5C0D;&#x61C9;&#x7684;&#x63CF;&#x8FF0;&#x4FE1;&#x606F;. &#x5982;&#x679C;&#x7528;&#x6236;&#x8F38;&#x5165;&#x4E86;&#x7121;&#x6548;&#x7684;&#x6A19;&#x8A8C;&#x53C3;&#x6578;, &#x6216;&#x8005;&#x8F38;&#x5165; <code>-h</code> &#x6216; <code>-help</code> &#x6A19;&#x8A8C;&#x53C3;&#x6578;, &#x5C07;&#x6253;&#x5370;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x7684;&#x540D;&#x5B57;, &#x9ED8;&#x8A8D;&#x503C;&#x548C;&#x63CF;&#x8FF0;&#x4FE1;&#x606F;. &#x985E;&#x4F3C;&#x7684;, flag.String &#x7528;&#x65BC;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#x7684;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x8B8A;&#x91CF;, &#x540C;&#x6A23;&#x5305;&#x542B;&#x53C3;&#x6578;&#x540D;, &#x9ED8;&#x8A8D;&#x503C;, &#x548C;&#x63CF;&#x8FF0;&#x4FE1;&#x606F;. &#x8B8A;&#x91CF; <code>sep</code> &#x548C; <code>n</code> &#x662F;&#x4E00;&#x500B;&#x6307;&#x5411;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#x7684;&#x6307;&#x91DD;, &#x56E0;&#x6B64;&#x5FC5;&#x9B1A;&#x7528; <em>sep &#x548C; </em>n &#x7684;&#x65B9;&#x5F0F;&#x9593;&#x63A5;&#x5F15;&#x7528;.</p>
<p>&#x7576;&#x7A0B;&#x5E8F;&#x904B;&#x884C;&#x6642;, &#x5FC5;&#x9B1A;&#x5728;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#x4F7F;&#x7528;&#x4E4B;&#x524D;&#x8ABF;&#x7528; flag.Parse &#x51FD;&#x6578;&#x66F4;&#x65B0;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#x7684;&#x503C;(&#x4E4B;&#x524D;&#x662F;&#x9ED8;&#x8A8D;&#x503C;). &#x975E;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x7684;&#x666E;&#x901A;&#x985E;&#x578B;&#x53C3;&#x6578;&#x53EF;&#x4EE5;&#x7528; flag.Args() &#x8A2A;&#x554F;, &#x5C0D;&#x61C9;&#x4E00;&#x500B; &#x5B57;&#x7B26;&#x4E32;&#x5207;&#x7247;. &#x5982;&#x679C; flag.Parse &#x89E3;&#x6790;&#x9047;&#x5230;&#x932F;&#x8AA4;, &#x5C07;&#x6253;&#x5370;&#x63D0;&#x793A;&#x4FE1;&#x606F;, &#x7136;&#x5F8C;&#x8ABF;&#x7528; os.Exit(2) &#x7D42;&#x6B62;&#x7A0B;&#x5E8F;.</p>
<p>&#x8B93;&#x6211;&#x5011;&#x904B;&#x884C;&#x4E00;&#x4E9B; echo &#x6E2C;&#x8A66;&#x7528;&#x4F8B;:</p>
<p>&#x8ABF;&#x7528;flag.Bool&#x51FD;&#x6578;&#x6703;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x5C0D;&#x61C9;&#x5E03;&#x723E;&#x578B;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x7684;&#x8B8A;&#x91CF;&#x3002;&#x5B83;&#x6709;&#x4E09;&#x500B;&#x5C6C;&#x6027;&#xFF1A;&#x7B2C;&#x4E00;&#x500B;&#x662F;&#x7684;&#x547D;&#x4EE4;&#x884C;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x7684;&#x540D;&#x5B57;&#x201C;n&#x201D;&#xFF0C;&#x7136;&#x5F8C;&#x662F;&#x8A72;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x7684;&#x9ED8;&#x8A8D;&#x503C;&#xFF08;&#x9019;&#x91CC;&#x662F;false&#xFF09;&#xFF0C;&#x6700;&#x5F8C;&#x662F;&#x8A72;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x5C0D;&#x61C9;&#x7684;&#x63CF;&#x8FF0;&#x4FE1;&#x606F;&#x3002;&#x5982;&#x679C;&#x7528;&#x6236;&#x5728;&#x547D;&#x4EE4;&#x884C;&#x8F38;&#x5165;&#x4E86;&#x4E00;&#x500B;&#x7121;&#x6548;&#x7684;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#xFF0C;&#x6216;&#x8005;&#x8F38;&#x5165;<code>-h</code>&#x6216;<code>-help</code>&#x53C3;&#x6578;&#xFF0C;&#x90A3;&#x9EBD;&#x5C07;&#x6253;&#x5370;&#x6240;&#x6709;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x7684;&#x540D;&#x5B57;&#x3001;&#x9ED8;&#x8A8D;&#x503C;&#x548C;&#x63CF;&#x8FF0;&#x4FE1;&#x606F;&#x3002;&#x985E;&#x4F3C;&#x7684;&#xFF0C;&#x8ABF;&#x7528;flag.String&#x51FD;&#x6578;&#x5C07;&#x65BC;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x5C0D;&#x61C9;&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#x7684;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#xFF0C;&#x540C;&#x6A23;&#x5305;&#x542B;&#x547D;&#x4EE4;&#x884C;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x5C0D;&#x61C9;&#x7684;&#x53C3;&#x6578;&#x540D;&#x3001;&#x9ED8;&#x8A8D;&#x503C;&#x3001;&#x548C;&#x63CF;&#x8FF0;&#x4FE1;&#x606F;&#x3002;&#x7A0B;&#x5E8F;&#x4E2D;&#x7684;<code>sep</code>&#x548C;<code>n</code>&#x8B8A;&#x91CF;&#x5206;&#x522B;&#x662F;&#x6307;&#x5411;&#x5C0D;&#x61C9;&#x547D;&#x4EE4;&#x884C;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#x7684;&#x6307;&#x91DD;&#xFF0C;&#x56E0;&#x6B64;&#x5FC5;&#x9B1A;&#x7528;<code>*sep</code>&#x548C;<code>*n</code>&#x5F62;&#x5F0F;&#x7684;&#x6307;&#x91DD;&#x8A9E;&#x6CD5;&#x9593;&#x63A5;&#x5F15;&#x7528;&#x5B83;&#x5011;&#x3002;</p>
<p>&#x7576;&#x7A0B;&#x5E8F;&#x904B;&#x884C;&#x6642;&#xFF0C;&#x5FC5;&#x9B1A;&#x5728;&#x4F7F;&#x7528;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x5C0D;&#x61C9;&#x7684;&#x8B8A;&#x91CF;&#x4E4B;&#x524D;&#x8ABF;&#x7528;&#x5148;flag.Parse&#x51FD;&#x6578;&#xFF0C;&#x7528;&#x65BC;&#x66F4;&#x65B0;&#x6BCF;&#x500B;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x5C0D;&#x61C9;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#xFF08;&#x4E4B;&#x524D;&#x662F;&#x9ED8;&#x8A8D;&#x503C;&#xFF09;&#x3002;&#x5C0D;&#x65BC;&#x975E;&#x6A19;&#x8A8C;&#x53C3;&#x6578;&#x7684;&#x666E;&#x901A;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x8ABF;&#x7528;flag.Args()&#x51FD;&#x6578;&#x4F86;&#x8A2A;&#x554F;&#xFF0C;&#x8FD4;&#x8FF4;&#x503C;&#x5C0D;&#x61C9;&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#x7684;slice&#x3002;&#x5982;&#x679C;&#x5728;flag.Parse&#x51FD;&#x6578;&#x89E3;&#x6790;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#x6642;&#x9047;&#x5230;&#x932F;&#x8AA4;&#xFF0C;&#x9ED8;&#x8A8D;&#x5C07;&#x6253;&#x5370;&#x76F8;&#x95DC;&#x7684;&#x63D0;&#x793A;&#x4FE1;&#x606F;&#xFF0C;&#x7136;&#x5F8C;&#x8ABF;&#x7528;os.Exit(2)&#x7D42;&#x6B62;&#x7A0B;&#x5E8F;&#x3002;</p>
<p>&#x8B93;&#x6211;&#x5011;&#x904B;&#x884C;&#x4E00;&#x4E9B;echo&#x6E2C;&#x8A66;&#x7528;&#x4F8B;&#xFF1A;</p>
<pre><code>$ go build gopl.io/ch2/echo4
$ ./echo4 a bc def
a bc def
@@ -2154,56 +2157,65 @@ Usage of ./echo4:
-n omit trailing newline
-s string
separator (default &quot; &quot;)
</code></pre><h3 id="233-new-&#x51FD;&#x6578;">2.3.3 new &#x51FD;&#x6578;</h3>
<p>&#x53E6;&#x4E00;&#x500B;&#x5275;&#x5EFA;&#x8B8A;&#x91CF;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x7528;&#x5167;&#x5EFA;&#x7684; new &#x51FD;&#x6578;. &#x8868;&#x9054;&#x5F0F; <code>new(T)</code> &#x5275;&#x5EFA;&#x4E00;&#x500B;T&#x985E;&#x578B;&#x7684;&#x533F;&#x540D;&#x8B8A;&#x91CF;, &#x521D;&#x59CB;&#x5316;&#x7232;T&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;, &#x8FD4;&#x8FF4;&#x8FD4;&#x8FF4;&#x8B8A;&#x91CF;&#x5730;&#x5740;, &#x8FD4;&#x8FF4;&#x6307;&#x91DD;&#x985E;&#x578B;&#x7232; <code>*T</code>.</p>
</code></pre><h3 id="233-new&#x51FD;&#x6578;">2.3.3. new&#x51FD;&#x6578;</h3>
<p>&#x53E6;&#x4E00;&#x500B;&#x5275;&#x5EFA;&#x8B8A;&#x91CF;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x8ABF;&#x7528;&#x7528;&#x5167;&#x5EFA;&#x7684;new&#x51FD;&#x6578;&#x3002;&#x8868;&#x9054;&#x5F0F;new(T)&#x5C07;&#x5275;&#x5EFA;&#x4E00;&#x500B;T&#x985E;&#x578B;&#x7684;&#x533F;&#x540D;&#x8B8A;&#x91CF;&#xFF0C;&#x521D;&#x59CB;&#x5316;&#x7232;T&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;&#xFF0C;&#x7136;&#x5F8C;&#x8FD4;&#x8FF4;&#x8B8A;&#x91CF;&#x5730;&#x5740;&#xFF0C;&#x8FD4;&#x8FF4;&#x7684;&#x6307;&#x91DD;&#x985E;&#x578B;&#x7232;<code>*T</code>&#x3002;</p>
<pre><code class="lang-Go">p := <span class="hljs-built_in">new</span>(<span class="hljs-typename">int</span>) <span class="hljs-comment">// p, *int &#x985E;&#x578B;, &#x6307;&#x5411;&#x533F;&#x540D;&#x7684; int &#x8B8A;&#x91CF;</span>
fmt.Println(*p) <span class="hljs-comment">// &quot;0&quot;</span>
*p = <span class="hljs-number">2</span> <span class="hljs-comment">// &#x8A2D;&#x7F6E; int &#x533F;&#x540D;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#x7232; 2</span>
fmt.Println(*p) <span class="hljs-comment">// &quot;2&quot;</span>
</code></pre>
<p>&#x5F9E; new &#x5275;&#x5EFA;&#x8B8A;&#x91CF;&#x548C;&#x666E;&#x901A;&#x8072;&#x660E;&#x65B9;&#x5F0F;&#x5275;&#x5EFA;&#x8B8A;&#x91CF;&#x6C92;&#x6709;&#x4EC0;&#x9EBD;&#x5340;&#x522B;, &#x9664;&#x4E86;&#x4E0D;&#x9700;&#x8981;&#x8072;&#x660E;&#x4E00;&#x500B;&#x81E8;&#x6642;&#x8B8A;&#x91CF;&#x7684;&#x540D;&#x5B57;&#x5916;, &#x6211;&#x5011;&#x9084;&#x53EF;&#x4EE5;&#x5728;&#x8868;&#x9054;&#x5F0F;&#x4E2D;&#x4F7F;&#x7528; <code>new(T)</code>. &#x63DB;&#x8A00;&#x4E4B;, new &#x985E;&#x4F3C;&#x662F;&#x4E00;&#x7A2E;&#x8A9E;&#x6CD5;&#x91A3;, &#x800C;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x57FA;&#x790E;&#x6982;&#x5FF5;.</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x5169;&#x500B; newInt &#x51FD;&#x6578;&#x6709;&#x7740;&#x76F8;&#x540C;&#x7684;&#x884C;&#x7232;:</p>
<p>&#x7528;new&#x5275;&#x5EFA;&#x8B8A;&#x91CF;&#x548C;&#x666E;&#x901A;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x65B9;&#x5F0F;&#x5275;&#x5EFA;&#x8B8A;&#x91CF;&#x6C92;&#x6709;&#x4EC0;&#x9EBD;&#x5340;&#x522B;&#xFF0C;&#x9664;&#x4E86;&#x4E0D;&#x9700;&#x8981;&#x8072;&#x660E;&#x4E00;&#x500B;&#x81E8;&#x6642;&#x8B8A;&#x91CF;&#x7684;&#x540D;&#x5B57;&#x5916;&#xFF0C;&#x6211;&#x5011;&#x9084;&#x53EF;&#x4EE5;&#x5728;&#x8868;&#x9054;&#x5F0F;&#x4E2D;&#x4F7F;&#x7528;new(T)&#x3002;&#x63DB;&#x8A00;&#x4E4B;&#xFF0C;new&#x51FD;&#x6578;&#x985E;&#x4F3C;&#x662F;&#x4E00;&#x7A2E;&#x8A9E;&#x6CD5;&#x91A3;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x57FA;&#x790E;&#x6982;&#x5FF5;&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x5169;&#x500B;newInt&#x51FD;&#x6578;&#x6709;&#x7740;&#x76F8;&#x540C;&#x7684;&#x884C;&#x7232;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> newInt() *<span class="hljs-typename">int</span> { <span class="hljs-keyword">func</span> newInt() *<span class="hljs-typename">int</span> {
<span class="hljs-keyword">return</span> <span class="hljs-built_in">new</span>(<span class="hljs-typename">int</span>) <span class="hljs-keyword">var</span> dummy <span class="hljs-typename">int</span>
} <span class="hljs-keyword">return</span> &amp;dummy
}
</code></pre>
<p>&#x6BCF;&#x6B21;&#x8ABF;&#x7528; new &#x90FD;&#x662F;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x5730;&#x5740;, &#x56E0;&#x6B64;&#x4E0B;&#x9762;&#x5169;&#x500B;&#x5730;&#x5740;&#x662F;&#x4E0D;&#x540C;&#x7684;:</p>
<p>&#x6BCF;&#x6B21;&#x8ABF;&#x7528;new&#x51FD;&#x6578;&#x90FD;&#x662F;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x5730;&#x5740;&#xFF0C;&#x56E0;&#x6B64;&#x4E0B;&#x9762;&#x5169;&#x500B;&#x5730;&#x5740;&#x662F;&#x4E0D;&#x540C;&#x7684;&#xFF1A;</p>
<pre><code class="lang-Go">p := <span class="hljs-built_in">new</span>(<span class="hljs-typename">int</span>)
q := <span class="hljs-built_in">new</span>(<span class="hljs-typename">int</span>)
fmt.Println(p == q) <span class="hljs-comment">// &quot;false&quot;</span>
</code></pre>
<p>&#x7576;&#x7136;&#x4E5F;&#x6709;&#x7279;&#x6B8A;&#x60C5;&#x6CC1;: &#x5982;&#x679C;&#x5169;&#x500B;&#x985E;&#x578B;&#x90FD;&#x662F;&#x7A7A;&#x7684;, &#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x985E;&#x578B;&#x7684;&#x5927;&#x5C0F;&#x662F;0, &#x4F8B;&#x5982; <code>struct{}</code> &#x548C; <code>[0]int</code>, &#x6709;&#x53EF;&#x80FD;&#x6709;&#x76F8;&#x540C;&#x7684;&#x5730;&#x5740;(&#x4F9D;&#x8CF4;&#x5177;&#x9AD4;&#x7684;&#x8A9E;&#x8A00;&#x5BE6;&#x73FE;).</p>
<p>new &#x51FD;&#x6578;&#x4F7F;&#x7528;&#x76F8;&#x5C0D;&#x6BD4;&#x8F03;&#x5C11;, &#x56E0;&#x7232;&#x5C0D;&#x61C9;&#x7D50;&#x69CB;&#x9AD4;&#x4F86;&#x8AAC;, &#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x7528;&#x5B57;&#x9762;&#x91CF;&#x8A9E;&#x6CD5;&#x5275;&#x5EFA;&#x65B0;&#x8B8A;&#x91CF;&#x7684;&#x65B9;&#x6CD5;&#x66F4;&#x9748;&#x6D3B; (&#xA7;4.4.1).</p>
<p>&#x7531;&#x65BC; new &#x96BB;&#x662F;&#x4E00;&#x500B;&#x9810;&#x5B9A;&#x7FA9;&#x7684;&#x51FD;&#x6578;, &#x5B83;&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x95DC;&#x9375;&#x5B57;, &#x56E0;&#x6B64;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5C07; new &#x91CD;&#x65B0;&#x5B9A;&#x7FA9;&#x7232;&#x522B;&#x7684;&#x985E;&#x578B;. &#x4F8B;&#x5982;:</p>
<p>&#x7576;&#x7136;&#x4E5F;&#x53EF;&#x80FD;&#x6709;&#x7279;&#x6B8A;&#x60C5;&#x6CC1;&#xFF1A;&#x5982;&#x679C;&#x5169;&#x500B;&#x985E;&#x578B;&#x90FD;&#x662F;&#x7A7A;&#x7684;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x985E;&#x578B;&#x7684;&#x5927;&#x5C0F;&#x662F;0&#xFF0C;&#x4F8B;&#x5982;<code>struct{}</code>&#x548C; <code>[0]int</code>, &#x6709;&#x53EF;&#x80FD;&#x6709;&#x76F8;&#x540C;&#x7684;&#x5730;&#x5740;&#xFF08;&#x4F9D;&#x8CF4;&#x5177;&#x9AD4;&#x7684;&#x8A9E;&#x8A00;&#x5BE6;&#x73FE;&#xFF09;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x8ACB;&#x8B39;&#x614E;&#x4F7F;&#x7528;&#x5927;&#x5C0F;&#x7232;0&#x7684;&#x985E;&#x578B;&#xFF0C;&#x56E0;&#x7232;&#x5982;&#x679C;&#x985E;&#x578B;&#x7684;&#x5927;&#x5C0F;&#x4F4D;0&#x597D;&#x8A71;&#xFF0C;&#x53EF;&#x80FD;&#x5C0E;&#x81F4;Go&#x8A9E;&#x8A00;&#x7684;&#x81EA;&#x52D5;&#x5783;&#x573E;&#x8FF4;&#x6536;&#x5668;&#x6709;&#x4E0D;&#x540C;&#x7684;&#x884C;&#x7232;&#xFF0C;&#x5177;&#x9AD4;&#x8ACB;&#x67FB;&#x770B;<code>runtime.SetFinalizer</code>&#x51FD;&#x6578;&#x76F8;&#x95DC;&#x6587;&#x6A94;&#xFF09;&#x3002;</p>
<p>new&#x51FD;&#x6578;&#x4F7F;&#x7528;&#x5E38;&#x898B;&#x76F8;&#x5C0D;&#x6BD4;&#x8F03;&#x5C11;&#xFF0C;&#x56E0;&#x7232;&#x5C0D;&#x61C9;&#x7D50;&#x69CB;&#x9AD4;&#x4F86;&#x8AAC;&#xFF0C;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x7528;&#x5B57;&#x9762;&#x91CF;&#x8A9E;&#x6CD5;&#x5275;&#x5EFA;&#x65B0;&#x8B8A;&#x91CF;&#x7684;&#x65B9;&#x6CD5;&#x6703;&#x66F4;&#x9748;&#x6D3B;&#xFF08;&#xA7;4.4.1&#xFF09;&#x3002;</p>
<p>&#x7531;&#x65BC;new&#x96BB;&#x662F;&#x4E00;&#x500B;&#x9810;&#x5B9A;&#x7FA9;&#x7684;&#x51FD;&#x6578;&#xFF0C;&#x5B83;&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x95DC;&#x9375;&#x5B57;&#xFF0C;&#x56E0;&#x6B64;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5C07;new&#x540D;&#x5B57;&#x91CD;&#x65B0;&#x5B9A;&#x7FA9;&#x7232;&#x522B;&#x7684;&#x985E;&#x578B;&#x3002;&#x4F8B;&#x5982;&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> delta(old, <span class="hljs-built_in">new</span> <span class="hljs-typename">int</span>) <span class="hljs-typename">int</span> { <span class="hljs-keyword">return</span> <span class="hljs-built_in">new</span> - old }
</code></pre>
<p>&#x56E0;&#x7232; new &#x88AB;&#x5B9A;&#x7FA9;&#x7232; int &#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;, &#x56E0;&#x6B64; delta &#x51FD;&#x6578;&#x5167;&#x90E8;&#x5C31;&#x7121;&#x6CD5;&#x5728;&#x4F7F;&#x7528;&#x5167;&#x7F6E;&#x7684; new &#x51FD;&#x6578;&#x4E86;.</p>
<p>&#x7531;&#x65BC;new&#x88AB;&#x5B9A;&#x7FA9;&#x7232;int&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x540D;&#xFF0C;&#x56E0;&#x6B64;&#x5728;delta&#x51FD;&#x6578;&#x5167;&#x90E8;&#x662F;&#x7121;&#x6CD5;&#x4F7F;&#x7528;&#x5167;&#x7F6E;&#x7684;new&#x51FD;&#x6578;&#x7684;&#x3002;</p>
<h3 id="234-&#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;">2.3.4. &#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;</h3>
<p>&#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;&#x6307;&#x7684;&#x662F;&#x7A0B;&#x5E8F;&#x904B;&#x884C;&#x671F;&#x9593;&#x8B8A;&#x91CF;&#x5B58;&#x5728;&#x7684;&#x6709;&#x6548;&#x6642;&#x9593;&#x9593;&#x9694;. &#x5305;&#x7D1A;&#x8072;&#x660E;&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;&#x548C;&#x7A0B;&#x5E8F;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;&#x662F;&#x4E00;&#x81F4;&#x7684;. &#x76F8;&#x6BD4;&#x4E4B;&#x4E0B;, &#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x9031;&#x671F;&#x662F;&#x52D5;&#x614B;&#x7684;: &#x5F9E;&#x6BCF;&#x6B21;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x65B0;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x88AB;&#x57F7;&#x884C;&#x958B;&#x59CB;, &#x76F4;&#x5230;&#x8B8A;&#x91CF;&#x4E0D;&#x5728;&#x88AB;&#x5F15;&#x7528;&#x7232;&#x6B62;, &#x7136;&#x5F8C;&#x8B8A;&#x91CF;&#x7684;&#x5B58;&#x5132;&#x7A7A;&#x9593;&#x53EF;&#x80FD;&#x88AB;&#x8FF4;&#x6536;. &#x51FD;&#x6578;&#x7684;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#x548C;&#x8FD4;&#x8FF4;&#x503C;&#x8B8A;&#x91CF;&#x90FD;&#x662F;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;. &#x5B83;&#x5011;&#x5728;&#x51FD;&#x6578;&#x6BCF;&#x6B21;&#x88AB;&#x8ABF;&#x7528;&#x7684;&#x6642;&#x5019;&#x5275;&#x5EFA;.</p>
<p>&#x4F8B;&#x5982;, &#x4E0B;&#x9762;&#x662F;&#x5F9E; 1.4 &#x7BC0;&#x7684; Lissajous &#x7A0B;&#x5E8F;&#x6458;&#x9332;&#x7684;&#x4EE3;&#x78BC;&#x7247;&#x6BB5;:</p>
<pre><code class="lang-Go"><span class="hljs-keyword">for</span> t := <span class="hljs-number">0.0</span>; t &lt; cycles*<span class="hljs-number">2</span>*math.Pi; t += res {
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)
<p>&#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;&#x6307;&#x7684;&#x662F;&#x5728;&#x7A0B;&#x5E8F;&#x904B;&#x884C;&#x671F;&#x9593;&#x8B8A;&#x91CF;&#x6709;&#x6548;&#x5B58;&#x5728;&#x7684;&#x6642;&#x9593;&#x9593;&#x9694;&#x3002;&#x5C0D;&#x65BC;&#x5728;&#x5305;&#x4E00;&#x7D1A;&#x8072;&#x660E;&#x7684;&#x8B8A;&#x91CF;&#x4F86;&#x8AAC;&#xFF0C;&#x5B83;&#x5011;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;&#x548C;&#x6574;&#x500B;&#x7A0B;&#x5E8F;&#x7684;&#x904B;&#x884C;&#x9031;&#x671F;&#x662F;&#x4E00;&#x81F4;&#x7684;&#x3002;&#x800C;&#x76F8;&#x6BD4;&#x4E4B;&#x4E0B;&#xFF0C;&#x5728;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x9031;&#x671F;&#x5247;&#x662F;&#x52D5;&#x614B;&#x7684;&#xFF1A;&#x5F9E;&#x6BCF;&#x6B21;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x65B0;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x958B;&#x59CB;&#xFF0C;&#x76F4;&#x5230;&#x8A72;&#x8B8A;&#x91CF;&#x4E0D;&#x518D;&#x88AB;&#x5F15;&#x7528;&#x7232;&#x6B62;&#xFF0C;&#x7136;&#x5F8C;&#x8B8A;&#x91CF;&#x7684;&#x5B58;&#x5132;&#x7A7A;&#x9593;&#x53EF;&#x80FD;&#x88AB;&#x8FF4;&#x6536;&#x3002;&#x51FD;&#x6578;&#x7684;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#x548C;&#x8FD4;&#x8FF4;&#x503C;&#x8B8A;&#x91CF;&#x90FD;&#x662F;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x3002;&#x5B83;&#x5011;&#x5728;&#x51FD;&#x6578;&#x6BCF;&#x6B21;&#x88AB;&#x8ABF;&#x7528;&#x7684;&#x6642;&#x5019;&#x5275;&#x5EFA;&#x3002;</p>
<p>&#x4F8B;&#x5982;&#xFF0C;&#x4E0B;&#x9762;&#x662F;&#x5F9E;1.4&#x7BC0;&#x7684;Lissajous&#x7A0B;&#x5E8F;&#x6458;&#x9332;&#x7684;&#x4EE3;&#x78BC;&#x7247;&#x6BB5;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">for</span> t := <span class="hljs-number">0.0</span>; t &lt; cycles*<span class="hljs-number">2</span>*math.Pi; t += res {
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)
}
</code></pre>
<p>&#x5728;&#x6BCF;&#x6B21;&#x5FAA;&#x74B0;&#x7684;&#x958B;&#x59CB;&#x5275;&#x5EFA;&#x8B8A;&#x91CF; t, &#x7136;&#x5F8C;&#x5728;&#x6BCF;&#x6B21;&#x5FAA;&#x74B0;&#x8FED;&#x4EE3;&#x4E2D;&#x5275;&#x5EFA; x &#x548C; y.</p>
<p>&#x90A3;&#x9EBD;&#x5783;&#x573E;&#x6536;&#x96C6;&#x5668;&#x662F;&#x5982;&#x4F55;&#x77E5;&#x9053;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x662F;&#x4F55;&#x6642;&#x53EF;&#x4EE5;&#x88AB;&#x8FF4;&#x6536;&#x7684;&#x5462;? &#x9019;&#x91CC;&#x6211;&#x5011;&#x5148;&#x907F;&#x958B;&#x5B8C;&#x6574;&#x7684;&#x6280;&#x8853;&#x7D30;&#x7BC0;, &#x4F46;&#x662F;&#x57FA;&#x672C;&#x7684;&#x601D;&#x8DEF;&#x662F;, &#x5F9E;&#x6BCF;&#x500B;&#x5305;&#x7D1A;&#x7684;&#x8B8A;&#x91CF;&#x548C;&#x6BCF;&#x500B;&#x7576;&#x524D;&#x904B;&#x884C;&#x51FD;&#x6578;&#x7684;&#x6BCF;&#x4E00;&#x500B;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x958B;&#x59CB;, &#x901A;&#x904E;&#x6307;&#x91DD;&#x6216;&#x5F15;&#x7528;&#x7684;&#x8DEF;&#x5F91;, &#x662F;&#x5426;&#x53EF;&#x4EE5;&#x627E;&#x5230;&#x8A72;&#x8B8A;&#x91CF;. &#x5982;&#x679C;&#x4E0D;&#x5B58;&#x5728;&#x9019;&#x6A23;&#x7684;&#x8DEF;&#x5F91;, &#x90A3;&#x9EBD;&#x8AAC;&#x660E;&#x8A72;&#x8B8A;&#x91CF;&#x662F;&#x4E0D;&#x53EF;&#x9054;&#x7684;, &#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x5B83;&#x4F75;&#x4E0D;&#x6703;&#x5F71;&#x97FF;&#x5176;&#x9918;&#x7684;&#x8A08;&#x7B97;.</p>
<p>&#x56E0;&#x7232;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x9031;&#x671F;&#x96BB;&#x53D6;&#x6C7A;&#x65BC;&#x662F;&#x5426;&#x53EF;&#x9054;, &#x56E0;&#x6B64;&#x4E00;&#x500B;&#x5FAA;&#x74B0;&#x8FED;&#x4EE3;&#x5167;&#x90E8;&#x7684;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;&#x53EF;&#x80FD;&#x8D85;&#x9F63;&#x5176;&#x5C40;&#x90E8;&#x4F5C;&#x7528;&#x57DF;. &#x5B83;&#x53EF;&#x80FD;&#x5728;&#x51FD;&#x6578;&#x8FD4;&#x8FF4;&#x4E4B;&#x5F8C;&#x4F9D;&#x7136;&#x5B58;&#x5728;.</p>
<p>&#x7DE8;&#x8B6F;&#x5668;&#x6703;&#x9078;&#x64C7;&#x5728;&#x68E7;&#x4E0A;&#x9084;&#x662F;&#x5728;&#x5806;&#x4E0A;&#x5206;&#x914D;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x7684;&#x5B58;&#x5132;&#x7A7A;&#x9593;, &#x4F46;&#x53EF;&#x80FD;&#x4EE4;&#x4EBA;&#x9A5A;&#x8A1D;&#x7684;&#x662F;, &#x9019;&#x500B;&#x9078;&#x64C7;&#x4F75;&#x4E0D;&#x662F;&#x7531; var &#x6216; new &#x4F86;&#x6C7A;&#x5B9A;&#x7684;.</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> global *<span class="hljs-typename">int</span>
<p>&#x8B6F;&#x8A3B;&#xFF1A;&#x51FD;&#x6578;&#x7684;&#x6709;&#x53F3;&#x5C0F;&#x62EC;&#x5F27;&#x4E5F;&#x53EF;&#x4EE5;&#x53E6;&#x8D77;&#x4E00;&#x884C;&#x7E2E;&#x9032;&#xFF0C;&#x540C;&#x6642;&#x7232;&#x4E86;&#x9632;&#x6B62;&#x7DE8;&#x8B6F;&#x5668;&#x5728;&#x884C;&#x5C3E;&#x81EA;&#x52D5;&#x63D2;&#x5165;&#x5206;&#x865F;&#x800C;&#x5C0E;&#x81F4;&#x7684;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;&#xFF0C;&#x53EF;&#x4EE5;&#x5728;&#x672B;&#x5C3E;&#x7684;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#x5F8C;&#x9762;&#x986F;&#x5F0F;&#x63D2;&#x5165;&#x9017;&#x865F;&#x3002;&#x50CF;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">for</span> t := <span class="hljs-number">0.0</span>; t &lt; cycles*<span class="hljs-number">2</span>*math.Pi; t += res {
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, <span class="hljs-comment">// &#x6700;&#x5F8C;&#x63D2;&#x5165;&#x7684;&#x9017;&#x865F;&#x4E0D;&#x6703;&#x5C0E;&#x81F4;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;&#xFF0C;&#x9019;&#x662F;Go&#x7DE8;&#x8B6F;&#x5668;&#x7684;&#x4E00;&#x500B;&#x7279;&#x6027;</span>
) <span class="hljs-comment">// &#x5C0F;&#x62EC;&#x5F27;&#x53E6;&#x8D77;&#x4E00;&#x884C;&#x7E2E;&#x9032;&#xFF0C;&#x548C;&#x5927;&#x62EC;&#x5F27;&#x7684;&#x98A8;&#x683C;&#x4FDD;&#x5B58;&#x4E00;&#x81F4;</span>
}
</code></pre>
<p>&#x5728;&#x6BCF;&#x6B21;&#x5FAA;&#x74B0;&#x7684;&#x958B;&#x59CB;&#x6703;&#x5275;&#x5EFA;&#x81E8;&#x6642;&#x8B8A;&#x91CF;t&#xFF0C;&#x7136;&#x5F8C;&#x5728;&#x6BCF;&#x6B21;&#x5FAA;&#x74B0;&#x8FED;&#x4EE3;&#x4E2D;&#x5275;&#x5EFA;&#x81E8;&#x6642;&#x8B8A;&#x91CF;x&#x548C;y&#x3002;</p>
<p>&#x90A3;&#x9EBD;&#x5783;Go&#x8A9E;&#x8A00;&#x7684;&#x81EA;&#x52D5;&#x573E;&#x6536;&#x96C6;&#x5668;&#x662F;&#x5982;&#x4F55;&#x77E5;&#x9053;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x662F;&#x4F55;&#x6642;&#x53EF;&#x4EE5;&#x88AB;&#x8FF4;&#x6536;&#x7684;&#x5462;&#xFF1F;&#x9019;&#x91CC;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x907F;&#x958B;&#x5B8C;&#x6574;&#x7684;&#x6280;&#x8853;&#x7D30;&#x7BC0;&#xFF0C;&#x57FA;&#x672C;&#x7684;&#x5BE6;&#x73FE;&#x601D;&#x8DEF;&#x662F;&#xFF0C;&#x5F9E;&#x6BCF;&#x500B;&#x5305;&#x7D1A;&#x7684;&#x8B8A;&#x91CF;&#x548C;&#x6BCF;&#x500B;&#x7576;&#x524D;&#x904B;&#x884C;&#x51FD;&#x6578;&#x7684;&#x6BCF;&#x4E00;&#x500B;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x958B;&#x59CB;&#xFF0C;&#x901A;&#x904E;&#x6307;&#x91DD;&#x6216;&#x5F15;&#x7528;&#x7684;&#x8A2A;&#x554F;&#x8DEF;&#x5F91;&#x904D;&#x6B77;&#xFF0C;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x627E;&#x5230;&#x8A72;&#x8B8A;&#x91CF;&#x3002;&#x5982;&#x679C;&#x4E0D;&#x5B58;&#x5728;&#x9019;&#x6A23;&#x7684;&#x8A2A;&#x554F;&#x8DEF;&#x5F91;&#xFF0C;&#x90A3;&#x9EBD;&#x8AAC;&#x660E;&#x8A72;&#x8B8A;&#x91CF;&#x662F;&#x4E0D;&#x53EF;&#x9054;&#x7684;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x5B83;&#x662F;&#x5426;&#x5B58;&#x5728;&#x4F75;&#x4E0D;&#x6703;&#x5F71;&#x97FF;&#x7A0B;&#x5E8F;&#x5F8C;&#x7E8C;&#x7684;&#x8A08;&#x7B97;&#x7D50;&#x679C;&#x3002;</p>
<p>&#x56E0;&#x7232;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x6709;&#x6548;&#x9031;&#x671F;&#x96BB;&#x53D6;&#x6C7A;&#x65BC;&#x662F;&#x5426;&#x53EF;&#x9054;&#xFF0C;&#x56E0;&#x6B64;&#x4E00;&#x500B;&#x5FAA;&#x74B0;&#x8FED;&#x4EE3;&#x5167;&#x90E8;&#x7684;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;&#x53EF;&#x80FD;&#x8D85;&#x51FA;&#x5176;&#x5C40;&#x90E8;&#x4F5C;&#x7528;&#x57DF;&#x3002;&#x540C;&#x6642;&#xFF0C;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x53EF;&#x80FD;&#x5728;&#x51FD;&#x6578;&#x8FD4;&#x8FF4;&#x4E4B;&#x5F8C;&#x4F9D;&#x7136;&#x5B58;&#x5728;&#x3002;</p>
<p>&#x7DE8;&#x8B6F;&#x5668;&#x6703;&#x81EA;&#x52D5;&#x9078;&#x64C7;&#x5728;&#x68E7;&#x4E0A;&#x9084;&#x662F;&#x5728;&#x5806;&#x4E0A;&#x5206;&#x914D;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x7684;&#x5B58;&#x5132;&#x7A7A;&#x9593;&#xFF0C;&#x4F46;&#x53EF;&#x80FD;&#x4EE4;&#x4EBA;&#x9A5A;&#x8A1D;&#x7684;&#x662F;&#xFF0C;&#x9019;&#x500B;&#x9078;&#x64C7;&#x4F75;&#x4E0D;&#x662F;&#x7531;&#x7528;var&#x9084;&#x662F;new&#x8072;&#x660E;&#x8B8A;&#x91CF;&#x7684;&#x65B9;&#x5F0F;&#x6C7A;&#x5B9A;&#x7684;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> global *<span class="hljs-typename">int</span>
<span class="hljs-keyword">func</span> f() { <span class="hljs-keyword">func</span> g() {
<span class="hljs-keyword">var</span> x <span class="hljs-typename">int</span> y := <span class="hljs-built_in">new</span>(<span class="hljs-typename">int</span>)
x = <span class="hljs-number">1</span> *y = <span class="hljs-number">1</span>
global = &amp;x }
<span class="hljs-keyword">func</span> f() { <span class="hljs-keyword">func</span> g() {
<span class="hljs-keyword">var</span> x <span class="hljs-typename">int</span> y := <span class="hljs-built_in">new</span>(<span class="hljs-typename">int</span>)
x = <span class="hljs-number">1</span> *y = <span class="hljs-number">1</span>
global = &amp;x }
}
</code></pre>
<p>&#x9019;&#x91CC;&#x7684; x &#x5FC5;&#x9B1A;&#x5728;&#x5806;&#x4E0A;&#x5206;&#x914D;, &#x56E0;&#x7232;&#x5B83;&#x5728;&#x51FD;&#x6578;&#x9000;&#x9F63;&#x5F8C;&#x4F9D;&#x7136;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x5305;&#x7684; global &#x8B8A;&#x91CF;&#x627E;&#x5230;, &#x96D6;&#x7136;&#x5B83;&#x662F;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x5B9A;&#x7FA9;&#x7684;; &#x6211;&#x5011;&#x8AAC;&#x9019;&#x500B; x &#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x5F9E; &#x51FD;&#x6578; f &#x4E2D;&#x9003;&#x9038;&#x4E86;. &#x76F8;&#x53CD;, &#x7576; g &#x51FD;&#x6578;&#x8FD4;&#x8FF4;&#x6642;, &#x8B8A;&#x91CF; <code>*y</code> &#x5C07;&#x662F;&#x4E0D;&#x53EF;&#x9054;&#x7684;, &#x4E5F;&#x5C31;&#x662F;&#x53EF;&#x4EE5;&#x88AB;&#x8FF4;&#x6536;&#x7684;. &#x56E0;&#x6B64;, <code>*y</code> &#x4F75;&#x6C92;&#x6709;&#x5F9E; &#x51FD;&#x6578; g &#x9003;&#x9038;, &#x7DE8;&#x8B6F;&#x5668;&#x53EF;&#x4EE5;&#x9078;&#x64C7;&#x5728;&#x68E7;&#x4E0A;&#x5206;&#x914D; <code>*y</code> &#x7684;&#x5B58;&#x5132;&#x7A7A;&#x9593;, &#x96D6;&#x7136;&#x9019;&#x91CC;&#x7528;&#x7684;&#x662F; new &#x65B9;&#x5F0F;.
&#x5728;&#x4EFB;&#x4F55;&#x6642;&#x5019;, &#x4F60;&#x4F75;&#x4E0D;&#x9700;&#x7232;&#x4E86;&#x7DE8;&#x5BEB;&#x6B63;&#x78BA;&#x7684;&#x4EE3;&#x78BC;&#x800C;&#x8981;&#x8003;&#x616E;&#x8B8A;&#x91CF;&#x7684;&#x9003;&#x9038;&#x884C;&#x7232;, &#x8981;&#x8A18;&#x4F4F;&#x7684;&#x662F;, &#x9003;&#x9038;&#x7684;&#x8B8A;&#x91CF;&#x9700;&#x8981;&#x984D;&#x5916;&#x5206;&#x914D;&#x5167;&#x5B58;, &#x540C;&#x6642;&#x5C0D;&#x6027;&#x80FD;&#x7684;&#x512A;&#x5316;&#x6703;&#x7523;&#x751F;&#x4E00;&#x5B9A;&#x7684;&#x5F71;&#x97FF;.</p>
<p>&#x5783;&#x573E;&#x6536;&#x96C6;&#x5668;&#x5C0D;&#x7DE8;&#x5BEB;&#x6B63;&#x78BA;&#x7684;&#x4EE3;&#x78BC;&#x662F;&#x4E00;&#x500B;&#x9245;&#x5927;&#x7684;&#x5E6B;&#x52A9;, &#x4F46;&#x4F75;&#x4E0D;&#x662F;&#x8AAC;&#x4F60;&#x5B8C;&#x5168;&#x4E0D;&#x7528;&#x8003;&#x616E;&#x5167;&#x5B58;&#x4E86;. &#x4F60;&#x96D6;&#x7136;&#x4E0D;&#x9700;&#x8981;&#x986F;&#x5F0F;&#x5730;&#x5206;&#x914D;&#x548C;&#x91CB;&#x653E;&#x5167;&#x5B58;, &#x4F46;&#x662F;&#x8981;&#x7DE8;&#x5BEB;&#x9AD8;&#x6548;&#x7684;&#x7A0B;&#x5E8F;&#x4F60;&#x9084;&#x662F;&#x9700;&#x8981;&#x77E5;&#x9053;&#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;. &#x4F8B;&#x5982;, &#x5C07;&#x6307;&#x5411;&#x77ED;&#x751F;&#x547D;&#x9031;&#x671F;&#x5C0D;&#x8C61;&#x7684;&#x6307;&#x91DD;&#x4FDD;&#x5B58;&#x5230;&#x5177;&#x6709;&#x9577;&#x751F;&#x547D;&#x9031;&#x671F;&#x7684;&#x5C0D;&#x8C61;&#x4E2D;, &#x7279;&#x522B;&#x662F;&#x5168;&#x5C40;&#x8B8A;&#x91CF;&#x6642;, &#x6703;&#x963B;&#x6B62;&#x5C0D;&#x77ED;&#x751F;&#x547D;&#x9031;&#x671F;&#x5C0D;&#x8C61;&#x7684;&#x5783;&#x573E;&#x8FF4;&#x6536;.</p>
<p>&#x9019;&#x91CC;&#x7684;x&#x8B8A;&#x91CF;&#x5FC5;&#x9B1A;&#x5728;&#x5806;&#x4E0A;&#x5206;&#x914D;&#xFF0C;&#x56E0;&#x7232;&#x5B83;&#x5728;&#x51FD;&#x6578;&#x9000;&#x51FA;&#x5F8C;&#x4F9D;&#x7136;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x5305;&#x4E00;&#x7D1A;&#x7684;global&#x8B8A;&#x91CF;&#x627E;&#x5230;&#xFF0C;&#x96D6;&#x7136;&#x5B83;&#x662F;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x5B9A;&#x7FA9;&#x7684;&#xFF1B;&#x7528;Go&#x8A9E;&#x8A00;&#x7684;&#x8853;&#x8A9E;&#x8AAC;&#xFF0C;&#x9019;&#x500B;x&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x5F9E;&#x51FD;&#x6578;f&#x4E2D;&#x9003;&#x9038;&#x4E86;&#x3002;&#x76F8;&#x53CD;&#xFF0C;&#x7576;g&#x51FD;&#x6578;&#x8FD4;&#x8FF4;&#x6642;&#xFF0C;&#x8B8A;&#x91CF;<code>*y</code>&#x5C07;&#x662F;&#x4E0D;&#x53EF;&#x9054;&#x7684;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x53EF;&#x4EE5;&#x99AC;&#x4E0A;&#x88AB;&#x8FF4;&#x6536;&#x7684;&#x3002;&#x56E0;&#x6B64;&#xFF0C;<code>*y</code>&#x4F75;&#x6C92;&#x6709;&#x5F9E;&#x51FD;&#x6578;g&#x4E2D;&#x9003;&#x9038;&#xFF0C;&#x7DE8;&#x8B6F;&#x5668;&#x53EF;&#x4EE5;&#x9078;&#x64C7;&#x5728;&#x68E7;&#x4E0A;&#x5206;&#x914D;<code>*y</code>&#x7684;&#x5B58;&#x5132;&#x7A7A;&#x9593;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x4E5F;&#x53EF;&#x4EE5;&#x9078;&#x64C7;&#x5728;&#x5806;&#x4E0A;&#x5206;&#x914D;&#xFF0C;&#x7136;&#x5F8C;&#x7531;Go&#x8A9E;&#x8A00;&#x7684;GC&#x8FF4;&#x6536;&#x9019;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x5167;&#x5B58;&#x7A7A;&#x9593;&#xFF09;&#xFF0C;&#x96D6;&#x7136;&#x9019;&#x91CC;&#x7528;&#x7684;&#x662F;new&#x65B9;&#x5F0F;&#x3002;&#x5176;&#x5BE6;&#x5728;&#x4EFB;&#x4F55;&#x6642;&#x5019;&#xFF0C;&#x4F60;&#x4F75;&#x4E0D;&#x9700;&#x7232;&#x4E86;&#x7DE8;&#x5BEB;&#x6B63;&#x78BA;&#x7684;&#x4EE3;&#x78BC;&#x800C;&#x8981;&#x8003;&#x616E;&#x8B8A;&#x91CF;&#x7684;&#x9003;&#x9038;&#x884C;&#x7232;&#xFF0C;&#x8981;&#x8A18;&#x4F4F;&#x7684;&#x662F;&#xFF0C;&#x9003;&#x9038;&#x7684;&#x8B8A;&#x91CF;&#x9700;&#x8981;&#x984D;&#x5916;&#x5206;&#x914D;&#x5167;&#x5B58;&#xFF0C;&#x540C;&#x6642;&#x5C0D;&#x6027;&#x80FD;&#x7684;&#x512A;&#x5316;&#x53EF;&#x80FD;&#x6703;&#x7523;&#x751F;&#x7D30;&#x5FAE;&#x7684;&#x5F71;&#x97FF;&#x3002;</p>
<p>Go&#x8A9E;&#x8A00;&#x7684;&#x81EA;&#x52D5;&#x5783;&#x573E;&#x6536;&#x96C6;&#x5668;&#x5C0D;&#x7DE8;&#x5BEB;&#x6B63;&#x78BA;&#x7684;&#x4EE3;&#x78BC;&#x662F;&#x4E00;&#x500B;&#x9245;&#x5927;&#x7684;&#x5E6B;&#x52A9;&#xFF0C;&#x4F46;&#x4E5F;&#x4F75;&#x4E0D;&#x662F;&#x8AAC;&#x4F60;&#x5B8C;&#x5168;&#x4E0D;&#x7528;&#x8003;&#x616E;&#x5167;&#x5B58;&#x4E86;&#x3002;&#x4F60;&#x96D6;&#x7136;&#x4E0D;&#x9700;&#x8981;&#x986F;&#x5F0F;&#x5730;&#x5206;&#x914D;&#x548C;&#x91CB;&#x653E;&#x5167;&#x5B58;&#xFF0C;&#x4F46;&#x662F;&#x8981;&#x7DE8;&#x5BEB;&#x9AD8;&#x6548;&#x7684;&#x7A0B;&#x5E8F;&#x4F60;&#x4F9D;&#x7136;&#x9700;&#x8981;&#x4E86;&#x89E3;&#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x5982;&#x679C;&#x5C07;&#x6307;&#x5411;&#x77ED;&#x751F;&#x547D;&#x9031;&#x671F;&#x5C0D;&#x8C61;&#x7684;&#x6307;&#x91DD;&#x4FDD;&#x5B58;&#x5230;&#x5177;&#x6709;&#x9577;&#x751F;&#x547D;&#x9031;&#x671F;&#x7684;&#x5C0D;&#x8C61;&#x4E2D;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x4FDD;&#x5B58;&#x5230;&#x5168;&#x5C40;&#x8B8A;&#x91CF;&#x6642;&#xFF0C;&#x6703;&#x963B;&#x6B62;&#x5C0D;&#x77ED;&#x751F;&#x547D;&#x9031;&#x671F;&#x5C0D;&#x8C61;&#x7684;&#x5783;&#x573E;&#x8FF4;&#x6536;&#xFF08;&#x5F9E;&#x800C;&#x53EF;&#x80FD;&#x5F71;&#x97FF;&#x7A0B;&#x5E8F;&#x7684;&#x6027;&#x80FD;&#xFF09;&#x3002;</p>
</section>
@@ -2235,7 +2247,7 @@ fmt.Println(p == q) <span class="hljs-comment">// &quot;false&quot;</span>
<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>

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="2.4" data-chapter-title="賦值" data-filepath="ch2/ch2-04.md" data-basepath=".." data-revision="Fri Dec 25 2015 12:32:44 GMT+0800 (中国标准时间)">
<div class="book" data-level="2.4" data-chapter-title="賦值" data-filepath="ch2/ch2-04.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>
@@ -2020,28 +2024,28 @@
<section class="normal" id="section-">
<h2 id="24-&#x8CE6;&#x503C;">2.4. &#x8CE6;&#x503C;</h2>
<p>&#x4F7F;&#x7528;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x53EF;&#x4EE5;&#x66F4;&#x65B0;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x503C;, &#x6700;&#x7C21;&#x55AE;&#x7684;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x662F;&#x5C07;&#x8981;&#x88AB;&#x8CE6;&#x503C;&#x7684;&#x8B8A;&#x91CF;&#x653E;&#x5728; <code>=</code> &#x7684;&#x5DE6;&#x908A;, &#x65B0;&#x503C;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x653E;&#x5728; <code>=</code> &#x53F3;&#x908A;.</p>
<p>&#x4F7F;&#x7528;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x53EF;&#x4EE5;&#x66F4;&#x65B0;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#xFF0C;&#x6700;&#x7C21;&#x55AE;&#x7684;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x662F;&#x5C07;&#x8981;&#x88AB;&#x8CE6;&#x503C;&#x7684;&#x8B8A;&#x91CF;&#x653E;&#x5728;=&#x7684;&#x5DE6;&#x908A;&#xFF0C;&#x65B0;&#x503C;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x653E;&#x5728;=&#x7684;&#x53F3;&#x908A;&#x3002;</p>
<pre><code class="lang-Go">x = <span class="hljs-number">1</span> <span class="hljs-comment">// &#x547D;&#x4EE4;&#x8B8A;&#x91CF;&#x7684;&#x8CE6;&#x503C;</span>
*p = <span class="hljs-constant">true</span> <span class="hljs-comment">// &#x901A;&#x904E;&#x6307;&#x91DD;&#x9593;&#x63A5;&#x8CE6;&#x503C;</span>
person.name = <span class="hljs-string">&quot;bob&quot;</span> <span class="hljs-comment">// &#x7D50;&#x69CB;&#x9AD4;&#x5B57;&#x6BB5;&#x8CE6;&#x503C;</span>
count[x] = count[x] * scale <span class="hljs-comment">// &#x6578;&#x7D44;, &#x5207;&#x7247; &#x6216; &#x5B57;&#x5178;&#x7684; &#x5143;&#x7D20;&#x8CE6;&#x503C;</span>
count[x] = count[x] * scale <span class="hljs-comment">// &#x6578;&#x7D44;&#x3001;slice&#x6216;map&#x7684;&#x5143;&#x7D20;&#x8CE6;&#x503C;</span>
</code></pre>
<p>&#x7279;&#x5B9A;&#x7684;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x548C;&#x4E8C;&#x5143;&#x7B97;&#x8853;&#x8907;&#x5408;&#x64CD;&#x4F5C;&#x6709;&#x4E00;&#x500B;&#x7C21;&#x6F54;&#x5F62;&#x5F0F;, &#x4F8B;&#x5982;&#x4E0A;&#x9762;&#x6700;&#x5F8C;&#x7684;&#x8A9E;&#x53E5;&#x53EF;&#x4EE5;&#x91CD;&#x5BEB;&#x7232;:</p>
<p>&#x7279;&#x5B9A;&#x7684;&#x4E8C;&#x5143;&#x7B97;&#x8853;&#x904B;&#x7B97;&#x7B26;&#x548C;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x8907;&#x5408;&#x64CD;&#x4F5C;&#x6709;&#x4E00;&#x500B;&#x7C21;&#x6F54;&#x5F62;&#x5F0F;&#xFF0C;&#x4F8B;&#x5982;&#x4E0A;&#x9762;&#x6700;&#x5F8C;&#x7684;&#x8A9E;&#x53E5;&#x53EF;&#x4EE5;&#x91CD;&#x5BEB;&#x7232;&#xFF1A;</p>
<pre><code class="lang-Go">count[x] *= scale
</code></pre>
<p>&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x7701;&#x53BB;&#x5C0D;&#x8B8A;&#x91CF;&#x8868;&#x9054;&#x5F0F;&#x7684;&#x91CD;&#x8907;&#x8A08;&#x7B97;.</p>
<p>&#x6578;&#x503C;&#x8B8A;&#x91CF;&#x4E5F;&#x53EF;&#x4EE5;&#x652F;&#x6301; <code>++</code> &#x905E;&#x589E;&#x548C; <code>--</code> &#x905E;&#x6E1B;&#x8A9E;&#x53E5;:</p>
<p>&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x7701;&#x53BB;&#x5C0D;&#x8B8A;&#x91CF;&#x8868;&#x9054;&#x5F0F;&#x7684;&#x91CD;&#x8907;&#x8A08;&#x7B97;&#x3002;</p>
<p>&#x6578;&#x503C;&#x8B8A;&#x91CF;&#x4E5F;&#x53EF;&#x4EE5;&#x652F;&#x6301;<code>++</code>&#x905E;&#x589E;&#x548C;<code>--</code>&#x905E;&#x6E1B;&#x8A9E;&#x53E5;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x81EA;&#x589E;&#x548C;&#x81EA;&#x6E1B;&#x662F;&#x8A9E;&#x53E5;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x8868;&#x9054;&#x5F0F;&#xFF0C;&#x56E0;&#x6B64;<code>x = i++</code>&#x4E4B;&#x985E;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x662F;&#x932F;&#x8AA4;&#x7684;&#xFF09;&#xFF1A;</p>
<pre><code class="lang-Go">v := <span class="hljs-number">1</span>
v++ <span class="hljs-comment">// &#x7B49;&#x50F9;&#x65B9;&#x5F0F; v = v + 1; v &#x8B8A;&#x6210; 2 </span>
v-- <span class="hljs-comment">// &#x7B49;&#x50F9;&#x65B9;&#x5F0F; v = v - 1; v &#x8B8A;&#x6210; 1</span>
v++ <span class="hljs-comment">// &#x7B49;&#x50F9;&#x65B9;&#x5F0F; v = v + 1&#xFF1B;v &#x8B8A;&#x6210; 2 </span>
v-- <span class="hljs-comment">// &#x7B49;&#x50F9;&#x65B9;&#x5F0F; v = v - 1&#xFF1B;v &#x8B8A;&#x6210; 1</span>
</code></pre>
<h3 id="241-&#x5143;&#x7D44;&#x8CE6;&#x503C;">2.4.1. &#x5143;&#x7D44;&#x8CE6;&#x503C;</h3>
<p>&#x5143;&#x7D44;&#x8CE6;&#x503C;&#x662F;&#x53E6;&#x4E00;&#x7A2E;&#x5F62;&#x5F0F;&#x7684;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;, &#x5141;&#x8A31;&#x540C;&#x6642;&#x66F4;&#x65B0;&#x591A;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x503C;. &#x5728;&#x8CE6;&#x503C;&#x4E4B;&#x524D;, &#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x53F3;&#x908A;&#x7684;&#x6240;&#x6709;&#x8868;&#x9054;&#x5F0F;&#x5C07;&#x6703;&#x5148;&#x9032;&#x884C;&#x6C42;&#x503C;, &#x7136;&#x5F8C;&#x518D;&#x7D71;&#x4E00;&#x66F4;&#x65B0;&#x5DE6;&#x908A;&#x8B8A;&#x91CF;&#x7684;&#x503C;. &#x9019;&#x5C0D;&#x65BC;&#x8655;&#x7406;&#x6709;&#x4E9B;&#x540C;&#x6642;&#x9F63;&#x73FE;&#x5728;&#x5143;&#x7D44;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x5DE6;&#x53F3;&#x5169;&#x908A;&#x7684;&#x8B8A;&#x91CF;&#x5F88;&#x6709;&#x5E6B;&#x52A9;, &#x4F8B;&#x5982;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x9019;&#x6A23;&#x4EA4;&#x63DB;&#x5169;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x503C;:</p>
<p>&#x5143;&#x7D44;&#x8CE6;&#x503C;&#x662F;&#x53E6;&#x4E00;&#x7A2E;&#x5F62;&#x5F0F;&#x7684;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#xFF0C;&#x5B83;&#x5141;&#x8A31;&#x540C;&#x6642;&#x66F4;&#x65B0;&#x591A;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#x3002;&#x5728;&#x8CE6;&#x503C;&#x4E4B;&#x524D;&#xFF0C;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x53F3;&#x908A;&#x7684;&#x6240;&#x6709;&#x8868;&#x9054;&#x5F0F;&#x5C07;&#x6703;&#x5148;&#x9032;&#x884C;&#x6C42;&#x503C;&#xFF0C;&#x7136;&#x5F8C;&#x518D;&#x7D71;&#x4E00;&#x66F4;&#x65B0;&#x5DE6;&#x908A;&#x5C0D;&#x61C9;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#x3002;&#x9019;&#x5C0D;&#x65BC;&#x8655;&#x7406;&#x6709;&#x4E9B;&#x540C;&#x6642;&#x51FA;&#x73FE;&#x5728;&#x5143;&#x7D44;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x5DE6;&#x53F3;&#x5169;&#x908A;&#x7684;&#x8B8A;&#x91CF;&#x5F88;&#x6709;&#x5E6B;&#x52A9;&#xFF0C;&#x4F8B;&#x5982;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x9019;&#x6A23;&#x4EA4;&#x63DB;&#x5169;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x503C;&#xFF1A;</p>
<pre><code class="lang-Go">x, y = y, x
a[i], a[j] = a[j], a[i]
</code></pre>
<p>&#x6216;&#x8005;&#x662F;&#x8A08;&#x7B97;&#x5169;&#x500B;&#x6574;&#x6578;&#x503C;&#x7684;&#x7684;&#x6700;&#x5927;&#x516C;&#x7D04;&#x6578;(GCD):</p>
<p>&#x6216;&#x8005;&#x662F;&#x8A08;&#x7B97;&#x5169;&#x500B;&#x6574;&#x6578;&#x503C;&#x7684;&#x7684;&#x6700;&#x5927;&#x516C;&#x7D04;&#x6578;&#xFF08;GCD&#xFF09;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;GCD&#x4E0D;&#x662F;&#x90A3;&#x500B;&#x654F;&#x611F;&#x5B57;&#xFF0C;&#x800C;&#x662F;greatest common divisor&#x7684;&#x7E2E;&#x5BEB;&#xFF0C;&#x6B50;&#x5E7E;&#x91CC;&#x5FB7;&#x7684;GCD&#x662F;&#x6700;&#x65E9;&#x7684;&#x975E;&#x5E73;&#x51E1;&#x7B97;&#x6CD5;&#xFF09;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> gcd(x, y <span class="hljs-typename">int</span>) <span class="hljs-typename">int</span> {
<span class="hljs-keyword">for</span> y != <span class="hljs-number">0</span> {
x, y = y, x%y
@@ -2049,7 +2053,7 @@ a[i], a[j] = a[j], a[i]
<span class="hljs-keyword">return</span> x
}
</code></pre>
<p>&#x6216;&#x8005;&#x662F;&#x8A08;&#x7B97;&#x6590;&#x6CE2;&#x7D0D;&#x5951;&#x6578;&#x5217;(Fibonacci)&#x7684;&#x7B2C;N&#x500B;&#x6578;:</p>
<p>&#x6216;&#x8005;&#x662F;&#x8A08;&#x7B97;&#x6590;&#x6CE2;&#x7D0D;&#x5951;&#x6578;&#x5217;&#xFF08;Fibonacci&#xFF09;&#x7684;&#x7B2C;N&#x500B;&#x6578;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> fib(n <span class="hljs-typename">int</span>) <span class="hljs-typename">int</span> {
x, y := <span class="hljs-number">0</span>, <span class="hljs-number">1</span>
<span class="hljs-keyword">for</span> i := <span class="hljs-number">0</span>; i &lt; n; i++ {
@@ -2058,39 +2062,44 @@ a[i], a[j] = a[j], a[i]
<span class="hljs-keyword">return</span> x
}
</code></pre>
<p>&#x5143;&#x7D44;&#x8CE6;&#x503C;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x4E00;&#x7E6B;&#x5217;&#x7463;&#x788E;&#x8CE6;&#x503C;&#x66F4;&#x7DCA;&#x6E4A;(&#x8B6F;&#x8A3B;: &#x7279;&#x522B;&#x662F;&#x5728;for&#x5FAA;&#x74B0;&#x7684;&#x521D;&#x59CB;&#x5316;&#x90E8;&#x5206;),</p>
<p>&#x5143;&#x7D44;&#x8CE6;&#x503C;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x4E00;&#x7E6B;&#x5217;&#x7463;&#x788E;&#x8CE6;&#x503C;&#x66F4;&#x52A0;&#x7DCA;&#x6E4A;&#xFF08;&#x8B6F;&#x8A3B;: &#x7279;&#x522B;&#x662F;&#x5728;for&#x5FAA;&#x74B0;&#x7684;&#x521D;&#x59CB;&#x5316;&#x90E8;&#x5206;&#xFF09;&#xFF0C;</p>
<pre><code class="lang-Go">i, j, k = <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">5</span>
</code></pre>
<p>&#x4F46;&#x5982;&#x679C;&#x8868;&#x9054;&#x5F0F;&#x592A;&#x8907;&#x96DC;&#x7684;&#x8A71;, &#x61C9;&#x8A72;&#x76E1;&#x91CF;&#x907F;&#x514D;&#x5143;&#x7D44;&#x8CE6;&#x503C;; &#x56E0;&#x7232;&#x4E00;&#x500B;&#x500B;&#x55AE;&#x7368;&#x7684;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x53EF;&#x8B80;&#x6027;&#x6703;&#x66F4;&#x597D;.</p>
<p>&#x67D0;&#x4E9B;&#x8868;&#x9054;&#x5F0F;&#x6703;&#x7523;&#x751F;&#x591A;&#x500B;&#x503C;, &#x6BD4;&#x5982;&#x8ABF;&#x7528;&#x4E00;&#x500B;&#x6709;&#x591A;&#x500B;&#x8FD4;&#x8FF4;&#x503C;&#x7684;&#x51FD;&#x6578;.
&#x7576;&#x9019;&#x6A23;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x9F63;&#x73FE;&#x5728;&#x5143;&#x7D44;&#x8CE6;&#x503C;&#x53F3;&#x908A;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x4E2D;&#x6642;(&#x8B6F;&#x8A3B;: &#x53F3;&#x908A;&#x4E0D;&#x80FD;&#x518D;&#x6709;&#x5176;&#x4ED6;&#x8868;&#x9054;&#x5F0F;), &#x5DE6;&#x908A;&#x8B8A;&#x91CF;&#x7684;&#x6578;&#x76EE;&#x5FC5;&#x9B1A;&#x548C;&#x53F3;&#x908A;&#x4E00;&#x81F4;.</p>
<p>&#x4F46;&#x5982;&#x679C;&#x8868;&#x9054;&#x5F0F;&#x592A;&#x8907;&#x96DC;&#x7684;&#x8A71;&#xFF0C;&#x61C9;&#x8A72;&#x76E1;&#x91CF;&#x907F;&#x514D;&#x904E;&#x5EA6;&#x4F7F;&#x7528;&#x5143;&#x7D44;&#x8CE6;&#x503C;&#xFF1B;&#x56E0;&#x7232;&#x6BCF;&#x500B;&#x8B8A;&#x91CF;&#x55AE;&#x7368;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x5BEB;&#x6CD5;&#x53EF;&#x8B80;&#x6027;&#x6703;&#x66F4;&#x597D;&#x3002;</p>
<p>&#x6709;&#x4E9B;&#x8868;&#x9054;&#x5F0F;&#x6703;&#x7523;&#x751F;&#x591A;&#x500B;&#x503C;&#xFF0C;&#x6BD4;&#x5982;&#x8ABF;&#x7528;&#x4E00;&#x500B;&#x6709;&#x591A;&#x500B;&#x8FD4;&#x8FF4;&#x503C;&#x7684;&#x51FD;&#x6578;&#x3002;&#x7576;&#x9019;&#x6A23;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x51FA;&#x73FE;&#x5728;&#x5143;&#x7D44;&#x8CE6;&#x503C;&#x53F3;&#x908A;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x4E2D;&#x6642;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x53F3;&#x908A;&#x4E0D;&#x80FD;&#x518D;&#x6709;&#x5176;&#x5B83;&#x8868;&#x9054;&#x5F0F;&#xFF09;&#xFF0C;&#x5DE6;&#x908A;&#x8B8A;&#x91CF;&#x7684;&#x6578;&#x76EE;&#x5FC5;&#x9B1A;&#x548C;&#x53F3;&#x908A;&#x4E00;&#x81F4;&#x3002;</p>
<pre><code class="lang-Go">f, err = os.Open(<span class="hljs-string">&quot;foo.txt&quot;</span>) <span class="hljs-comment">// function call returns two values</span>
</code></pre>
<p>&#x901A;&#x5E38;, &#x9019;&#x985E;&#x51FD;&#x6578;&#x6703;&#x7528;&#x984D;&#x5916;&#x7684;&#x8FD4;&#x8FF4;&#x503C;&#x8868;&#x9054;&#x67D0;&#x7A2E;&#x932F;&#x8AA4;&#x985E;&#x578B;, &#x4F8B;&#x5982; os.Open &#x662F;&#x8FD4;&#x8FF4;&#x4E00;&#x500B; error &#x985E;&#x578B;&#x7684;&#x932F;&#x8AA4;, &#x9084;&#x6709;&#x4E00;&#x4E9B;&#x662F;&#x8FD4;&#x8FF4;&#x5E03;&#x723E;&#x503C;, &#x901A;&#x5E38;&#x88AB;&#x7A31;&#x7232;ok. &#x5728;&#x7A0D;&#x5F8C;&#x6211;&#x5011;&#x770B;&#x5230;&#x7684;&#x4E09;&#x500B;&#x64CD;&#x4F5C;&#x90FD;&#x662F;&#x985E;&#x4F3C;&#x7684;&#x884C;&#x7232;. &#x5982;&#x679C; &#x5B57;&#x5178;&#x67FB;&#x627E;(&#xA7;4.3), &#x985E;&#x578B;&#x65B7;&#x8A00;(&#xA7;7.10), &#x6216; &#x901A;&#x9053;&#x63A5;&#x6536;(&#xA7;8.4.2) &#x9F63;&#x73FE;&#x5728;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x53F3;&#x908A;, &#x5B83;&#x5011;&#x90FD;&#x5C07;&#x7523;&#x751F;&#x5169;&#x500B;&#x7D50;&#x679C;, &#x6709;&#x4E00;&#x500B;&#x984D;&#x5916;&#x7684;&#x5E03;&#x723E;&#x7D50;&#x679C;&#x8868;&#x793A;&#x64CD;&#x4F5C;&#x662F;&#x5426;&#x6210;&#x529F;:</p>
<p>&#x901A;&#x5E38;&#xFF0C;&#x9019;&#x985E;&#x51FD;&#x6578;&#x6703;&#x7528;&#x984D;&#x5916;&#x7684;&#x8FD4;&#x8FF4;&#x503C;&#x4F86;&#x8868;&#x9054;&#x67D0;&#x7A2E;&#x932F;&#x8AA4;&#x985E;&#x578B;&#xFF0C;&#x4F8B;&#x5982;os.Open&#x662F;&#x7528;&#x984D;&#x5916;&#x7684;&#x8FD4;&#x8FF4;&#x503C;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;error&#x985E;&#x578B;&#x7684;&#x932F;&#x8AA4;&#xFF0C;&#x9084;&#x6709;&#x4E00;&#x4E9B;&#x662F;&#x7528;&#x4F86;&#x8FD4;&#x8FF4;&#x5E03;&#x723E;&#x503C;&#xFF0C;&#x901A;&#x5E38;&#x88AB;&#x7A31;&#x7232;ok&#x3002;&#x5728;&#x7A0D;&#x5F8C;&#x6211;&#x5011;&#x5C07;&#x770B;&#x5230;&#x7684;&#x4E09;&#x500B;&#x64CD;&#x4F5C;&#x90FD;&#x662F;&#x985E;&#x4F3C;&#x7684;&#x7528;&#x6CD5;&#x3002;&#x5982;&#x679C;map&#x67FB;&#x627E;&#xFF08;&#xA7;4.3&#xFF09;&#x3001;&#x985E;&#x578B;&#x65B7;&#x8A00;&#xFF08;&#xA7;7.10&#xFF09;&#x6216;&#x901A;&#x9053;&#x63A5;&#x6536;&#xFF08;&#xA7;8.4.2&#xFF09;&#x51FA;&#x73FE;&#x5728;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x53F3;&#x908A;&#xFF0C;&#x5B83;&#x5011;&#x90FD;&#x53EF;&#x80FD;&#x6703;&#x7523;&#x751F;&#x5169;&#x500B;&#x7D50;&#x679C;&#xFF0C;&#x6709;&#x4E00;&#x500B;&#x984D;&#x5916;&#x7684;&#x5E03;&#x723E;&#x7D50;&#x679C;&#x8868;&#x793A;&#x64CD;&#x4F5C;&#x662F;&#x5426;&#x6210;&#x529F;&#xFF1A;</p>
<pre><code class="lang-Go">v, ok = m[key] <span class="hljs-comment">// map lookup</span>
v, ok = x.(T) <span class="hljs-comment">// type assertion</span>
v, ok = &lt;-ch <span class="hljs-comment">// channel receive</span>
</code></pre>
<p>&#x548C;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x4E00;&#x6A23;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7528;&#x4E0B;&#x5283;&#x7DDA;&#x7A7A;&#x767D;&#x6A19;&#x8B58;&#x7B26; <code>_</code> &#x4F86;&#x4E1F;&#x68C4;&#x4E0D;&#x9700;&#x8981;&#x7684;&#x503C;.</p>
<p>&#x8B6F;&#x8A3B;&#xFF1A;map&#x67FB;&#x627E;&#xFF08;&#xA7;4.3&#xFF09;&#x3001;&#x985E;&#x578B;&#x65B7;&#x8A00;&#xFF08;&#xA7;7.10&#xFF09;&#x6216;&#x901A;&#x9053;&#x63A5;&#x6536;&#xFF08;&#xA7;8.4.2&#xFF09;&#x51FA;&#x73FE;&#x5728;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x53F3;&#x908A;&#x6642;&#xFF0C;&#x4F75;&#x4E0D;&#x4E00;&#x5B9A;&#x662F;&#x7523;&#x751F;&#x5169;&#x500B;&#x7D50;&#x679C;&#xFF0C;&#x4E5F;&#x53EF;&#x80FD;&#x96BB;&#x7523;&#x751F;&#x4E00;&#x500B;&#x7D50;&#x679C;&#x3002;&#x5C0D;&#x65BC;&#x503C;&#x7523;&#x751F;&#x4E00;&#x500B;&#x7D50;&#x679C;&#x7684;&#x60C5;&#x5F62;&#xFF0C;map&#x67FB;&#x627E;&#x5931;&#x6557;&#x6642;&#x6703;&#x8FD4;&#x8FF4;&#x96F6;&#x503C;&#xFF0C;&#x985E;&#x578B;&#x65B7;&#x8A00;&#x5931;&#x6557;&#x6642;&#x6703;&#x767C;&#x9001;&#x904B;&#x884C;&#x6642;panic&#x7570;&#x5E38;&#xFF0C;&#x901A;&#x9053;&#x63A5;&#x6536;&#x5931;&#x6557;&#x6642;&#x6703;&#x8FD4;&#x8FF4;&#x96F6;&#x503C;&#xFF08;&#x963B;&#x585E;&#x4E0D;&#x7B97;&#x662F;&#x5931;&#x6557;&#xFF09;&#x3002;&#x4F8B;&#x5982;&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#xFF1A;</p>
<pre><code class="lang-Go">v = m[key] <span class="hljs-comment">// map&#x67FB;&#x627E;&#xFF0C;&#x5931;&#x6557;&#x6642;&#x8FD4;&#x8FF4;&#x96F6;&#x503C;</span>
v = x.(T) <span class="hljs-comment">// type&#x65B7;&#x8A00;&#xFF0C;&#x5931;&#x6557;&#x6642;panic&#x7570;&#x5E38;</span>
v = &lt;-ch <span class="hljs-comment">// &#x7BA1;&#x9053;&#x63A5;&#x6536;&#xFF0C;&#x5931;&#x6557;&#x6642;&#x8FD4;&#x8FF4;&#x96F6;&#x503C;&#xFF08;&#x963B;&#x585E;&#x4E0D;&#x7B97;&#x662F;&#x5931;&#x6557;&#xFF09;</span>
_, ok = m[key] <span class="hljs-comment">// map&#x8FD4;&#x8FF4;2&#x500B;&#x503C;</span>
_, ok = mm[<span class="hljs-string">&quot;&quot;</span>], <span class="hljs-constant">false</span> <span class="hljs-comment">// map&#x8FD4;&#x8FF4;1&#x500B;&#x503C;</span>
_ = mm[<span class="hljs-string">&quot;&quot;</span>] <span class="hljs-comment">// map&#x8FD4;&#x8FF4;1&#x500B;&#x503C;</span>
</code></pre>
<p>&#x548C;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x4E00;&#x6A23;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7528;&#x4E0B;&#x5283;&#x7DDA;&#x7A7A;&#x767D;&#x6A19;&#x8B58;&#x7B26;<code>_</code>&#x4F86;&#x4E1F;&#x68C4;&#x4E0D;&#x9700;&#x8981;&#x7684;&#x503C;&#x3002;</p>
<pre><code class="lang-Go">_, err = io.Copy(dst, src) <span class="hljs-comment">// &#x4E1F;&#x68C4;&#x5B57;&#x7BC0;&#x6578;</span>
_, ok = x.(T) <span class="hljs-comment">// &#x96BB;&#x6AA2;&#x6E2C;&#x985E;&#x578B;, &#x5FFD;&#x7565;&#x5177;&#x9AD4;&#x503C;</span>
_, ok = x.(T) <span class="hljs-comment">// &#x96BB;&#x6AA2;&#x6E2C;&#x985E;&#x578B;&#xFF0C;&#x5FFD;&#x7565;&#x5177;&#x9AD4;&#x503C;</span>
</code></pre>
<h3 id="242-&#x53EF;&#x8CE6;&#x503C;&#x6027;">2.4.2. &#x53EF;&#x8CE6;&#x503C;&#x6027;</h3>
<p>&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x662F;&#x986F;&#x793A;&#x7684;&#x8CE6;&#x503C;&#x5F62;&#x5F0F;, &#x4F46;&#x662F;&#x7A0B;&#x5E8F;&#x4E2D;&#x9084;&#x6709;&#x5F88;&#x591A;&#x5730;&#x65B9;&#x6703;&#x767C;&#x9001;&#x96B1;&#x5F0F;&#x7684;&#x8CE6;&#x503C;&#x884C;&#x7232;: &#x51FD;&#x6578;&#x8ABF;&#x7528;&#x5C07;&#x96B1;&#x5F0F;&#x5730;&#x5C07;&#x8ABF;&#x7528;&#x53C3;&#x6578;&#x7684;&#x503C;&#x8CE6;&#x503C;&#x7D66;&#x51FD;&#x6578;&#x7684;&#x53C3;&#x6578;&#x8B8A;&#x91CF;, &#x4E00;&#x500B;&#x8FD4;&#x8FF4;&#x8A9E;&#x53E5;&#x5C07;&#x96B1;&#x5F0F;&#x5730;&#x5C07;&#x8FD4;&#x8FF4;&#x64CD;&#x4F5C;&#x7684;&#x503C;&#x8CE6;&#x503C;&#x7D66;&#x7D50;&#x679C;&#x8B8A;&#x91CF;, &#x4E00;&#x500B;&#x8907;&#x5408;&#x985E;&#x578B;&#x7684;&#x5B57;&#x9762;&#x91CF;(&#xA7;4.2)&#x4E5F;&#x6703;&#x7523;&#x751F;&#x8CE6;&#x503C;&#x884C;&#x7232;. &#x4F8B;&#x5982;&#x4E0B;&#x9762;&#x7684;&#x8A9E;&#x53E5;:</p>
<p>&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x662F;&#x986F;&#x5F0F;&#x7684;&#x8CE6;&#x503C;&#x5F62;&#x5F0F;&#xFF0C;&#x4F46;&#x662F;&#x7A0B;&#x5E8F;&#x4E2D;&#x9084;&#x6709;&#x5F88;&#x591A;&#x5730;&#x65B9;&#x6703;&#x767C;&#x751F;&#x96B1;&#x5F0F;&#x7684;&#x8CE6;&#x503C;&#x884C;&#x7232;&#xFF1A;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x6703;&#x96B1;&#x5F0F;&#x5730;&#x5C07;&#x8ABF;&#x7528;&#x53C3;&#x6578;&#x7684;&#x503C;&#x8CE6;&#x503C;&#x7D66;&#x51FD;&#x6578;&#x7684;&#x53C3;&#x6578;&#x8B8A;&#x91CF;&#xFF0C;&#x4E00;&#x500B;&#x8FD4;&#x8FF4;&#x8A9E;&#x53E5;&#x5C07;&#x96B1;&#x5F0F;&#x5730;&#x5C07;&#x8FD4;&#x8FF4;&#x64CD;&#x4F5C;&#x7684;&#x503C;&#x8CE6;&#x503C;&#x7D66;&#x7D50;&#x679C;&#x8B8A;&#x91CF;&#xFF0C;&#x4E00;&#x500B;&#x8907;&#x5408;&#x985E;&#x578B;&#x7684;&#x5B57;&#x9762;&#x91CF;&#xFF08;&#xA7;4.2&#xFF09;&#x4E5F;&#x6703;&#x7523;&#x751F;&#x8CE6;&#x503C;&#x884C;&#x7232;&#x3002;&#x4F8B;&#x5982;&#x4E0B;&#x9762;&#x7684;&#x8A9E;&#x53E5;&#xFF1A;</p>
<pre><code class="lang-Go">medals := []<span class="hljs-typename">string</span>{<span class="hljs-string">&quot;gold&quot;</span>, <span class="hljs-string">&quot;silver&quot;</span>, <span class="hljs-string">&quot;bronze&quot;</span>}
</code></pre>
<p>&#x96B1;&#x5F0F;&#x5730;&#x5C0D;&#x5207;&#x7247;&#x7684;&#x6BCF;&#x500B;&#x5143;&#x7D20;&#x9032;&#x884C;&#x8CE6;&#x503C;&#x64CD;&#x4F5C;, &#x985E;&#x4F3C;&#x9019;&#x6A23;&#x5BEB;&#x7684;&#x884C;&#x7232;:</p>
<p>&#x96B1;&#x5F0F;&#x5730;&#x5C0D;slice&#x7684;&#x6BCF;&#x500B;&#x5143;&#x7D20;&#x9032;&#x884C;&#x8CE6;&#x503C;&#x64CD;&#x4F5C;&#xFF0C;&#x985E;&#x4F3C;&#x9019;&#x6A23;&#x5BEB;&#x7684;&#x884C;&#x7232;&#xFF1A;</p>
<pre><code class="lang-Go">medals[<span class="hljs-number">0</span>] = <span class="hljs-string">&quot;gold&quot;</span>
medals[<span class="hljs-number">1</span>] = <span class="hljs-string">&quot;silver&quot;</span>
medals[<span class="hljs-number">2</span>] = <span class="hljs-string">&quot;bronze&quot;</span>
</code></pre>
<p>&#x5B57;&#x5178;&#x548C;&#x7BA1;&#x9053;&#x7684;&#x5143;&#x7D20;, &#x96D6;&#x7136;&#x4E0D;&#x662F;&#x666E;&#x901A;&#x7684;&#x8B8A;&#x91CF;, &#x4F46;&#x662F;&#x4E5F;&#x6709;&#x985E;&#x4F3C;&#x7684;&#x96B1;&#x5F0F;&#x8CE6;&#x503C;&#x884C;&#x7232;.</p>
<p>&#x4E0D;&#x7BA1;&#x662F;&#x96B1;&#x5F0F;&#x9084;&#x662F;&#x986F;&#x793A;&#x5730;&#x8CE6;&#x503C;, &#x5728;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x5750;&#x6A19;&#x7684;&#x8B8A;&#x91CF;&#x548C;&#x53F3;&#x908A;&#x6700;&#x7D42;&#x7684;&#x6C42;&#x5230;&#x7684;&#x503C;&#x5FC5;&#x9B1A;&#x6709;&#x76F8;&#x540C;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;. &#x66F4;&#x76F4;&#x767D;&#x5730;&#x8AAC;, &#x96BB;&#x6709;&#x53F3;&#x908A;&#x7684;&#x503C;&#x5C0D;&#x65BC;&#x5DE6;&#x908A;&#x7684;&#x8B8A;&#x91CF;&#x662F;&#x53EF;&#x8CE6;&#x503C;&#x7684;, &#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7E94;&#x662F;&#x5141;&#x8A31;&#x7684;.</p>
<p>&#x53EF;&#x8CE6;&#x503C;&#x6027;&#x7684;&#x898F;&#x5247;&#x5C0D;&#x65BC;&#x4E0D;&#x540C;&#x985E;&#x578B;&#x6709;&#x4E0D;&#x540C;&#x8981;&#x6C42;, &#x5C0D;&#x6BCF;&#x500B;&#x65B0;&#x985E;&#x578B;&#x6709;&#x95DC;&#x7684;&#x5730;&#x65B9;&#x6211;&#x5011;&#x6703;&#x5C08;&#x9580;&#x89E3;&#x91CB;.
&#x5C0D;&#x65BC;&#x76EE;&#x524D;&#x6211;&#x5011;&#x5DF2;&#x7D93;&#x8A0E;&#x8AD6;&#x904E;&#x7684;&#x985E;&#x578B;, &#x5B83;&#x7684;&#x898F;&#x5247;&#x662F;&#x7C21;&#x55AE;&#x7684;: &#x985E;&#x578B;&#x5FC5;&#x9B1A;&#x5B8C;&#x5168;&#x5339;&#x914D;, nil &#x53EF;&#x4EE5;&#x8CE6;&#x503C;&#x7D66;&#x4EFB;&#x4F55;&#x6307;&#x91DD;&#x6216;&#x5F15;&#x7528;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;. &#x5E38;&#x91CF;(&#xA7;3.6)&#x6709;&#x66F4;&#x9748;&#x6D3B;&#x7684;&#x898F;&#x5247;, &#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4E0D;&#x5FC5;&#x8981;&#x7684;&#x986F;&#x793A;&#x985E;&#x578B;&#x8F49;&#x63DB;.</p>
<p>&#x5C0D;&#x65BC;&#x5169;&#x500B;&#x503C;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x7528; <code>==</code> &#x6216; <code>!=</code> &#x9032;&#x884C;&#x76F8;&#x7B49;&#x6BD4;&#x8F03;&#x7684;&#x80FD;&#x529B;&#x4E5F;&#x548C;&#x53EF;&#x8CE6;&#x503C;&#x80FD;&#x529B;&#x6709;&#x95DC;&#x7E6B;:
&#x5C0D;&#x65BC;&#x4EFB;&#x4F55;&#x7684;&#x6BD4;&#x8F03;, &#x7B2C;&#x4E00;&#x500B;&#x64CD;&#x4F5C;&#x5FC5;&#x9B1A;&#x662F;&#x53EF;&#x7528;&#x65BC;&#x7B2C;&#x4E8C;&#x500B;&#x64CD;&#x4F5C;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x7684;&#x8CE6;&#x503C;&#x7684;, &#x53CD;&#x4E4B;&#x4F9D;&#x7136;.
&#x548C;&#x524D;&#x9762;&#x4E00;&#x6A23;, &#x6211;&#x5011;&#x6703;&#x5C0D;&#x6BCF;&#x500B;&#x65B0;&#x985E;&#x578B;&#x6BD4;&#x8F03;&#x6709;&#x95DC;&#x7684;&#x5730;&#x65B9;&#x6703;&#x505A;&#x5C08;&#x9580;&#x89E3;&#x91CB;.</p>
<p>map&#x548C;chan&#x7684;&#x5143;&#x7D20;&#xFF0C;&#x96D6;&#x7136;&#x4E0D;&#x662F;&#x666E;&#x901A;&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x4F46;&#x662F;&#x4E5F;&#x6709;&#x985E;&#x4F3C;&#x7684;&#x96B1;&#x5F0F;&#x8CE6;&#x503C;&#x884C;&#x7232;&#x3002;</p>
<p>&#x4E0D;&#x7BA1;&#x662F;&#x96B1;&#x5F0F;&#x9084;&#x662F;&#x986F;&#x5F0F;&#x5730;&#x8CE6;&#x503C;&#xFF0C;&#x5728;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x5DE6;&#x908A;&#x7684;&#x8B8A;&#x91CF;&#x548C;&#x53F3;&#x908A;&#x6700;&#x7D42;&#x7684;&#x6C42;&#x5230;&#x7684;&#x503C;&#x5FC5;&#x9B1A;&#x6709;&#x76F8;&#x540C;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;&#x3002;&#x66F4;&#x76F4;&#x767D;&#x5730;&#x8AAC;&#xFF0C;&#x96BB;&#x6709;&#x53F3;&#x908A;&#x7684;&#x503C;&#x5C0D;&#x65BC;&#x5DE6;&#x908A;&#x7684;&#x8B8A;&#x91CF;&#x662F;&#x53EF;&#x8CE6;&#x503C;&#x7684;&#xFF0C;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x624D;&#x662F;&#x5141;&#x8A31;&#x7684;&#x3002;</p>
<p>&#x53EF;&#x8CE6;&#x503C;&#x6027;&#x7684;&#x898F;&#x5247;&#x5C0D;&#x65BC;&#x4E0D;&#x540C;&#x985E;&#x578B;&#x6709;&#x7740;&#x4E0D;&#x540C;&#x8981;&#x6C42;&#xFF0C;&#x5C0D;&#x6BCF;&#x500B;&#x65B0;&#x985E;&#x578B;&#x7279;&#x6B8A;&#x7684;&#x5730;&#x65B9;&#x6211;&#x5011;&#x6703;&#x5C08;&#x9580;&#x89E3;&#x91CB;&#x3002;&#x5C0D;&#x65BC;&#x76EE;&#x524D;&#x6211;&#x5011;&#x5DF2;&#x7D93;&#x8A0E;&#x8AD6;&#x904E;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x5B83;&#x7684;&#x898F;&#x5247;&#x662F;&#x7C21;&#x55AE;&#x7684;&#xFF1A;&#x985E;&#x578B;&#x5FC5;&#x9B1A;&#x5B8C;&#x5168;&#x5339;&#x914D;&#xFF0C;nil&#x53EF;&#x4EE5;&#x8CE6;&#x503C;&#x7D66;&#x4EFB;&#x4F55;&#x6307;&#x91DD;&#x6216;&#x5F15;&#x7528;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x3002;&#x5E38;&#x91CF;&#xFF08;&#xA7;3.6&#xFF09;&#x5247;&#x6709;&#x66F4;&#x9748;&#x6D3B;&#x7684;&#x8CE6;&#x503C;&#x898F;&#x5247;&#xFF0C;&#x56E0;&#x7232;&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4E0D;&#x5FC5;&#x8981;&#x7684;&#x986F;&#x5F0F;&#x7684;&#x985E;&#x578B;&#x8F49;&#x63DB;&#x3002;</p>
<p>&#x5C0D;&#x65BC;&#x5169;&#x500B;&#x503C;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x7528;<code>==</code>&#x6216;<code>!=</code>&#x9032;&#x884C;&#x76F8;&#x7B49;&#x6BD4;&#x8F03;&#x7684;&#x80FD;&#x529B;&#x4E5F;&#x548C;&#x53EF;&#x8CE6;&#x503C;&#x80FD;&#x529B;&#x6709;&#x95DC;&#x7E6B;&#xFF1A;&#x5C0D;&#x65BC;&#x4EFB;&#x4F55;&#x985E;&#x578B;&#x7684;&#x503C;&#x7684;&#x76F8;&#x7B49;&#x6BD4;&#x8F03;&#xFF0C;&#x7B2C;&#x4E8C;&#x500B;&#x503C;&#x5FC5;&#x9B1A;&#x662F;&#x5C0D;&#x7B2C;&#x4E00;&#x500B;&#x503C;&#x985E;&#x578B;&#x5C0D;&#x61C9;&#x7684;&#x8B8A;&#x91CF;&#x662F;&#x53EF;&#x8CE6;&#x503C;&#x7684;&#xFF0C;&#x53CD;&#x4E4B;&#x4F9D;&#x7136;&#x3002;&#x548C;&#x524D;&#x9762;&#x4E00;&#x6A23;&#xFF0C;&#x6211;&#x5011;&#x6703;&#x5C0D;&#x6BCF;&#x500B;&#x65B0;&#x985E;&#x578B;&#x6BD4;&#x8F03;&#x7279;&#x6B8A;&#x7684;&#x5730;&#x65B9;&#x505A;&#x5C08;&#x9580;&#x7684;&#x89E3;&#x91CB;&#x3002;</p>
</section>
@@ -2122,7 +2131,7 @@ medals[<span class="hljs-number">2</span>] = <span class="hljs-string">&quot;bro
<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>

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="2.5" data-chapter-title="類型" data-filepath="ch2/ch2-05.md" data-basepath=".." data-revision="Fri Dec 25 2015 12:32:44 GMT+0800 (中国标准时间)">
<div class="book" data-level="2.5" data-chapter-title="類型" data-filepath="ch2/ch2-05.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>
@@ -2019,18 +2023,19 @@
<section class="normal" id="section-">
<h2 id="25-&#x985E;&#x578B;&#x8072;&#x660E;">2.5. &#x985E;&#x578B;&#x8072;&#x660E;</h2>
<p>&#x8B8A;&#x91CF;&#x6216;&#x8868;&#x9054;&#x5F0F;&#x7684;&#x985E;&#x578B;&#x5B9A;&#x7FA9;&#x4E86;&#x5C0D;&#x61C9;&#x5B58;&#x5132;&#x503C;&#x7684;&#x7279;&#x5FB5;, &#x4F8B;&#x5982;&#x6578;&#x503C;&#x7684;&#x5B58;&#x5132;&#x5927;&#x5C0F;(&#x6216;&#x8005;&#x662F;&#x5143;&#x7D20;&#x7684;bit&#x500B;&#x6578;), &#x5B83;&#x5011;&#x5728;&#x5167;&#x90E8;&#x662F;&#x5982;&#x4F55;&#x8868;&#x9054;&#x7684;, &#x662F;&#x5426;&#x652F;&#x6301;&#x4E00;&#x4E9B;&#x64CD;&#x4F5C;&#x7B26;, &#x4EE5;&#x53CA;&#x5B83;&#x5011;&#x81EA;&#x5DF1;&#x95DC;&#x806F;&#x7684;&#x65B9;&#x6CD5;&#x96C6;,</p>
<p>&#x5728;&#x4EFB;&#x4F55;&#x7A0B;&#x5E8F;&#x4E2D;&#x90FD;&#x6703;&#x6709;&#x4E00;&#x4E9B;&#x8B8A;&#x91CF;&#x6709;&#x7740;&#x76F8;&#x540C;&#x7684;&#x5167;&#x90E8;&#x5BE6;&#x73FE;, &#x4F46;&#x662F;&#x8868;&#x793A;&#x5B8C;&#x5168;&#x4E0D;&#x540C;&#x7684;&#x6982;&#x5FF5;.
&#x4F8B;&#x5982;, int &#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x8868;&#x793A;&#x4E00;&#x500B;&#x5FAA;&#x74B0;&#x7684;&#x8FED;&#x4EE3;&#x7D22;&#x5F15;, &#x6216;&#x8005;&#x4E00;&#x500B;&#x6642;&#x9593;&#x6233;, &#x6216;&#x8005;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x63CF;&#x8FF0;&#x7B26;, &#x6216;&#x8005;&#x4E00;&#x500B;&#x6708;&#x4EFD;; &#x4E00;&#x500B; float64 &#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x8868;&#x793A;&#x6BCF;&#x79D2;&#x5E7E;&#x7C73;&#x7684;&#x901F;&#x5EA6;, &#x6216;&#x8005;&#x662F;&#x4E0D;&#x540C;&#x6EAB;&#x5EA6;&#x55AE;&#x4F4D;&#x7684;&#x6EAB;&#x5EA6;;
&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x8868;&#x793A;&#x4E00;&#x500B;&#x5BC6;&#x78BC;&#x6216;&#x8005;&#x4E00;&#x500B;&#x9854;&#x8272;&#x7684;&#x540D;&#x7A31;.</p>
<p>&#x4E00;&#x500B;&#x985E;&#x578B;&#x7684;&#x8072;&#x660E;&#x5275;&#x5EFA;&#x4E86;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x985E;&#x578B;&#x540D;&#x7A31;, &#x548C;&#x73FE;&#x6709;&#x985E;&#x578B;&#x5177;&#x6709;&#x76F8;&#x540C;&#x7684;&#x5E95;&#x5C64;&#x7D50;&#x69CB;.
&#x65B0;&#x547D;&#x540D;&#x7684;&#x985E;&#x578B;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x500B;&#x65B9;&#x6CD5;, &#x7528;&#x4F86;&#x5206;&#x9694;&#x4E0D;&#x540C;&#x6982;&#x5FF5;&#x7684;&#x985E;&#x578B;, &#x537D;&#x4F7F;&#x5B83;&#x5011;&#x5E95;&#x5C64;&#x985E;&#x578B;&#x76F8;&#x540C;&#x4E5F;&#x662F;&#x4E0D;&#x517C;&#x5BB9;&#x7684;.</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> name underlying-<span class="hljs-keyword">type</span>
<h2 id="25-&#x985E;&#x578B;">2.5. &#x985E;&#x578B;</h2>
<p>&#x8B8A;&#x91CF;&#x6216;&#x8868;&#x9054;&#x5F0F;&#x7684;&#x985E;&#x578B;&#x5B9A;&#x7FA9;&#x4E86;&#x5C0D;&#x61C9;&#x5B58;&#x5132;&#x503C;&#x7684;&#x5C6C;&#x6027;&#x7279;&#x5FB5;&#xFF0C;&#x4F8B;&#x5982;&#x6578;&#x503C;&#x5728;&#x5167;&#x5B58;&#x7684;&#x5B58;&#x5132;&#x5927;&#x5C0F;&#xFF08;&#x6216;&#x8005;&#x662F;&#x5143;&#x7D20;&#x7684;bit&#x500B;&#x6578;&#xFF09;&#xFF0C;&#x5B83;&#x5011;&#x5728;&#x5167;&#x90E8;&#x662F;&#x5982;&#x4F55;&#x8868;&#x9054;&#x7684;&#xFF0C;&#x662F;&#x5426;&#x652F;&#x6301;&#x4E00;&#x4E9B;&#x64CD;&#x4F5C;&#x7B26;&#xFF0C;&#x4EE5;&#x53CA;&#x5B83;&#x5011;&#x81EA;&#x5DF1;&#x95DC;&#x806F;&#x7684;&#x65B9;&#x6CD5;&#x96C6;&#x7B49;&#x3002;</p>
<p>&#x5728;&#x4EFB;&#x4F55;&#x7A0B;&#x5E8F;&#x4E2D;&#x90FD;&#x6703;&#x5B58;&#x5728;&#x4E00;&#x4E9B;&#x8B8A;&#x91CF;&#x6709;&#x7740;&#x76F8;&#x540C;&#x7684;&#x5167;&#x90E8;&#x7D50;&#x69CB;&#xFF0C;&#x4F46;&#x662F;&#x537B;&#x8868;&#x793A;&#x5B8C;&#x5168;&#x4E0D;&#x540C;&#x7684;&#x6982;&#x5FF5;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x4E00;&#x500B;int&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x8868;&#x793A;&#x4E00;&#x500B;&#x5FAA;&#x74B0;&#x7684;&#x8FED;&#x4EE3;&#x7D22;&#x5F15;&#x3001;&#x6216;&#x8005;&#x4E00;&#x500B;&#x6642;&#x9593;&#x6233;&#x3001;&#x6216;&#x8005;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x63CF;&#x8FF0;&#x7B26;&#x3001;&#x6216;&#x8005;&#x4E00;&#x500B;&#x6708;&#x4EFD;&#xFF1B;&#x4E00;&#x500B;float64&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x8868;&#x793A;&#x6BCF;&#x79D2;&#x79FB;&#x52D5;&#x5E7E;&#x7C73;&#x7684;&#x901F;&#x5EA6;&#x3001;&#x6216;&#x8005;&#x662F;&#x4E0D;&#x540C;&#x6EAB;&#x5EA6;&#x55AE;&#x4F4D;&#x4E0B;&#x7684;&#x6EAB;&#x5EA6;&#xFF1B;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x8868;&#x793A;&#x4E00;&#x500B;&#x5BC6;&#x78BC;&#x6216;&#x8005;&#x4E00;&#x500B;&#x9854;&#x8272;&#x7684;&#x540D;&#x7A31;&#x3002;</p>
<p>&#x4E00;&#x500B;&#x985E;&#x578B;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x5275;&#x5EFA;&#x4E86;&#x4E00;&#x500B;&#x65B0;&#x7684;&#x985E;&#x578B;&#x540D;&#x7A31;&#xFF0C;&#x548C;&#x73FE;&#x6709;&#x985E;&#x578B;&#x5177;&#x6709;&#x76F8;&#x540C;&#x7684;&#x5E95;&#x5C64;&#x7D50;&#x69CB;&#x3002;&#x65B0;&#x547D;&#x540D;&#x7684;&#x985E;&#x578B;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x500B;&#x65B9;&#x6CD5;&#xFF0C;&#x7528;&#x4F86;&#x5206;&#x9694;&#x4E0D;&#x540C;&#x6982;&#x5FF5;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x9019;&#x6A23;&#x537D;&#x4F7F;&#x5B83;&#x5011;&#x5E95;&#x5C64;&#x985E;&#x578B;&#x76F8;&#x540C;&#x4E5F;&#x662F;&#x4E0D;&#x517C;&#x5BB9;&#x7684;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> &#x985E;&#x578B;&#x540D;&#x5B57; &#x5E95;&#x5C64;&#x985E;&#x578B;
</code></pre>
<p>&#x985E;&#x578B;&#x7684;&#x8072;&#x660E;&#x4E00;&#x822C;&#x9F63;&#x73FE;&#x5728;&#x5305;&#x7D1A;&#x522B;, &#x56E0;&#x6B64;&#x5982;&#x679C;&#x65B0;&#x5275;&#x5EFA;&#x7684;&#x985E;&#x578B;&#x540D;&#x5B57;&#x540D;&#x5B57;&#x7684;&#x9996;&#x5B57;&#x7B26;&#x5927;&#x5BEB;, &#x5247;&#x5728;&#x5916;&#x90E8;&#x5305;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;.</p>
<p>&#x7232;&#x4E86;&#x8AAC;&#x660E;&#x985E;&#x578B;&#x8072;&#x660E;, &#x6211;&#x5011;&#x5C07;&#x4E0D;&#x540C;&#x6EAB;&#x5EA6;&#x55AE;&#x4F4D;&#x5206;&#x522B;&#x5B9A;&#x7FA9;&#x7232;&#x4E0D;&#x540C;&#x7684;&#x985E;&#x578B;:</p>
<p>&#x7232;&#x4E86;&#x8AAC;&#x660E;&#x985E;&#x578B;&#x8072;&#x660E;,&#x8B93;&#x6211;&#x5011;&#x628A;&#x4E0D;&#x540C;&#x6EAB;&#x5EA6;&#x8303;&#x570D;&#x5206;&#x7232;&#x4E0D;&#x540C;&#x7684;&#x985E;&#x578B;:</p>
<p>&#x985E;&#x578B;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x4E00;&#x822C;&#x51FA;&#x73FE;&#x5728;&#x5305;&#x4E00;&#x7D1A;&#xFF0C;&#x56E0;&#x6B64;&#x5982;&#x679C;&#x65B0;&#x5275;&#x5EFA;&#x7684;&#x985E;&#x578B;&#x540D;&#x5B57;&#x7684;&#x9996;&#x5B57;&#x7B26;&#x5927;&#x5BEB;&#xFF0C;&#x5247;&#x5728;&#x5916;&#x90E8;&#x5305;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x3002;</p>
<p>&#x8B6F;&#x8A3B;&#xFF1A;&#x5C0D;&#x65BC;&#x4E2D;&#x6587;&#x6F22;&#x5B57;&#xFF0C;Unicode&#x6A19;&#x8A8C;&#x90FD;&#x4F5C;&#x7232;&#x5C0F;&#x5BEB;&#x5B57;&#x6BCD;&#x8655;&#x7406;&#xFF0C;&#x56E0;&#x6B64;&#x4E2D;&#x6587;&#x7684;&#x547D;&#x540D;&#x9ED8;&#x8A8D;&#x4E0D;&#x80FD;&#x5C0E;&#x51FA;&#xFF1B;&#x4E0D;&#x904E;&#x56FD;&#x5167;&#x7684;&#x7528;&#x6236;&#x91DD;&#x5C0D;&#x8A72;&#x554F;&#x984C;&#x63D0;&#x51FA;&#x4E86;&#x6211;&#x5011;&#x81EA;&#x5DF1;&#x7684;&#x9593;&#x63A5;&#xFF0C;&#x6839;&#x64DA;RobPike&#x7684;&#x8FF4;&#x8907;&#xFF0C;&#x5728;Go2&#x4E2D;&#x6709;&#x53EF;&#x80FD;&#x6703;&#x5C07;&#x4E2D;&#x65E5;&#x97D3;&#x7B49;&#x5B57;&#x7B26;&#x7576;&#x4F5C;&#x5927;&#x5BEB;&#x5B57;&#x6BCD;&#x8655;&#x7406;&#x3002;&#x4E0B;&#x9762;&#x662F;RobPik&#x5728; <a href="https://github.com/golang/go/issues/5763" target="_blank">Issue763</a> &#x7684;&#x8FF4;&#x8907;&#xFF1A;</p>
<blockquote>
<p>A solution that&apos;s been kicking around for a while:</p>
<p>For Go 2 (can&apos;t do it before then): Change the definition to &#x201C;lower case letters and <em> are package-local; all else is exported&#x201D;. Then with non-cased languages, such as Japanese, we can write &#x65E5;&#x672C;&#x8A9E; for an exported name and </em>&#x65E5;&#x672C;&#x8A9E; for a local name. This rule has no effect, relative to the Go 1 rule, with cased languages. They behave exactly the same.</p>
</blockquote>
<p>&#x7232;&#x4E86;&#x8AAC;&#x660E;&#x985E;&#x578B;&#x8072;&#x660E;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x4E0D;&#x540C;&#x6EAB;&#x5EA6;&#x55AE;&#x4F4D;&#x5206;&#x522B;&#x5B9A;&#x7FA9;&#x7232;&#x4E0D;&#x540C;&#x7684;&#x985E;&#x578B;&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch2/tempconv0
<span class="hljs-comment">// Package tempconv performs Celsius and Fahrenheit temperature computations.</span>
<span class="hljs-keyword">package</span> tempconv
@@ -2043,27 +2048,23 @@
<span class="hljs-keyword">const</span> (
AbsoluteZeroC Celsius = -<span class="hljs-number">273.15</span> <span class="hljs-comment">// &#x7D76;&#x5C0D;&#x96F6;&#x5EA6;</span>
FreezingC Celsius = <span class="hljs-number">0</span> <span class="hljs-comment">// &#x7D50;&#x51B0;&#x9EDE;&#x6EAB;&#x5EA6;</span>
BoilingC Celsius = <span class="hljs-number">100</span> <span class="hljs-comment">// &#x6CB8;&#x6C34;&#x554F;&#x984C;</span>
BoilingC Celsius = <span class="hljs-number">100</span> <span class="hljs-comment">// &#x6CB8;&#x6C34;&#x6EAB;&#x5EA6;</span>
)
<span class="hljs-keyword">func</span> CToF(c Celsius) Fahrenheit { <span class="hljs-keyword">return</span> Fahrenheit(c*<span class="hljs-number">9</span>/<span class="hljs-number">5</span> + <span class="hljs-number">32</span>) }
<span class="hljs-keyword">func</span> FToC(f Fahrenheit) Celsius { <span class="hljs-keyword">return</span> Celsius((f - <span class="hljs-number">32</span>) * <span class="hljs-number">5</span> / <span class="hljs-number">9</span>) }
</code></pre>
<p>&#x9019;&#x500B;&#x5305;&#x5B9A;&#x7FA9;&#x4E86;&#x5169;&#x7A2E;&#x985E;&#x578B;, Celsius &#x548C; Fahrenheit &#x5206;&#x522B;&#x5C0D;&#x61C9;&#x4E0D;&#x540C;&#x7684;&#x6EAB;&#x5EA6;&#x55AE;&#x4F4D;. &#x5B83;&#x5011;&#x90FD;&#x6709;&#x7740;&#x76F8;&#x540C;&#x7684;&#x5E95;&#x5C64;&#x985E;&#x578B; float64, &#x4F46;&#x662F;&#x5B83;&#x5011;&#x662F;&#x4E0D;&#x540C;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;, &#x56E0;&#x6B64;&#x5B83;&#x5011;&#x4E0D;&#x53EF;&#x4EE5;&#x88AB;&#x76F8;&#x4E92;&#x6BD4;&#x8F03;&#x6216;&#x6DF7;&#x5728;&#x4E00;&#x500B;&#x8868;&#x9054;&#x5F0F;&#x8A08;&#x7B97;. &#x53EF;&#x4EE5;&#x5340;&#x5206;&#x985E;&#x578B;, &#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4E00;&#x4E9B;&#x50CF;&#x7121;&#x610F;&#x4E2D;&#x7D50;&#x5408;&#x55AE;&#x4F4D;&#x7684;&#x6EAB;&#x5EA6;&#x9032;&#x884C;&#x8A08;&#x7B97;&#x7684;&#x932F;&#x8AA4;; &#x56E0;&#x7232;&#x9700;&#x8981;&#x4E00;&#x500B;&#x985E;&#x4F3C; Celsius(t) &#x6216; Fahrenheit(t) &#x986F;&#x5F0F;&#x7684;&#x8F49;&#x578B;&#x64CD;&#x4F5C;&#x7E94;&#x80FD;&#x5C07; float64 &#x8F49;&#x7232;&#x5C0D;&#x61C9;&#x7684;&#x985E;&#x578B;. Celsius(t) &#x548C; Fahrenheit(t) &#x662F;&#x985E;&#x578B;&#x8F49;&#x63DB;&#x64CD;&#x4F5C;, &#x4F75;&#x4E0D;&#x662F;&#x51FD;&#x6578;&#x8ABF;&#x7528;. &#x985E;&#x578B;&#x8F49;&#x63DB;&#x4E0D;&#x6703;&#x6539;&#x8B8A;&#x503C;&#x672C;&#x8EAB;, &#x4F46;&#x662F;&#x6703;&#x4F7F;&#x5B83;&#x5011;&#x7684;&#x8A9E;&#x7FA9;&#x767C;&#x751F;&#x8B8A;&#x5316;. &#x53E6;&#x4E00;&#x65B9;&#x9762;, &#x51FD;&#x6578; CToF &#x548C; FToC &#x5247;&#x662F;&#x5C0D;&#x5169;&#x500B;&#x4E0D;&#x540C;&#x7684;&#x6EAB;&#x5EA6;&#x55AE;&#x4F4D;&#x9032;&#x884C;&#x8F49;&#x63DB;, &#x5B83;&#x5011;&#x6703;&#x8FD4;&#x8FF4;&#x4E0D;&#x540C;&#x7684;&#x503C;.</p>
<p>&#x5C0D;&#x65BC;&#x6BCF;&#x4E00;&#x500B;&#x985E;&#x578B; T, &#x90FD;&#x6709;&#x4E00;&#x500B;&#x5C0D;&#x61C9;&#x7684;&#x985E;&#x578B;&#x8F49;&#x63DB;&#x64CD;&#x4F5C; T(x), &#x7528;&#x65BC;&#x5C07; x &#x8F49;&#x7232; T &#x985E;&#x578B;.
&#x96BB;&#x6709;&#x7576;&#x5169;&#x500B;&#x985E;&#x578B;&#x7684;&#x5E95;&#x5C64;&#x57FA;&#x790E;&#x985E;&#x578B;&#x76F8;&#x540C;&#x6642;, &#x7E94;&#x5141;&#x8A31;&#x9019;&#x7A2E;&#x8F49;&#x578B;&#x64CD;&#x4F5C;, &#x6216;&#x8005;&#x662F;&#x5169;&#x8005;&#x90FD;&#x662F;&#x6307;&#x5411;&#x76F8;&#x540C;&#x5E95;&#x5C64;&#x7D50;&#x69CB;&#x7684;&#x6307;&#x91DD;&#x985E;&#x578B;,
&#x9019;&#x4E9B;&#x8F49;&#x63DB;&#x96BB;&#x6539;&#x8B8A;&#x985E;&#x578B;&#x800C;&#x4E0D;&#x6703;&#x5F71;&#x97FF;&#x503C;&#x672C;&#x8EAB;. &#x5982;&#x679C;x&#x662F;&#x53EF;&#x4EE5;&#x8CE6;&#x503C;&#x7D66;T&#x985E;&#x578B;&#x7684;, &#x90A3;&#x9EBD;x&#x5FC5;&#x7136;&#x53EF;&#x4EE5;&#x88AB;&#x8F49;&#x7232;T&#x985E;&#x578B;, &#x4F46;&#x662F;&#x4E00;&#x822C;&#x6C92;&#x6709;&#x5FC5;&#x8981;.</p>
<p>&#x6578;&#x503C;&#x985E;&#x578B;&#x4E4B;&#x9593;&#x7684;&#x8F49;&#x578B;&#x4E5F;&#x662F;&#x5141;&#x8A31;&#x7684;, &#x4F75;&#x4E14;&#x5728;&#x5B57;&#x7B26;&#x4E32;&#x548C;&#x4E00;&#x4E9B;&#x7279;&#x5B9A;&#x5207;&#x7247;&#x4E4B;&#x9593;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x8F49;&#x63DB;&#x7684;, &#x5728;&#x4E0B;&#x4E00;&#x7AE0;&#x6211;&#x5011;&#x6703;&#x770B;&#x5230;&#x9019;&#x6A23;&#x7684;&#x4F8B;&#x5B50;. &#x9019;&#x985E;&#x8F49;&#x63DB;&#x53EF;&#x80FD;&#x6539;&#x8B8A;&#x503C;&#x7684;&#x8868;&#x73FE;. &#x4F8B;&#x5982;, &#x5C07;&#x4E00;&#x500B;&#x6D6E;&#x9EDE;&#x6578;&#x8F49;&#x7232;&#x6574;&#x6578;&#x5C07;&#x4E1F;&#x68C4;&#x5C0F;&#x6578;&#x90E8;&#x5206;, &#x5C07;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x8F49;&#x7232; []byte &#x5207;&#x7247;&#x5C07;&#x62F7;&#x8C9D;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x6578;&#x64DA;&#x7684;&#x526F;&#x672C;. &#x5728;&#x4EFB;&#x4F55;&#x60C5;&#x6CC1;&#x4E0B;, &#x904B;&#x884C;&#x6642;&#x4E0D;&#x6703;&#x767C;&#x9001;&#x8F49;&#x63DB;&#x5931;&#x6557;&#x7684;&#x932F;&#x8AA4;(&#x8B6F;&#x8A3B;: &#x932F;&#x8AA4;&#x96BB;&#x6703;&#x767C;&#x751F;&#x5728;&#x7DE8;&#x8B6F;&#x968E;&#x6BB5;).</p>
<p>&#x5E95;&#x5C64;&#x6578;&#x64DA;&#x985E;&#x578B;&#x6C7A;&#x5B9A;&#x4E86;&#x5167;&#x90E8;&#x7D50;&#x69CB;&#x548C;&#x8868;&#x9054;&#x65B9;&#x5F0F;, &#x4E5F;&#x5305;&#x6C7A;&#x5B9A;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x50CF;&#x5E95;&#x5C64;&#x985E;&#x578B;&#x4E00;&#x6A23;&#x5C0D;&#x5167;&#x7F6E;&#x904B;&#x7B97;&#x7B26;&#x7684;&#x652F;&#x6301;.
&#x9019;&#x610F;&#x5473;&#x7740;, Celsius &#x548C; Fahrenheit &#x985E;&#x578B;&#x7684;&#x7B97;&#x8853;&#x884C;&#x7232;&#x548C;&#x5E95;&#x5C64;&#x7684; float64 &#x985E;&#x578B;&#x4E00;&#x6A23;, &#x6B63;&#x5982;&#x4F60;&#x6240;&#x671F;&#x671B;&#x7684;.</p>
<p>&#x6211;&#x5011;&#x5728;&#x9019;&#x500B;&#x5305;&#x8072;&#x660E;&#x4E86;&#x5169;&#x7A2E;&#x985E;&#x578B;&#xFF1A;Celsius&#x548C;Fahrenheit&#x5206;&#x522B;&#x5C0D;&#x61C9;&#x4E0D;&#x540C;&#x7684;&#x6EAB;&#x5EA6;&#x55AE;&#x4F4D;&#x3002;&#x5B83;&#x5011;&#x96D6;&#x7136;&#x6709;&#x7740;&#x76F8;&#x540C;&#x7684;&#x5E95;&#x5C64;&#x985E;&#x578B;float64&#xFF0C;&#x4F46;&#x662F;&#x5B83;&#x5011;&#x662F;&#x4E0D;&#x540C;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;&#xFF0C;&#x56E0;&#x6B64;&#x5B83;&#x5011;&#x4E0D;&#x53EF;&#x4EE5;&#x88AB;&#x76F8;&#x4E92;&#x6BD4;&#x8F03;&#x6216;&#x6DF7;&#x5728;&#x4E00;&#x500B;&#x8868;&#x9054;&#x5F0F;&#x904B;&#x7B97;&#x3002;&#x523B;&#x610F;&#x5340;&#x5206;&#x985E;&#x578B;&#xFF0C;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4E00;&#x4E9B;&#x50CF;&#x7121;&#x610F;&#x4E2D;&#x4F7F;&#x7528;&#x4E0D;&#x540C;&#x55AE;&#x4F4D;&#x7684;&#x6EAB;&#x5EA6;&#x6DF7;&#x5408;&#x8A08;&#x7B97;&#x5C0E;&#x81F4;&#x7684;&#x932F;&#x8AA4;&#xFF1B;&#x56E0;&#x6B64;&#x9700;&#x8981;&#x4E00;&#x500B;&#x985E;&#x4F3C;Celsius(t)&#x6216;Fahrenheit(t)&#x5F62;&#x5F0F;&#x7684;&#x986F;&#x5F0F;&#x8F49;&#x578B;&#x64CD;&#x4F5C;&#x624D;&#x80FD;&#x5C07;float64&#x8F49;&#x7232;&#x5C0D;&#x61C9;&#x7684;&#x985E;&#x578B;&#x3002;Celsius(t)&#x548C;Fahrenheit(t)&#x662F;&#x985E;&#x578B;&#x8F49;&#x63DB;&#x64CD;&#x4F5C;&#xFF0C;&#x5B83;&#x5011;&#x4F75;&#x4E0D;&#x662F;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x3002;&#x985E;&#x578B;&#x8F49;&#x63DB;&#x4E0D;&#x6703;&#x6539;&#x8B8A;&#x503C;&#x672C;&#x8EAB;&#xFF0C;&#x4F46;&#x662F;&#x6703;&#x4F7F;&#x5B83;&#x5011;&#x7684;&#x8A9E;&#x7FA9;&#x767C;&#x751F;&#x8B8A;&#x5316;&#x3002;&#x53E6;&#x4E00;&#x65B9;&#x9762;&#xFF0C;CToF&#x548C;FToC&#x5169;&#x500B;&#x51FD;&#x6578;&#x5247;&#x662F;&#x5C0D;&#x4E0D;&#x540C;&#x6EAB;&#x5EA6;&#x55AE;&#x4F4D;&#x4E0B;&#x7684;&#x6EAB;&#x5EA6;&#x9032;&#x884C;&#x63DB;&#x7B97;&#xFF0C;&#x5B83;&#x5011;&#x6703;&#x8FD4;&#x8FF4;&#x4E0D;&#x540C;&#x7684;&#x503C;&#x3002;</p>
<p>&#x5C0D;&#x65BC;&#x6BCF;&#x4E00;&#x500B;&#x985E;&#x578B;T&#xFF0C;&#x90FD;&#x6709;&#x4E00;&#x500B;&#x5C0D;&#x61C9;&#x7684;&#x985E;&#x578B;&#x8F49;&#x63DB;&#x64CD;&#x4F5C;T(x)&#xFF0C;&#x7528;&#x65BC;&#x5C07;x&#x8F49;&#x7232;T&#x985E;&#x578B;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x5982;&#x679C;T&#x662F;&#x6307;&#x91DD;&#x985E;&#x578B;&#xFF0C;&#x53EF;&#x80FD;&#x6703;&#x9700;&#x8981;&#x7528;&#x5C0F;&#x62EC;&#x5F27;&#x5305;&#x88DD;T&#xFF0C;&#x6BD4;&#x5982;<code>(*int)(0)</code>&#xFF09;&#x3002;&#x96BB;&#x6709;&#x7576;&#x5169;&#x500B;&#x985E;&#x578B;&#x7684;&#x5E95;&#x5C64;&#x57FA;&#x790E;&#x985E;&#x578B;&#x76F8;&#x540C;&#x6642;&#xFF0C;&#x624D;&#x5141;&#x8A31;&#x9019;&#x7A2E;&#x8F49;&#x578B;&#x64CD;&#x4F5C;&#xFF0C;&#x6216;&#x8005;&#x662F;&#x5169;&#x8005;&#x90FD;&#x662F;&#x6307;&#x5411;&#x76F8;&#x540C;&#x5E95;&#x5C64;&#x7D50;&#x69CB;&#x7684;&#x6307;&#x91DD;&#x985E;&#x578B;&#xFF0C;&#x9019;&#x4E9B;&#x8F49;&#x63DB;&#x96BB;&#x6539;&#x8B8A;&#x985E;&#x578B;&#x800C;&#x4E0D;&#x6703;&#x5F71;&#x97FF;&#x503C;&#x672C;&#x8EAB;&#x3002;&#x5982;&#x679C;x&#x662F;&#x53EF;&#x4EE5;&#x8CE6;&#x503C;&#x7D66;T&#x985E;&#x578B;&#x7684;&#x503C;&#xFF0C;&#x90A3;&#x9EBD;x&#x5FC5;&#x7136;&#x4E5F;&#x53EF;&#x4EE5;&#x88AB;&#x8F49;&#x7232;T&#x985E;&#x578B;&#xFF0C;&#x4F46;&#x662F;&#x4E00;&#x822C;&#x6C92;&#x6709;&#x9019;&#x500B;&#x5FC5;&#x8981;&#x3002;</p>
<p>&#x6578;&#x503C;&#x985E;&#x578B;&#x4E4B;&#x9593;&#x7684;&#x8F49;&#x578B;&#x4E5F;&#x662F;&#x5141;&#x8A31;&#x7684;&#xFF0C;&#x4F75;&#x4E14;&#x5728;&#x5B57;&#x7B26;&#x4E32;&#x548C;&#x4E00;&#x4E9B;&#x7279;&#x5B9A;&#x985E;&#x578B;&#x7684;slice&#x4E4B;&#x9593;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x8F49;&#x63DB;&#x7684;&#xFF0C;&#x5728;&#x4E0B;&#x4E00;&#x7AE0;&#x6211;&#x5011;&#x6703;&#x770B;&#x5230;&#x9019;&#x6A23;&#x7684;&#x4F8B;&#x5B50;&#x3002;&#x9019;&#x985E;&#x8F49;&#x63DB;&#x53EF;&#x80FD;&#x6539;&#x8B8A;&#x503C;&#x7684;&#x8868;&#x73FE;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x5C07;&#x4E00;&#x500B;&#x6D6E;&#x9EDE;&#x6578;&#x8F49;&#x7232;&#x6574;&#x6578;&#x5C07;&#x4E1F;&#x68C4;&#x5C0F;&#x6578;&#x90E8;&#x5206;&#xFF0C;&#x5C07;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x8F49;&#x7232;<code>[]byte</code>&#x985E;&#x578B;&#x7684;slice&#x5C07;&#x62F7;&#x8C9D;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x6578;&#x64DA;&#x7684;&#x526F;&#x672C;&#x3002;&#x5728;&#x4EFB;&#x4F55;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x904B;&#x884C;&#x6642;&#x4E0D;&#x6703;&#x767C;&#x751F;&#x8F49;&#x63DB;&#x5931;&#x6557;&#x7684;&#x932F;&#x8AA4;&#xFF08;&#x8B6F;&#x8A3B;: &#x932F;&#x8AA4;&#x96BB;&#x6703;&#x767C;&#x751F;&#x5728;&#x7DE8;&#x8B6F;&#x968E;&#x6BB5;&#xFF09;&#x3002;</p>
<p>&#x5E95;&#x5C64;&#x6578;&#x64DA;&#x985E;&#x578B;&#x6C7A;&#x5B9A;&#x4E86;&#x5167;&#x90E8;&#x7D50;&#x69CB;&#x548C;&#x8868;&#x9054;&#x65B9;&#x5F0F;&#xFF0C;&#x4E5F;&#x6C7A;&#x5B9A;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x50CF;&#x5E95;&#x5C64;&#x985E;&#x578B;&#x4E00;&#x6A23;&#x5C0D;&#x5167;&#x7F6E;&#x904B;&#x7B97;&#x7B26;&#x7684;&#x652F;&#x6301;&#x3002;&#x9019;&#x610F;&#x5473;&#x7740;&#xFF0C;Celsius&#x548C;Fahrenheit&#x985E;&#x578B;&#x7684;&#x7B97;&#x8853;&#x904B;&#x7B97;&#x884C;&#x7232;&#x548C;&#x5E95;&#x5C64;&#x7684;float64&#x985E;&#x578B;&#x662F;&#x4E00;&#x6A23;&#x7684;&#xFF0C;&#x6B63;&#x5982;&#x6211;&#x5011;&#x6240;&#x671F;&#x671B;&#x7684;&#x90A3;&#x6A23;&#x3002;</p>
<pre><code class="lang-Go">fmt.Printf(<span class="hljs-string">&quot;%g\n&quot;</span>, BoilingC-FreezingC) <span class="hljs-comment">// &quot;100&quot; &#xB0;C</span>
boilingF := CToF(BoilingC)
fmt.Printf(<span class="hljs-string">&quot;%g\n&quot;</span>, boilingF-CToF(FreezingC)) <span class="hljs-comment">// &quot;180&quot; &#xB0;F</span>
fmt.Printf(<span class="hljs-string">&quot;%g\n&quot;</span>, boilingF-FreezingC) <span class="hljs-comment">// compile error: type mismatch</span>
</code></pre>
<p>&#x6BD4;&#x8F03;&#x904B;&#x7B97;&#x7B26; <code>==</code> &#x548C; <code>&lt;</code> &#x4E5F;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x6BD4;&#x8F03;&#x4E00;&#x500B;&#x547D;&#x540D;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x548C;&#x53E6;&#x4E00;&#x500B;&#x6709;&#x76F8;&#x540C;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x6216;&#x76F8;&#x540C;&#x7684;&#x5E95;&#x5C64;&#x985E;&#x578B;&#x7684;&#x503C;&#x505A;&#x6BD4;&#x8F03;.
&#x4F46;&#x662F;&#x5982;&#x679C;&#x5169;&#x500B;&#x503C;&#x6709;&#x7740;&#x4E0D;&#x540C;&#x7684;&#x985E;&#x578B;, &#x5247;&#x4E0D;&#x80FD;&#x76F4;&#x63A5;&#x9032;&#x884C;&#x6BD4;&#x8F03;:</p>
<p>&#x6BD4;&#x8F03;&#x904B;&#x7B97;&#x7B26;<code>==</code>&#x548C;<code>&lt;</code>&#x4E5F;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x6BD4;&#x8F03;&#x4E00;&#x500B;&#x547D;&#x540D;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x548C;&#x53E6;&#x4E00;&#x500B;&#x6709;&#x76F8;&#x540C;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x6216;&#x6709;&#x76F8;&#x540C;&#x5E95;&#x5C64;&#x985E;&#x578B;&#x7684;&#x503C;&#x505A;&#x6BD4;&#x8F03;&#x3002;&#x4F46;&#x662F;&#x5982;&#x679C;&#x5169;&#x500B;&#x503C;&#x6709;&#x7740;&#x4E0D;&#x540C;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x5247;&#x4E0D;&#x80FD;&#x76F4;&#x63A5;&#x9032;&#x884C;&#x6BD4;&#x8F03;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> c Celsius
<span class="hljs-keyword">var</span> f Fahrenheit
fmt.Println(c == <span class="hljs-number">0</span>) <span class="hljs-comment">// &quot;true&quot;</span>
@@ -2071,13 +2072,13 @@ fmt.Println(f &gt;= <span class="hljs-number">0</span>) <span class="hl
fmt.Println(c == f) <span class="hljs-comment">// compile error: type mismatch</span>
fmt.Println(c == Celsius(f)) <span class="hljs-comment">// &quot;true&quot;!</span>
</code></pre>
<p>&#x8A3B;&#x610F;&#x6700;&#x5F8C;&#x90A3;&#x500B;&#x8A9E;&#x53E5;. &#x76E1;&#x7BA1;&#x770B;&#x8D77;&#x4F86;&#x60F3;&#x51FD;&#x6578;&#x8ABF;&#x7528;, &#x4F46;&#x662F;Celsius(f)&#x985E;&#x578B;&#x8F49;&#x63DB;, &#x4F75;&#x4E0D;&#x6703;&#x6539;&#x8B8A;&#x503C;, &#x5B83;&#x50C5;&#x50C5;&#x662F;&#x6539;&#x8B8A;&#x503C;&#x7684;&#x985E;&#x578B;&#x800C;&#x5DF2;. &#x6E2C;&#x8A66;&#x7232;&#x771E;&#x7684;&#x539F;&#x56E0;&#x662F;&#x56E0;&#x7232; c &#x548C; g &#x90FD;&#x662F;&#x96F6;&#x503C;.</p>
<p>&#x4E00;&#x500B;&#x547D;&#x540D;&#x7684;&#x985E;&#x578B;&#x53EF;&#x4EE5;&#x63D0;&#x4F9B;&#x7B26;&#x865F;&#x65B9;&#x4FBF;, &#x7279;&#x522B;&#x662F;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4E00;&#x904D;&#x53C8;&#x4E00;&#x904D;&#x5730;&#x66F8;&#x5BEB;&#x8907;&#x96DC;&#x985E;&#x578B;(&#x8B6F;&#x8A3B;: &#x4F8B;&#x5982;&#x7528;&#x533F;&#x540D;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x5B9A;&#x7FA9;&#x8B8A;&#x91CF;). &#x96D6;&#x7136;&#x5C0D;&#x65BC;&#x50CF;float64&#x9019;&#x7A2E;&#x7C21;&#x55AE;&#x7684;&#x5E95;&#x5C64;&#x985E;&#x578B;&#x6C92;&#x6709;&#x7C21;&#x6F54;&#x5F88;&#x591A;, &#x4F46;&#x662F;&#x5982;&#x679C;&#x662F;&#x8907;&#x96DC;&#x7684;&#x985E;&#x578B;&#x5C07;&#x6703;&#x7C21;&#x6F54;&#x5F88;&#x591A;, &#x6B63;&#x5982;&#x6211;&#x5011;&#x537D;&#x5C07;&#x8A0E;&#x8AD6;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;:</p>
<p>&#x547D;&#x540D;&#x985E;&#x578B;&#x9084;&#x53EF;&#x4EE5;&#x7232;&#x8A72;&#x985E;&#x578B;&#x7684;&#x503C;&#x5B9A;&#x7FA9;&#x65B0;&#x7684;&#x884C;&#x7232;. &#x9019;&#x4E9B;&#x884C;&#x7232;&#x8868;&#x793A;&#x7232;&#x4E00;&#x7D44;&#x95DC;&#x806F;&#x5230;&#x985E;&#x578B;&#x7684;&#x51FD;&#x6578;, &#x6211;&#x5011;&#x6210;&#x7232;&#x985E;&#x578B;&#x7684;&#x65B9;&#x6CD5;&#x96C6;. &#x6211;&#x5011;&#x5C07;&#x5728;&#x7B2C;&#x516D;&#x7AE0;&#x8A0E;&#x8AD6;&#x65B9;&#x6CD5;&#x7684;&#x7D30;&#x7BC0;, &#x9019;&#x91CC;&#x503C;&#x8AAC;&#x5BEB;&#x7C21;&#x55AE;&#x7528;&#x6CD5;.</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x8072;&#x660E;, Celsius &#x985E;&#x578B;&#x7684;&#x53C3;&#x6578; c &#x9F63;&#x73FE;&#x5728;&#x4E86;&#x51FD;&#x6578;&#x540D;&#x7684;&#x524D;&#x9762;, &#x8868;&#x793A;&#x8072;&#x660E;&#x4E00;&#x500B; Celsius &#x985E;&#x578B;&#x7684; &#x540D;&#x53EB; String &#x7684;&#x65B9;&#x6CD5;, &#x65B9;&#x6CD5;&#x8FD4;&#x8FF4; &#x5E36;&#x7740; &#xB0;C &#x6EAB;&#x5EA6;&#x55AE;&#x4F4D; &#x7684;&#x53C3;&#x6578; c &#x7684;&#x6578;&#x5B57;&#x6253;&#x5370;&#x5B57;&#x7B26;&#x4E32;:</p>
<p>&#x8A3B;&#x610F;&#x6700;&#x5F8C;&#x90A3;&#x500B;&#x8A9E;&#x53E5;&#x3002;&#x76E1;&#x7BA1;&#x770B;&#x8D77;&#x4F86;&#x60F3;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#xFF0C;&#x4F46;&#x662F;Celsius(f)&#x662F;&#x985E;&#x578B;&#x8F49;&#x63DB;&#x64CD;&#x4F5C;&#xFF0C;&#x5B83;&#x4F75;&#x4E0D;&#x6703;&#x6539;&#x8B8A;&#x503C;&#xFF0C;&#x50C5;&#x50C5;&#x662F;&#x6539;&#x8B8A;&#x503C;&#x7684;&#x985E;&#x578B;&#x800C;&#x5DF2;&#x3002;&#x6E2C;&#x8A66;&#x7232;&#x771E;&#x7684;&#x539F;&#x56E0;&#x662F;&#x56E0;&#x7232;c&#x548C;g&#x90FD;&#x662F;&#x96F6;&#x503C;&#x3002;</p>
<p>&#x4E00;&#x500B;&#x547D;&#x540D;&#x7684;&#x985E;&#x578B;&#x53EF;&#x4EE5;&#x63D0;&#x4F9B;&#x66F8;&#x5BEB;&#x65B9;&#x4FBF;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4E00;&#x904D;&#x53C8;&#x4E00;&#x904D;&#x5730;&#x66F8;&#x5BEB;&#x8907;&#x96DC;&#x985E;&#x578B;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x4F8B;&#x5982;&#x7528;&#x533F;&#x540D;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x5B9A;&#x7FA9;&#x8B8A;&#x91CF;&#xFF09;&#x3002;&#x96D6;&#x7136;&#x5C0D;&#x65BC;&#x50CF;float64&#x9019;&#x7A2E;&#x7C21;&#x55AE;&#x7684;&#x5E95;&#x5C64;&#x985E;&#x578B;&#x6C92;&#x6709;&#x7C21;&#x6F54;&#x5F88;&#x591A;&#xFF0C;&#x4F46;&#x662F;&#x5982;&#x679C;&#x662F;&#x8907;&#x96DC;&#x7684;&#x985E;&#x578B;&#x5C07;&#x6703;&#x7C21;&#x6F54;&#x5F88;&#x591A;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x6211;&#x5011;&#x537D;&#x5C07;&#x8A0E;&#x8AD6;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#x3002;</p>
<p>&#x547D;&#x540D;&#x985E;&#x578B;&#x9084;&#x53EF;&#x4EE5;&#x7232;&#x8A72;&#x985E;&#x578B;&#x7684;&#x503C;&#x5B9A;&#x7FA9;&#x65B0;&#x7684;&#x884C;&#x7232;&#x3002;&#x9019;&#x4E9B;&#x884C;&#x7232;&#x8868;&#x793A;&#x7232;&#x4E00;&#x7D44;&#x95DC;&#x806F;&#x5230;&#x8A72;&#x985E;&#x578B;&#x7684;&#x51FD;&#x6578;&#x96C6;&#x5408;&#xFF0C;&#x6211;&#x5011;&#x7A31;&#x7232;&#x985E;&#x578B;&#x7684;&#x65B9;&#x6CD5;&#x96C6;&#x3002;&#x6211;&#x5011;&#x5C07;&#x5728;&#x7B2C;&#x516D;&#x7AE0;&#x4E2D;&#x8A0E;&#x8AD6;&#x65B9;&#x6CD5;&#x7684;&#x7D30;&#x7BC0;&#xFF0C;&#x9019;&#x91CC;&#x503C;&#x8AAC;&#x5BEB;&#x7C21;&#x55AE;&#x7528;&#x6CD5;&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#xFF0C;Celsius&#x985E;&#x578B;&#x7684;&#x53C3;&#x6578;c&#x51FA;&#x73FE;&#x5728;&#x4E86;&#x51FD;&#x6578;&#x540D;&#x7684;&#x524D;&#x9762;&#xFF0C;&#x8868;&#x793A;&#x8072;&#x660E;&#x7684;&#x662F;Celsius&#x985E;&#x578B;&#x7684;&#x4E00;&#x500B;&#x53EB;&#x540D;&#x53EB;String&#x7684;&#x65B9;&#x6CD5;&#xFF0C;&#x8A72;&#x65B9;&#x6CD5;&#x8FD4;&#x8FF4;&#x8A72;&#x985E;&#x578B;&#x5C0D;&#x8C61;c&#x5E36;&#x7740;&#xB0;C&#x6EAB;&#x5EA6;&#x55AE;&#x4F4D;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> (c Celsius) String() <span class="hljs-typename">string</span> { <span class="hljs-keyword">return</span> fmt.Sprintf(<span class="hljs-string">&quot;%g&#xB0;C&quot;</span>, c) }
</code></pre>
<p>&#x8A31;&#x591A;&#x985E;&#x578B;&#x90FD;&#x6703;&#x5B9A;&#x7FA9;&#x500B; String &#x65B9;&#x6CD5;, &#x56E0;&#x7232;&#x7576;&#x7136;&#x7528; fmt &#x5305;&#x7684;&#x6253;&#x5370;&#x65B9;&#x6CD5;&#x6642;, &#x5C07;&#x6703;&#x512A;&#x5148;&#x4F7F;&#x7528; String &#x65B9;&#x6CD5;&#x8FD4;&#x8FF4;&#x7684;&#x7D50;&#x679C;&#x6253;&#x5370;, &#x5C07;&#x5728; 7.1&#x7BC0; &#x8B1B;&#x8FF0;.</p>
<p>&#x8A31;&#x591A;&#x985E;&#x578B;&#x90FD;&#x6703;&#x5B9A;&#x7FA9;&#x4E00;&#x500B;String&#x65B9;&#x6CD5;&#xFF0C;&#x56E0;&#x7232;&#x7576;&#x4F7F;&#x7528;fmt&#x5305;&#x7684;&#x6253;&#x5370;&#x65B9;&#x6CD5;&#x6642;&#xFF0C;&#x5C07;&#x6703;&#x512A;&#x5148;&#x4F7F;&#x7528;&#x8A72;&#x985E;&#x578B;&#x5C0D;&#x61C9;&#x7684;String&#x65B9;&#x6CD5;&#x8FD4;&#x8FF4;&#x7684;&#x7D50;&#x679C;&#x6253;&#x5370;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x5728;7.1&#x7BC0;&#x8B1B;&#x8FF0;&#x3002;</p>
<pre><code class="lang-Go">c := FToC(<span class="hljs-number">212.0</span>)
fmt.Println(c.String()) <span class="hljs-comment">// &quot;100&#xB0;C&quot;</span>
fmt.Printf(<span class="hljs-string">&quot;%v\n&quot;</span>, c) <span class="hljs-comment">// &quot;100&#xB0;C&quot;; no need to call String explicitly</span>
@@ -2117,7 +2118,7 @@ fmt.Println(<span class="hljs-typename">float64</span>(c)) <span class="hljs-com
<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>

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="2.6" data-chapter-title="包和文件" data-filepath="ch2/ch2-06.md" data-basepath=".." data-revision="Fri Dec 25 2015 12:32:44 GMT+0800 (中国标准时间)">
<div class="book" data-level="2.6" data-chapter-title="包和文件" data-filepath="ch2/ch2-06.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>
@@ -2020,12 +2024,12 @@
<section class="normal" id="section-">
<h2 id="26-&#x5305;&#x548C;&#x6587;&#x4EF6;">2.6. &#x5305;&#x548C;&#x6587;&#x4EF6;</h2>
<p>Go&#x8A9E;&#x8A00;&#x4E2D;&#x7684;&#x5305;&#x548C;&#x5176;&#x4ED6;&#x8A9E;&#x8A00;&#x7684;&#x5EAB;&#x6216;&#x6A21;&#x584A;&#x6982;&#x5FF5;&#x985E;&#x4F3C;, &#x76EE;&#x7684;&#x90FD;&#x662F;&#x7232;&#x4E86;&#x652F;&#x6301;&#x6A21;&#x584A;&#x597D;, &#x5C01;&#x88DD;, &#x55AE;&#x7368;&#x7DE8;&#x8B6F;&#x548C;&#x4EE3;&#x78BC;&#x91CD;&#x7528;. &#x4E00;&#x500B;&#x5305;&#x7684;&#x6E90;&#x4EE3;&#x78BC;&#x4FDD;&#x5B58;&#x5728;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;&#x4EE5;.&#x7232;&#x5F8C;&#x7DB4;&#x540D;&#x7684;&#x6587;&#x4EF6;&#x4E2D;, &#x901A;&#x5E38;&#x4E00;&#x500B;&#x5305;&#x6240;&#x5728;&#x76EE;&#x9332;&#x8DEF;&#x5F91;&#x7684;&#x5F8C;&#x7DB4;&#x662F;&#x5305;&#x7684;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;; &#x4F8B;&#x5982;&#x5305; gopl.io/ch1/helloworld &#x5C0D;&#x61C9;&#x7684;&#x76EE;&#x9332;&#x8DEF;&#x5F91;&#x662F; $GOPATH/src/gopl.io/ch1/helloworld.</p>
<p>&#x6BCF;&#x500B;&#x5305;&#x4F5C;&#x7232;&#x4E00;&#x500B;&#x7368;&#x7ACB;&#x7684;&#x540D;&#x5B57;&#x7A7A;&#x9593;. &#x4F8B;&#x5982;, &#x5728; image &#x5305;&#x4E2D;&#x7684; Decode &#x51FD;&#x6578; &#x548C; unicode/utf16 &#x5305;&#x4E2D;&#x7684; Decode &#x51FD;&#x6578;&#x662F;&#x4E0D;&#x540C;&#x7684;. &#x8981;&#x5728;&#x5916;&#x90E8;&#x5305;&#x5F15;&#x7528;&#x8A72;&#x51FD;&#x6578;, &#x5FC5;&#x9B1A;&#x986F;&#x5F0F;&#x4F7F;&#x7528; image.Decode &#x6216; utf16.Decode &#x8A2A;&#x554F;.</p>
<p>&#x5305;&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x901A;&#x904E;&#x63A7;&#x88FD;&#x90A3;&#x4E9B;&#x540D;&#x5B57;&#x662F;&#x5916;&#x90E8;&#x53EF;&#x898B;&#x7684;&#x4F86;&#x96B1;&#x85CF;&#x4FE1;&#x606F;. &#x5728;Go&#x4E2D;, &#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x898F;&#x5247;&#x662F;: &#x5982;&#x679C;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x662F;&#x5927;&#x5BEB;&#x5B57;&#x6BCD;&#x958B;&#x982D;&#x7684;, &#x90A3;&#x9EBD;&#x8A72;&#x540D;&#x5B57;&#x662F;&#x5C0E;&#x9F63;&#x7684;.</p>
<p>&#x7232;&#x4E86;&#x6F14;&#x793A;&#x57FA;&#x672C;&#x7684;&#x7528;&#x6CD5;, &#x5047;&#x8A2D;&#x6211;&#x5011;&#x7684;&#x6EAB;&#x5EA6;&#x8F49;&#x63DB;&#x8EDF;&#x4EF6;&#x5DF2;&#x7D93;&#x5F88;&#x6D41;&#x884C;, &#x6211;&#x5011;&#x5E0C;&#x671B;&#x5230;Go&#x793E;&#x5340;&#x4E5F;&#x80FD;&#x4F7F;&#x7528;&#x9019;&#x500B;&#x5305;. &#x6211;&#x5011;&#x8A72;&#x5982;&#x4F55;&#x505A;&#x5462;?</p>
<p>&#x8B93;&#x6211;&#x5011;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x540D;&#x7232; gopl.io/ch2/tempconv &#x7684;&#x5305;, &#x662F;&#x524D;&#x9762;&#x4F8B;&#x5B50;&#x7684;&#x4E00;&#x500B;&#x6539;&#x9032;&#x7248;&#x672C;. (&#x6211;&#x5011;&#x7D04;&#x5B9A;&#x6211;&#x5011;&#x7684;&#x4F8B;&#x5B50;&#x90FD;&#x662F;&#x4EE5;&#x7AE0;&#x7BC0;&#x9806;&#x5E8F;&#x4F86;&#x7DE8;&#x865F;&#x7684;, &#x9019;&#x6A23;&#x7684;&#x8DEF;&#x5F91;&#x66F4;&#x5BB9;&#x6613;&#x95B2;&#x8B80;.) &#x5305;&#x4EE3;&#x78BC;&#x5B58;&#x5132;&#x5728;&#x5169;&#x500B;&#x6587;&#x4EF6;, &#x7528;&#x4F86;&#x6F14;&#x793A;&#x5982;&#x4F55;&#x5728;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x8072;&#x660E;&#x7136;&#x5F8C;&#x5728;&#x5176;&#x4ED6;&#x7684;&#x6587;&#x4EF6;&#x8A2A;&#x554F;; &#x5728;&#x73FE;&#x5BE6;&#x4E2D;, &#x9019;&#x6A23;&#x5C0F;&#x7684;&#x5305;&#x4E00;&#x822C;&#x503C;&#x9700;&#x8981;&#x4E00;&#x500B;&#x6587;&#x4EF6;.</p>
<p>&#x6211;&#x5011;&#x628A;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;, &#x5C0D;&#x61C9;&#x7684;&#x5E38;&#x91CF;, &#x9084;&#x6709;&#x65B9;&#x6CD5;&#x90FD;&#x653E;&#x5230; tempconv.go &#x6587;&#x4EF6;:</p>
<p>Go&#x8A9E;&#x8A00;&#x4E2D;&#x7684;&#x5305;&#x548C;&#x5176;&#x4ED6;&#x8A9E;&#x8A00;&#x7684;&#x5EAB;&#x6216;&#x6A21;&#x584A;&#x7684;&#x6982;&#x5FF5;&#x985E;&#x4F3C;&#xFF0C;&#x76EE;&#x7684;&#x90FD;&#x662F;&#x7232;&#x4E86;&#x652F;&#x6301;&#x6A21;&#x584A;&#x5316;&#x3001;&#x5C01;&#x88DD;&#x3001;&#x55AE;&#x7368;&#x7DE8;&#x8B6F;&#x548C;&#x4EE3;&#x78BC;&#x91CD;&#x7528;&#x3002;&#x4E00;&#x500B;&#x5305;&#x7684;&#x6E90;&#x4EE3;&#x78BC;&#x4FDD;&#x5B58;&#x5728;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;&#x4EE5;.go&#x7232;&#x6587;&#x4EF6;&#x5F8C;&#x7DB4;&#x540D;&#x7684;&#x6E90;&#x6587;&#x4EF6;&#x4E2D;&#xFF0C;&#x901A;&#x5E38;&#x4E00;&#x500B;&#x5305;&#x6240;&#x5728;&#x76EE;&#x9332;&#x8DEF;&#x5F91;&#x7684;&#x5F8C;&#x7DB4;&#x662F;&#x5305;&#x7684;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;&#xFF1B;&#x4F8B;&#x5982;&#x5305;gopl.io/ch1/helloworld&#x5C0D;&#x61C9;&#x7684;&#x76EE;&#x9332;&#x8DEF;&#x5F91;&#x662F;$GOPATH/src/gopl.io/ch1/helloworld&#x3002;</p>
<p>&#x6BCF;&#x500B;&#x5305;&#x90FD;&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x7368;&#x7ACB;&#x7684;&#x540D;&#x5B57;&#x7A7A;&#x9593;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x5728;image&#x5305;&#x4E2D;&#x7684;Decode&#x51FD;&#x6578;&#x548C;&#x5728;unicode/utf16&#x5305;&#x4E2D;&#x7684; Decode&#x51FD;&#x6578;&#x662F;&#x4E0D;&#x540C;&#x7684;&#x3002;&#x8981;&#x5728;&#x5916;&#x90E8;&#x5F15;&#x7528;&#x8A72;&#x51FD;&#x6578;&#xFF0C;&#x5FC5;&#x9B1A;&#x986F;&#x5F0F;&#x4F7F;&#x7528;image.Decode&#x6216;utf16.Decode&#x5F62;&#x5F0F;&#x8A2A;&#x554F;&#x3002;</p>
<p>&#x5305;&#x9084;&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x901A;&#x904E;&#x63A7;&#x88FD;&#x54EA;&#x4E9B;&#x540D;&#x5B57;&#x662F;&#x5916;&#x90E8;&#x53EF;&#x898B;&#x7684;&#x4F86;&#x96B1;&#x85CF;&#x5167;&#x90E8;&#x5BE6;&#x73FE;&#x4FE1;&#x606F;&#x3002;&#x5728;Go&#x8A9E;&#x8A00;&#x4E2D;&#xFF0C;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x898F;&#x5247;&#x662F;&#xFF1A;&#x5982;&#x679C;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x662F;&#x5927;&#x5BEB;&#x5B57;&#x6BCD;&#x958B;&#x982D;&#x7684;&#xFF0C;&#x90A3;&#x9EBD;&#x8A72;&#x540D;&#x5B57;&#x662F;&#x5C0E;&#x51FA;&#x7684;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x56E0;&#x7232;&#x6F22;&#x5B57;&#x4E0D;&#x5340;&#x5206;&#x5927;&#x5C0F;&#x5BEB;&#xFF0C;&#x56E0;&#x6B64;&#x6F22;&#x5B57;&#x958B;&#x982D;&#x7684;&#x540D;&#x5B57;&#x662F;&#x6C92;&#x6709;&#x5C0E;&#x51FA;&#x7684;&#xFF09;&#x3002;</p>
<p>&#x7232;&#x4E86;&#x6F14;&#x793A;&#x5305;&#x57FA;&#x672C;&#x7684;&#x7528;&#x6CD5;&#xFF0C;&#x5148;&#x5047;&#x8A2D;&#x6211;&#x5011;&#x7684;&#x6EAB;&#x5EA6;&#x8F49;&#x63DB;&#x8EDF;&#x4EF6;&#x5DF2;&#x7D93;&#x5F88;&#x6D41;&#x884C;&#xFF0C;&#x6211;&#x5011;&#x5E0C;&#x671B;&#x5230;Go&#x8A9E;&#x8A00;&#x793E;&#x5340;&#x4E5F;&#x80FD;&#x4F7F;&#x7528;&#x9019;&#x500B;&#x5305;&#x3002;&#x6211;&#x5011;&#x8A72;&#x5982;&#x4F55;&#x505A;&#x5462;&#xFF1F;</p>
<p>&#x8B93;&#x6211;&#x5011;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x540D;&#x7232;gopl.io/ch2/tempconv&#x7684;&#x5305;&#xFF0C;&#x9019;&#x662F;&#x524D;&#x9762;&#x4F8B;&#x5B50;&#x7684;&#x4E00;&#x500B;&#x6539;&#x9032;&#x7248;&#x672C;&#x3002;&#xFF08;&#x6211;&#x5011;&#x7D04;&#x5B9A;&#x6211;&#x5011;&#x7684;&#x4F8B;&#x5B50;&#x90FD;&#x662F;&#x4EE5;&#x7AE0;&#x7BC0;&#x9806;&#x5E8F;&#x4F86;&#x7DE8;&#x865F;&#x7684;&#xFF0C;&#x9019;&#x6A23;&#x7684;&#x8DEF;&#x5F91;&#x66F4;&#x5BB9;&#x6613;&#x95B2;&#x8B80;&#xFF09;&#x5305;&#x4EE3;&#x78BC;&#x5B58;&#x5132;&#x5728;&#x5169;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x4E2D;&#xFF0C;&#x7528;&#x4F86;&#x6F14;&#x793A;&#x5982;&#x4F55;&#x5728;&#x4E00;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x8072;&#x660E;&#x7136;&#x5F8C;&#x5728;&#x5176;&#x4ED6;&#x7684;&#x6E90;&#x6587;&#x4EF6;&#x8A2A;&#x554F;&#xFF1B;&#x96D6;&#x7136;&#x5728;&#x73FE;&#x5BE6;&#x4E2D;&#xFF0C;&#x9019;&#x6A23;&#x5C0F;&#x7684;&#x5305;&#x4E00;&#x822C;&#x96BB;&#x9700;&#x8981;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x3002;</p>
<p>&#x6211;&#x5011;&#x628A;&#x8B8A;&#x91CF;&#x7684;&#x8072;&#x660E;&#x3001;&#x5C0D;&#x61C9;&#x7684;&#x5E38;&#x91CF;&#xFF0C;&#x9084;&#x6709;&#x65B9;&#x6CD5;&#x90FD;&#x653E;&#x5230;tempconv.go&#x6E90;&#x6587;&#x4EF6;&#x4E2D;&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch2/tempconv
<span class="hljs-comment">// Package tempconv performs Celsius and Fahrenheit conversions.</span>
<span class="hljs-keyword">package</span> tempconv
@@ -2044,7 +2048,7 @@
<span class="hljs-keyword">func</span> (c Celsius) String() <span class="hljs-typename">string</span> { <span class="hljs-keyword">return</span> fmt.Sprintf(<span class="hljs-string">&quot;%g&#xB0;C&quot;</span>, c) }
<span class="hljs-keyword">func</span> (f Fahrenheit) String() <span class="hljs-typename">string</span> { <span class="hljs-keyword">return</span> fmt.Sprintf(<span class="hljs-string">&quot;%g&#xB0;F&quot;</span>, f) }
</code></pre>
<p>&#x8F49;&#x63DB;&#x51FD;&#x6578;&#x653E;&#x5728; conv.go &#x6587;&#x4EF6;&#x4E2D;:</p>
<p>&#x8F49;&#x63DB;&#x51FD;&#x6578;&#x5247;&#x653E;&#x5728;&#x53E6;&#x4E00;&#x500B;conv.go&#x6E90;&#x6587;&#x4EF6;&#x4E2D;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">package</span> tempconv
<span class="hljs-comment">// CToF converts a Celsius temperature to Fahrenheit.</span>
@@ -2053,22 +2057,19 @@
<span class="hljs-comment">// FToC converts a Fahrenheit temperature to Celsius.</span>
<span class="hljs-keyword">func</span> FToC(f Fahrenheit) Celsius { <span class="hljs-keyword">return</span> Celsius((f - <span class="hljs-number">32</span>) * <span class="hljs-number">5</span> / <span class="hljs-number">9</span>) }
</code></pre>
<p>&#x6BCF;&#x500B;&#x6587;&#x4EF6;&#x90FD;&#x662F;&#x4EE5;&#x5305;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x958B;&#x59CB;, &#x7528;&#x4F86;&#x6307;&#x5B9A;&#x5305;&#x7684;&#x540D;&#x5B57;. &#x7576;&#x5305;&#x88AB;&#x5C0E;&#x5165;&#x7684;&#x6642;&#x5019;, &#x5305;&#x5167;&#x90E8;&#x7684;&#x6210;&#x54E1;&#x5C07;&#x901A;&#x904E;&#x985E;&#x4F3C; tempconv.CToF &#x7684;&#x65B9;&#x5F0F;&#x8A2A;&#x554F;. &#x5305;&#x7D1A;&#x522B;&#x7684;&#x540D;&#x5B57;, &#x4F8B;&#x5982;&#x5728;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x8072;&#x660E;&#x7684;&#x985E;&#x578B;&#x548C;&#x5E38;&#x91CF;, &#x5728;&#x540C;&#x4E00;&#x500B;&#x5305;&#x7684;&#x5176;&#x4ED6;&#x6587;&#x4EF6;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x8A2A;&#x554F;&#x7684;,
&#x5C31;&#x597D;&#x50CF;&#x6240;&#x6709;&#x4EE3;&#x78BC;&#x90FD;&#x5728;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x4E00;&#x6A23;. &#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F; tempconv.go &#x6587;&#x4EF6;&#x5C0E;&#x5165;&#x4E86; fmt &#x5305;, &#x4F46;&#x662F; conv.go &#x6587;&#x4EF6;&#x4F75;&#x6C92;&#x6709;, &#x56E0;&#x7232;&#x5B83;&#x4F75;&#x6C92;&#x6709;&#x7528;&#x5230; fmt &#x5305;.</p>
<p>&#x56E0;&#x7232;&#x5305;&#x7D1A;&#x522B;&#x7684;&#x5E38;&#x91CF;&#x540D;&#x90FD;&#x662F;&#x4EE5;&#x5927;&#x5BEB;&#x5B57;&#x6BCD;&#x958B;&#x982D;, &#x5B83;&#x5011;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x50CF; tempconv.AbsoluteZeroC &#x9019;&#x6A23;&#x88AB;&#x8A2A;&#x554F;&#x7684;:</p>
<p>&#x6BCF;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x90FD;&#x662F;&#x4EE5;&#x5305;&#x7684;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x958B;&#x59CB;&#xFF0C;&#x7528;&#x4F86;&#x6307;&#x540D;&#x5305;&#x7684;&#x540D;&#x5B57;&#x3002;&#x7576;&#x5305;&#x88AB;&#x5C0E;&#x5165;&#x7684;&#x6642;&#x5019;&#xFF0C;&#x5305;&#x5167;&#x7684;&#x6210;&#x54E1;&#x5C07;&#x901A;&#x904E;&#x985E;&#x4F3C;tempconv.CToF&#x7684;&#x5F62;&#x5F0F;&#x8A2A;&#x554F;&#x3002;&#x800C;&#x5305;&#x7D1A;&#x522B;&#x7684;&#x540D;&#x5B57;&#xFF0C;&#x4F8B;&#x5982;&#x5728;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x8072;&#x660E;&#x7684;&#x985E;&#x578B;&#x548C;&#x5E38;&#x91CF;&#xFF0C;&#x5728;&#x540C;&#x4E00;&#x500B;&#x5305;&#x7684;&#x5176;&#x4ED6;&#x6E90;&#x6587;&#x4EF6;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x8A2A;&#x554F;&#x7684;&#xFF0C;&#x5C31;&#x597D;&#x50CF;&#x6240;&#x6709;&#x4EE3;&#x78BC;&#x90FD;&#x5728;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x4E00;&#x6A23;&#x3002;&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;tempconv.go&#x6E90;&#x6587;&#x4EF6;&#x5C0E;&#x5165;&#x4E86;fmt&#x5305;&#xFF0C;&#x4F46;&#x662F;conv.go&#x6E90;&#x6587;&#x4EF6;&#x4F75;&#x6C92;&#x6709;&#xFF0C;&#x56E0;&#x7232;&#x9019;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x4E2D;&#x7684;&#x4EE3;&#x78BC;&#x4F75;&#x6C92;&#x6709;&#x7528;&#x5230;fmt&#x5305;&#x3002;</p>
<p>&#x56E0;&#x7232;&#x5305;&#x7D1A;&#x522B;&#x7684;&#x5E38;&#x91CF;&#x540D;&#x90FD;&#x662F;&#x4EE5;&#x5927;&#x5BEB;&#x5B57;&#x6BCD;&#x958B;&#x982D;&#xFF0C;&#x5B83;&#x5011;&#x53EF;&#x4EE5;&#x50CF;tempconv.AbsoluteZeroC&#x9019;&#x6A23;&#x88AB;&#x5916;&#x90E8;&#x4EE3;&#x78BC;&#x8A2A;&#x554F;&#xFF1A;</p>
<pre><code class="lang-Go">fmt.Printf(<span class="hljs-string">&quot;Brrrr! %v\n&quot;</span>, tempconv.AbsoluteZeroC) <span class="hljs-comment">// &quot;Brrrr! -273.15&#xB0;C&quot;</span>
</code></pre>
<p>&#x8981;&#x5C07; &#x651D;&#x6C0F;&#x6EAB;&#x5EA6;&#x8F49;&#x63DB;&#x7232; &#x83EF;&#x6C0F;&#x6EAB;&#x5EA6;, &#x9700;&#x8981;&#x5148;&#x5C0E;&#x5165; gopl.io/ch2/tempconv, &#x7136;&#x5F8C;&#x5C31;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x8F49;&#x63DB;&#x4E86;:</p>
<p>&#x8981;&#x5C07;&#x651D;&#x6C0F;&#x6EAB;&#x5EA6;&#x8F49;&#x63DB;&#x7232;&#x83EF;&#x6C0F;&#x6EAB;&#x5EA6;&#xFF0C;&#x9700;&#x8981;&#x5148;&#x7528;import&#x8A9E;&#x53E5;&#x5C0E;&#x5165;gopl.io/ch2/tempconv&#x5305;&#xFF0C;&#x7136;&#x5F8C;&#x5C31;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x9032;&#x884C;&#x8F49;&#x63DB;&#x4E86;&#xFF1A;</p>
<pre><code class="lang-Go">fmt.Println(tempconv.CToF(tempconv.BoilingC)) <span class="hljs-comment">// &quot;212&#xB0;F&quot;</span>
</code></pre>
<p>&#x5728;&#x6BCF;&#x500B;&#x6587;&#x4EF6;&#x7684;&#x5305;&#x8072;&#x660E;&#x524D;&#x50C5;&#x8DDF;&#x7740;&#x7684;&#x8A3B;&#x91CB;&#x662F;&#x5305;&#x8A3B;&#x91CB;(&#xA7;10.7.4). &#x901A;&#x5E38;, &#x7B2C;&#x4E00;&#x53E5;&#x61C9;&#x8A72;&#x5148;&#x662F;&#x5305;&#x7684;&#x529F;&#x80FD;&#x6982;&#x8981;.
&#x4E00;&#x500B;&#x5305;&#x901A;&#x5E38;&#x96BB;&#x6709;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#x6709;&#x5305;&#x8A3B;&#x91CB;. &#x5982;&#x679C;&#x5305;&#x8A3B;&#x91CB;&#x5F88;&#x5927;, &#x901A;&#x5E38;&#x6703;&#x653E;&#x5230;&#x4E00;&#x500B;&#x7368;&#x7ACB;&#x7684; doc.go &#x6587;&#x4EF6;&#x4E2D;.</p>
<p><strong>&#x7DF4;&#x7FD2; 2.1:</strong> &#x5411; tempconv &#x5305; &#x6DFB;&#x52A0;&#x985E;&#x578B;, &#x5E38;&#x91CF;&#x548C;&#x51FD;&#x6578;&#x7528;&#x4F86;&#x8655;&#x7406; Kelvin &#x7D76;&#x5C0D;&#x6EAB;&#x5EA6;&#x7684;&#x8F49;&#x63DB;,
Kelvin &#x7D76;&#x5C0D;&#x96F6;&#x5EA6;&#x662F; &#x2212;273.15&#xB0;C, Kelvin &#x7D76;&#x5C0D;&#x6EAB;&#x5EA6;1K&#x548C;&#x651D;&#x6C0F;&#x5EA6;1&#xB0;C&#x7684;&#x55AE;&#x4F4D;&#x9593;&#x9694;&#x662F;&#x4E00;&#x6A23;&#x7684;.</p>
<p>&#x5728;&#x6BCF;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x7684;&#x5305;&#x8072;&#x660E;&#x524D;&#x50C5;&#x8DDF;&#x7740;&#x7684;&#x8A3B;&#x91CB;&#x662F;&#x5305;&#x8A3B;&#x91CB;&#xFF08;&#xA7;10.7.4&#xFF09;&#x3002;&#x901A;&#x5E38;&#xFF0C;&#x5305;&#x8A3B;&#x91CB;&#x7684;&#x7B2C;&#x4E00;&#x53E5;&#x61C9;&#x8A72;&#x5148;&#x662F;&#x5305;&#x7684;&#x529F;&#x80FD;&#x6982;&#x8981;&#x8AAC;&#x660E;&#x3002;&#x4E00;&#x500B;&#x5305;&#x901A;&#x5E38;&#x96BB;&#x6709;&#x4E00;&#x500B;&#x6E90;&#x6587;&#x4EF6;&#x6709;&#x5305;&#x8A3B;&#x91CB;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x5982;&#x679C;&#x6709;&#x591A;&#x500B;&#x5305;&#x8A3B;&#x91CB;&#xFF0C;&#x76EE;&#x524D;&#x7684;&#x6587;&#x6A94;&#x5DE5;&#x5177;&#x6703;&#x6839;&#x64DA;&#x6E90;&#x6587;&#x4EF6;&#x540D;&#x7684;&#x5148;&#x5F8C;&#x9806;&#x5E8F;&#x5C07;&#x5B83;&#x5011;&#x93C8;&#x63A5;&#x7232;&#x4E00;&#x500B;&#x5305;&#x8A3B;&#x91CB;&#xFF09;&#x3002;&#x5982;&#x679C;&#x5305;&#x8A3B;&#x91CB;&#x5F88;&#x5927;&#xFF0C;&#x901A;&#x5E38;&#x6703;&#x653E;&#x5230;&#x4E00;&#x500B;&#x7368;&#x7ACB;&#x7684;doc.go&#x6587;&#x4EF6;&#x4E2D;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 2.1&#xFF1A;</strong> &#x5411;tempconv&#x5305;&#x6DFB;&#x52A0;&#x985E;&#x578B;&#x3001;&#x5E38;&#x91CF;&#x548C;&#x51FD;&#x6578;&#x7528;&#x4F86;&#x8655;&#x7406;Kelvin&#x7D76;&#x5C0D;&#x6EAB;&#x5EA6;&#x7684;&#x8F49;&#x63DB;&#xFF0C;Kelvin &#x7D76;&#x5C0D;&#x96F6;&#x5EA6;&#x662F;&#x2212;273.15&#xB0;C&#xFF0C;Kelvin&#x7D76;&#x5C0D;&#x6EAB;&#x5EA6;1K&#x548C;&#x651D;&#x6C0F;&#x5EA6;1&#xB0;C&#x7684;&#x55AE;&#x4F4D;&#x9593;&#x9694;&#x662F;&#x4E00;&#x6A23;&#x7684;&#x3002;</p>
<h3 id="261-&#x5C0E;&#x5165;&#x5305;">2.6.1. &#x5C0E;&#x5165;&#x5305;</h3>
<p>&#x5728;Go&#x7A0B;&#x5E8F;&#x4E2D;, &#x6BCF;&#x500B;&#x5305;&#x90FD;&#x662F;&#x6709;&#x4E00;&#x500B;&#x5168;&#x5C40;&#x552F;&#x4E00;&#x7684;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;. &#x8072;&#x660E;&#x4E2D;&#x985E;&#x4F3C; &quot;gopl.io/ch2/tempconv&quot; &#x7684;&#x5B57;&#x7B26;&#x4E32;&#x5C0D;&#x61C9;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;. &#x8A9E;&#x8A00;&#x7684;&#x898F;&#x8303;&#x4F75;&#x6C92;&#x6709;&#x5B9A;&#x7FA9;&#x9019;&#x4E9B;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x5177;&#x9AD4;&#x542B;&#x7FA9;&#x6216;&#x5305;&#x4F86;&#x81EA;&#x54EA;&#x91CC;, &#x5B83;&#x5011;&#x662F;&#x7531;&#x5DE5;&#x5177;&#x4F86;&#x89E3;&#x91CB;. &#x7576;&#x4F7F;&#x7528; go &#x5DE5;&#x5177;&#x7BB1;&#x6642;(&#x7B2C;&#x5341;&#x7AE0;), &#x4E00;&#x500B;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;&#x4EE3;&#x8868;&#x4E00;&#x500B;&#x76EE;&#x9332;&#x4E2D;&#x7684;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;Go&#x6E90;&#x6587;&#x4EF6;.</p>
<p>&#x9664;&#x4E86;&#x5230;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;, &#x6BCF;&#x500B;&#x5305;&#x9084;&#x6709;&#x4E00;&#x500B;&#x5305;&#x540D;, &#x5305;&#x540D;&#x4E00;&#x822C;&#x662F;&#x77ED;&#x5C0F;&#x7684;(&#x4E5F;&#x4E0D;&#x8981;&#x6C42;&#x662F;&#x662F;&#x552F;&#x4E00;&#x7684;), &#x5305;&#x540D;&#x5728;&#x5305;&#x7684;&#x8072;&#x660E;&#x8655;&#x6307;&#x5B9A;. &#x6309;&#x7167;&#x6163;&#x4F8B;, &#x4E00;&#x500B;&#x5305;&#x7684;&#x540D;&#x5B57;&#x548C;&#x5305;&#x7684;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;&#x7684;&#x6700;&#x5F8C;&#x4E00;&#x500B;&#x5B57;&#x6BB5;&#x76F8;&#x540C;, &#x4F8B;&#x5982; gopl.io/ch2/tempconv &#x5305;&#x7684;&#x540D;&#x5B57;&#x662F; tempconv.</p>
<p>&#x8981;&#x4F7F;&#x7528; gopl.io/ch2/tempconv &#x5305;, &#x9700;&#x8981;&#x5148;&#x5C0E;&#x5165;:</p>
<p>&#x5728;Go&#x8A9E;&#x8A00;&#x7A0B;&#x5E8F;&#x4E2D;&#xFF0C;&#x6BCF;&#x500B;&#x5305;&#x90FD;&#x662F;&#x6709;&#x4E00;&#x500B;&#x5168;&#x5C40;&#x552F;&#x4E00;&#x7684;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;&#x3002;&#x5C0E;&#x5165;&#x8A9E;&#x53E5;&#x4E2D;&#x985E;&#x4F3C;&quot;gopl.io/ch2/tempconv&quot;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x5C0D;&#x61C9;&#x5305;&#x7684;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;&#x3002;Go&#x8A9E;&#x8A00;&#x7684;&#x898F;&#x8303;&#x4F75;&#x6C92;&#x6709;&#x5B9A;&#x7FA9;&#x9019;&#x4E9B;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x5177;&#x9AD4;&#x542B;&#x7FA9;&#x6216;&#x5305;&#x4F86;&#x81EA;&#x54EA;&#x91CC;&#xFF0C;&#x5B83;&#x5011;&#x662F;&#x7531;&#x69CB;&#x5EFA;&#x5DE5;&#x5177;&#x4F86;&#x89E3;&#x91CB;&#x7684;&#x3002;&#x7576;&#x4F7F;&#x7528;Go&#x8A9E;&#x8A00;&#x81EA;&#x5E36;&#x7684;go&#x5DE5;&#x5177;&#x7BB1;&#x6642;&#xFF08;&#x7B2C;&#x5341;&#x7AE0;&#xFF09;&#xFF0C;&#x4E00;&#x500B;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;&#x4EE3;&#x8868;&#x4E00;&#x500B;&#x76EE;&#x9332;&#x4E2D;&#x7684;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;Go&#x6E90;&#x6587;&#x4EF6;&#x3002;</p>
<p>&#x9664;&#x4E86;&#x5305;&#x7684;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;&#xFF0C;&#x6BCF;&#x500B;&#x5305;&#x9084;&#x6709;&#x4E00;&#x500B;&#x5305;&#x540D;&#xFF0C;&#x5305;&#x540D;&#x4E00;&#x822C;&#x662F;&#x77ED;&#x5C0F;&#x7684;&#x540D;&#x5B57;&#xFF08;&#x4F75;&#x4E0D;&#x8981;&#x6C42;&#x5305;&#x540D;&#x662F;&#x552F;&#x4E00;&#x7684;&#xFF09;&#xFF0C;&#x5305;&#x540D;&#x5728;&#x5305;&#x7684;&#x8072;&#x660E;&#x8655;&#x6307;&#x5B9A;&#x3002;&#x6309;&#x7167;&#x6163;&#x4F8B;&#xFF0C;&#x4E00;&#x500B;&#x5305;&#x7684;&#x540D;&#x5B57;&#x548C;&#x5305;&#x7684;&#x5C0E;&#x5165;&#x8DEF;&#x5F91;&#x7684;&#x6700;&#x5F8C;&#x4E00;&#x500B;&#x5B57;&#x6BB5;&#x76F8;&#x540C;&#xFF0C;&#x4F8B;&#x5982;gopl.io/ch2/tempconv&#x5305;&#x7684;&#x540D;&#x5B57;&#x4E00;&#x822C;&#x662F;tempconv&#x3002;</p>
<p>&#x8981;&#x4F7F;&#x7528;gopl.io/ch2/tempconv&#x5305;&#xFF0C;&#x9700;&#x8981;&#x5148;&#x5C0E;&#x5165;&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch2/cf
<span class="hljs-comment">// Cf converts its numeric argument to Celsius and Fahrenheit. </span>
<span class="hljs-keyword">package</span> main
@@ -2095,8 +2096,8 @@ Kelvin &#x7D76;&#x5C0D;&#x96F6;&#x5EA6;&#x662F; &#x2212;273.15&#xB0;C, Kelvin &#
}
}
</code></pre>
<p>&#x5C0E;&#x5165;&#x8072;&#x660E;&#x5C07;&#x5C0E;&#x5165;&#x7684;&#x5305;&#x7D81;&#x5B9A;&#x5230;&#x4E00;&#x500B;&#x77ED;&#x5C0F;&#x7684;&#x540D;&#x5B57;, &#x7136;&#x5F8C;&#x901A;&#x904E;&#x8A72;&#x540D;&#x5B57;&#x5C31;&#x53EF;&#x4EE5;&#x5F15;&#x7528;&#x5305;&#x4E2D;&#x5C0E;&#x9F63;&#x7684;&#x5168;&#x90E8;&#x5167;&#x5BB9;. &#x4E0A;&#x9762;&#x7684;&#x5C0E;&#x5165;&#x8072;&#x660E;&#x5C07;&#x5141;&#x8A31;&#x6211;&#x5011;&#x4EE5; tempconv.CToF &#x7684;&#x65B9;&#x5F0F;&#x4F86;&#x8A2A;&#x554F; gopl.io/ch2/tempconv &#x5305;&#x4E2D;&#x7684;&#x5167;&#x5BB9;. &#x9ED8;&#x8A8D;&#x60C5;&#x6CC1;&#x4E0B;, &#x5C0E;&#x5165;&#x7684;&#x5305;&#x7D81;&#x5B9A;&#x5230; tempconv &#x540D;&#x5B57;, &#x4F46;&#x662F;&#x6211;&#x5011;&#x4E5F;&#x53EF;&#x4EE5;&#x7D81;&#x5B9A;&#x5230;&#x53E6;&#x4E00;&#x500B;&#x540D;&#x7A31;, &#x4EE5;&#x907F;&#x514D;&#x540D;&#x5B57;&#x885D;&#x7A81;(&#xA7;10.3).</p>
<p>cf &#x7A0B;&#x5E8F;&#x5C07;&#x547D;&#x4EE4;&#x884C;&#x8F38;&#x5165;&#x7684;&#x4E00;&#x500B;&#x6EAB;&#x5EA6;&#x5728; Celsius &#x548C; Fahrenheit &#x4E4B;&#x9593;&#x8F49;&#x63DB;:</p>
<p>&#x5C0E;&#x5165;&#x8A9E;&#x53E5;&#x5C07;&#x5C0E;&#x5165;&#x7684;&#x5305;&#x7D81;&#x5B9A;&#x5230;&#x4E00;&#x500B;&#x77ED;&#x5C0F;&#x7684;&#x540D;&#x5B57;&#xFF0C;&#x7136;&#x5F8C;&#x901A;&#x904E;&#x8A72;&#x77ED;&#x5C0F;&#x7684;&#x540D;&#x5B57;&#x5C31;&#x53EF;&#x4EE5;&#x5F15;&#x7528;&#x5305;&#x4E2D;&#x5C0E;&#x51FA;&#x7684;&#x5168;&#x90E8;&#x5167;&#x5BB9;&#x3002;&#x4E0A;&#x9762;&#x7684;&#x5C0E;&#x5165;&#x8072;&#x660E;&#x5C07;&#x5141;&#x8A31;&#x6211;&#x5011;&#x4EE5;tempconv.CToF&#x7684;&#x5F62;&#x5F0F;&#x4F86;&#x8A2A;&#x554F;gopl.io/ch2/tempconv&#x5305;&#x4E2D;&#x7684;&#x5167;&#x5BB9;&#x3002;&#x5728;&#x9ED8;&#x8A8D;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x5C0E;&#x5165;&#x7684;&#x5305;&#x7D81;&#x5B9A;&#x5230;tempconv&#x540D;&#x5B57;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;&#x9019;&#x5305;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x6307;&#x5B9A;&#x7684;&#x540D;&#x5B57;&#xFF09;&#xFF0C;&#x4F46;&#x662F;&#x6211;&#x5011;&#x4E5F;&#x53EF;&#x4EE5;&#x7D81;&#x5B9A;&#x5230;&#x53E6;&#x4E00;&#x500B;&#x540D;&#x7A31;&#xFF0C;&#x4EE5;&#x907F;&#x514D;&#x540D;&#x5B57;&#x885D;&#x7A81;&#xFF08;&#xA7;10.3&#xFF09;&#x3002;</p>
<p>cf&#x7A0B;&#x5E8F;&#x5C07;&#x547D;&#x4EE4;&#x884C;&#x8F38;&#x5165;&#x7684;&#x4E00;&#x500B;&#x6EAB;&#x5EA6;&#x5728;Celsius&#x548C;Fahrenheit&#x6EAB;&#x5EA6;&#x55AE;&#x4F4D;&#x4E4B;&#x9593;&#x8F49;&#x63DB;&#xFF1A;</p>
<pre><code>$ go build gopl.io/ch2/cf
$ ./cf 32
32&#xB0;F = 0&#xB0;C, 32&#xB0;C = 89.6&#xB0;F
@@ -2104,25 +2105,24 @@ $ ./cf 212
212&#xB0;F = 100&#xB0;C, 212&#xB0;C = 413.6&#xB0;F
$ ./cf -40
-40&#xB0;F = -40&#xB0;C, -40&#xB0;C = -40&#xB0;F
</code></pre><p>&#x5982;&#x679C;&#x5C0E;&#x5165;&#x4E00;&#x500B;&#x5305;, &#x4F46;&#x662F;&#x6C92;&#x6709;&#x4F7F;&#x7528;&#x8A72;&#x5305;&#x5C07;&#x88AB;&#x7576;&#x4F5C;&#x4E00;&#x500B;&#x932F;&#x8AA4;. &#x9019;&#x7A2E;&#x5F37;&#x88FD;&#x6AA2;&#x6E2C;&#x53EF;&#x4EE5;&#x6709;&#x6548;&#x6E1B;&#x5C11;&#x4E0D;&#x5FC5;&#x8981;&#x7684;&#x4F9D;&#x8CF4;, &#x96D6;&#x7136;&#x5728;&#x8ABF;&#x8A66;&#x671F;&#x9593;&#x6703;&#x8B93;&#x4EBA;&#x8A0E;&#x53AD;, &#x56E0;&#x7232;&#x522A;&#x9664;&#x4E00;&#x500B;&#x985E;&#x4F3C; log.Print(&quot;got here!&quot;) &#x7684;&#x6253;&#x5370;&#x53EF;&#x80FD;&#x5C0E;&#x81F4;&#x9700;&#x8981;&#x540C;&#x6642;&#x522A;&#x9664; log &#x5305;&#x5C0E;&#x5165;&#x8072;&#x660E;, &#x5426;&#x5247;, &#x7DE8;&#x8B6F;&#x5668;&#x5C07;&#x6703;&#x767C;&#x9F63;&#x4E00;&#x500B;&#x932F;&#x8AA4;. &#x5728;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;, &#x6211;&#x5011;&#x9700;&#x8981;&#x5C07;&#x4E0D;&#x5FC5;&#x8981;&#x7684;&#x5C0E;&#x5165;&#x522A;&#x9664;&#x6216;&#x8A3B;&#x91CB;&#x6389;.</p>
<p>&#x4E0D;&#x904E;&#x6709;&#x66F4;&#x597D;&#x7684;&#x89E3;&#x6C7A;&#x65B9;&#x6848;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; golang.org/x/tools/cmd/goimports &#x5DE5;&#x5177;, &#x5B83;&#x53EF;&#x4EE5;&#x6839;&#x64DA;&#x9700;&#x8981;&#x81EA;&#x52D5;&#x6DFB;&#x52A0;&#x6216;&#x522A;&#x9664;&#x5C0E;&#x5165;&#x7684;&#x5305;; &#x8A31;&#x591A;&#x7DE8;&#x8F2F;&#x5668;&#x90FD;&#x53EF;&#x4EE5;&#x96C6;&#x6210; goimports &#x5DE5;&#x5177;, &#x7136;&#x5F8C;&#x5728;&#x4FDD;&#x5B58;&#x6587;&#x4EF6;&#x7684;&#x6642;&#x5019;&#x81EA;&#x52D5;&#x5141;&#x8A31;&#x5B83;. &#x985E;&#x4F3C;&#x7684;&#x9084;&#x6709; gofmt &#x5DE5;&#x5177;, &#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x683C;&#x5F0F;&#x5316;Go&#x6E90;&#x6587;&#x4EF6;.</p>
<p><strong>&#x7DF4;&#x7FD2; 2.2:</strong> &#x5BEB;&#x4E00;&#x500B;&#x901A;&#x7528;&#x7684;&#x55AE;&#x4F4D;&#x8F49;&#x63DB;&#x7A0B;&#x5E8F;, &#x7528;&#x985E;&#x4F3C; cf &#x7A0B;&#x5E8F;&#x7684;&#x65B9;&#x5F0F;&#x5F9E;&#x547D;&#x4EE4;&#x884C;&#x8B80;&#x53D6;&#x53C3;&#x6578;, &#x5982;&#x679C;&#x7F3A;&#x7701;&#x7684;&#x8A71;&#x5247;&#x662F;&#x5F9E;&#x6A19;&#x6E96;&#x8F38;&#x5165;&#x8B80;&#x53D6;&#x53C3;&#x6578;, &#x7136;&#x5F8C;&#x505A;&#x985E;&#x4F3C; Celsius &#x548C; Fahrenheit &#x7684;&#x8F49;&#x63DB;,
&#x9577;&#x5EA6;&#x55AE;&#x4F4D;&#x5C0D;&#x61C9;&#x82F1;&#x5C3A;&#x548C;&#x7C73;, &#x91CD;&#x91CF;&#x55AE;&#x4F4D;&#x5C0D;&#x61C9;&#x78C5;&#x548C;&#x516C;&#x65A4; &#x7B49;&#x7B49;.</p>
</code></pre><p>&#x5982;&#x679C;&#x5C0E;&#x5165;&#x4E86;&#x4E00;&#x500B;&#x5305;&#xFF0C;&#x4F46;&#x662F;&#x53C8;&#x6C92;&#x6709;&#x4F7F;&#x7528;&#x8A72;&#x5305;&#x5C07;&#x88AB;&#x7576;&#x4F5C;&#x4E00;&#x500B;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;&#x8655;&#x7406;&#x3002;&#x9019;&#x7A2E;&#x5F37;&#x88FD;&#x898F;&#x5247;&#x53EF;&#x4EE5;&#x6709;&#x6548;&#x6E1B;&#x5C11;&#x4E0D;&#x5FC5;&#x8981;&#x7684;&#x4F9D;&#x8CF4;&#xFF0C;&#x96D6;&#x7136;&#x5728;&#x8ABF;&#x8A66;&#x671F;&#x9593;&#x53EF;&#x80FD;&#x6703;&#x8B93;&#x4EBA;&#x8A0E;&#x53AD;&#xFF0C;&#x56E0;&#x7232;&#x522A;&#x9664;&#x4E00;&#x500B;&#x985E;&#x4F3C;log.Print(&quot;got here!&quot;)&#x7684;&#x6253;&#x5370;&#x8A9E;&#x53E5;&#x53EF;&#x80FD;&#x5C0E;&#x81F4;&#x9700;&#x8981;&#x540C;&#x6642;&#x522A;&#x9664;log&#x5305;&#x5C0E;&#x5165;&#x8072;&#x660E;&#xFF0C;&#x5426;&#x5247;&#xFF0C;&#x7DE8;&#x8B6F;&#x5668;&#x5C07;&#x6703;&#x767C;&#x51FA;&#x4E00;&#x500B;&#x932F;&#x8AA4;&#x3002;&#x5728;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x6211;&#x5011;&#x9700;&#x8981;&#x5C07;&#x4E0D;&#x5FC5;&#x8981;&#x7684;&#x5C0E;&#x5165;&#x522A;&#x9664;&#x6216;&#x8A3B;&#x91CB;&#x6389;&#x3002;</p>
<p>&#x4E0D;&#x904E;&#x6709;&#x66F4;&#x597D;&#x7684;&#x89E3;&#x6C7A;&#x65B9;&#x6848;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;golang.org/x/tools/cmd/goimports&#x5C0E;&#x5165;&#x5DE5;&#x5177;&#xFF0C;&#x5B83;&#x53EF;&#x4EE5;&#x6839;&#x64DA;&#x9700;&#x8981;&#x81EA;&#x52D5;&#x6DFB;&#x52A0;&#x6216;&#x522A;&#x9664;&#x5C0E;&#x5165;&#x7684;&#x5305;&#xFF1B;&#x8A31;&#x591A;&#x7DE8;&#x8F2F;&#x5668;&#x90FD;&#x53EF;&#x4EE5;&#x96C6;&#x6210;goimports&#x5DE5;&#x5177;&#xFF0C;&#x7136;&#x5F8C;&#x5728;&#x4FDD;&#x5B58;&#x6587;&#x4EF6;&#x7684;&#x6642;&#x5019;&#x81EA;&#x52D5;&#x904B;&#x884C;&#x3002;&#x985E;&#x4F3C;&#x7684;&#x9084;&#x6709;gofmt&#x5DE5;&#x5177;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x4F86;&#x683C;&#x5F0F;&#x5316;Go&#x6E90;&#x6587;&#x4EF6;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 2.2&#xFF1A;</strong> &#x5BEB;&#x4E00;&#x500B;&#x901A;&#x7528;&#x7684;&#x55AE;&#x4F4D;&#x8F49;&#x63DB;&#x7A0B;&#x5E8F;&#xFF0C;&#x7528;&#x985E;&#x4F3C;cf&#x7A0B;&#x5E8F;&#x7684;&#x65B9;&#x5F0F;&#x5F9E;&#x547D;&#x4EE4;&#x884C;&#x8B80;&#x53D6;&#x53C3;&#x6578;&#xFF0C;&#x5982;&#x679C;&#x7F3A;&#x7701;&#x7684;&#x8A71;&#x5247;&#x662F;&#x5F9E;&#x6A19;&#x6E96;&#x8F38;&#x5165;&#x8B80;&#x53D6;&#x53C3;&#x6578;&#xFF0C;&#x7136;&#x5F8C;&#x505A;&#x985E;&#x4F3C;Celsius&#x548C;Fahrenheit&#x7684;&#x55AE;&#x4F4D;&#x8F49;&#x63DB;&#xFF0C;&#x9577;&#x5EA6;&#x55AE;&#x4F4D;&#x53EF;&#x4EE5;&#x5C0D;&#x61C9;&#x82F1;&#x5C3A;&#x548C;&#x7C73;&#xFF0C;&#x91CD;&#x91CF;&#x55AE;&#x4F4D;&#x53EF;&#x4EE5;&#x5C0D;&#x61C9;&#x78C5;&#x548C;&#x516C;&#x65A4;&#x7B49;&#x3002;</p>
<h3 id="262-&#x5305;&#x7684;&#x521D;&#x59CB;&#x5316;">2.6.2. &#x5305;&#x7684;&#x521D;&#x59CB;&#x5316;</h3>
<p>&#x5305;&#x7684;&#x521D;&#x59CB;&#x5316;&#x9996;&#x5148;&#x662F;&#x89E3;&#x6C7A;&#x5305;&#x7D1A;&#x8B8A;&#x91CF;&#x7684;&#x4F9D;&#x8CF4;&#x9806;&#x5E8F;, &#x7136;&#x5F8C;&#x5B89;&#x88DD;&#x5305;&#x7D1A;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x9F63;&#x73FE;&#x7684;&#x9806;&#x5E8F;&#x4F9D;&#x6B21;&#x521D;&#x59CB;&#x5316;:</p>
<p>&#x5305;&#x7684;&#x521D;&#x59CB;&#x5316;&#x9996;&#x5148;&#x662F;&#x89E3;&#x6C7A;&#x5305;&#x7D1A;&#x8B8A;&#x91CF;&#x7684;&#x4F9D;&#x8CF4;&#x9806;&#x5E8F;&#xFF0C;&#x7136;&#x5F8C;&#x5B89;&#x7167;&#x5305;&#x7D1A;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x51FA;&#x73FE;&#x7684;&#x9806;&#x5E8F;&#x4F9D;&#x6B21;&#x521D;&#x59CB;&#x5316;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> a = b + c <span class="hljs-comment">// a &#x7B2C;&#x4E09;&#x500B;&#x521D;&#x59CB;&#x5316;, &#x7232; 3</span>
<span class="hljs-keyword">var</span> b = f() <span class="hljs-comment">// b &#x7B2C;&#x4E8C;&#x500B;&#x521D;&#x59CB;&#x5316;, &#x7232; 2, &#x901A;&#x904E;&#x8ABF;&#x7528; f (&#x4F9D;&#x8CF4;c)</span>
<span class="hljs-keyword">var</span> c = <span class="hljs-number">1</span> <span class="hljs-comment">// c &#x7B2C;&#x4E00;&#x500B;&#x521D;&#x59CB;&#x5316;, &#x7232; 1</span>
<span class="hljs-keyword">func</span> f() <span class="hljs-typename">int</span> { <span class="hljs-keyword">return</span> c + <span class="hljs-number">1</span> }
</code></pre>
<p>&#x5982;&#x679C;&#x5305;&#x4E2D;&#x542B;&#x6709;&#x591A;&#x500B; .go &#x6587;&#x4EF6;, &#x5B83;&#x5011;&#x6309;&#x7167;&#x767C;&#x7D66;&#x7DE8;&#x8B6F;&#x5668;&#x7684;&#x9806;&#x5E8F;&#x9032;&#x884C;&#x521D;&#x59CB;&#x5316;, Go&#x7684;&#x69CB;&#x5EFA;&#x5DE5;&#x5177;&#x9996;&#x5148;&#x5C07; .go &#x6587;&#x4EF6;&#x6839;&#x64DA;&#x6587;&#x4EF6;&#x540D;&#x6392;&#x5E8F;, &#x7136;&#x5F8C;&#x4F9D;&#x6B21;&#x8ABF;&#x7528;&#x7DE8;&#x8B6F;&#x5668;&#x7DE8;&#x8B6F;.</p>
<p>&#x5C0D;&#x65BC;&#x5728;&#x5305;&#x7D1A;&#x522B;&#x8072;&#x660E;&#x7684;&#x8B8A;&#x91CF;, &#x5982;&#x679C;&#x6709;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x5247;&#x7528;&#x8868;&#x9054;&#x5F0F;&#x521D;&#x59CB;&#x5316;, &#x9084;&#x6709;&#x4E00;&#x4E9B;&#x6C92;&#x6709;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x7684;, &#x4F8B;&#x5982; &#x67D0;&#x4E9B;&#x8868;&#x683C;&#x6578;&#x64DA; &#x521D;&#x59CB;&#x5316;&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x8CE6;&#x503C;&#x904E;&#x7A0B;. &#x5728;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;, &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7528; init &#x521D;&#x59CB;&#x5316;&#x51FD;&#x6578;&#x4F86;&#x7C21;&#x5316;&#x5DE5;&#x4F5C;. &#x6BCF;&#x500B;&#x6587;&#x4EF6;&#x90FD;&#x53EF;&#x4EE5;&#x5305;&#x542B;&#x591A;&#x500B; init &#x521D;&#x59CB;&#x5316;&#x51FD;&#x6578;</p>
<p>&#x5982;&#x679C;&#x5305;&#x4E2D;&#x542B;&#x6709;&#x591A;&#x500B;.go&#x6E90;&#x6587;&#x4EF6;&#xFF0C;&#x5B83;&#x5011;&#x5C07;&#x6309;&#x7167;&#x767C;&#x7D66;&#x7DE8;&#x8B6F;&#x5668;&#x7684;&#x9806;&#x5E8F;&#x9032;&#x884C;&#x521D;&#x59CB;&#x5316;&#xFF0C;Go&#x8A9E;&#x8A00;&#x7684;&#x69CB;&#x5EFA;&#x5DE5;&#x5177;&#x9996;&#x5148;&#x6703;&#x5C07;.go&#x6587;&#x4EF6;&#x6839;&#x64DA;&#x6587;&#x4EF6;&#x540D;&#x6392;&#x5E8F;&#xFF0C;&#x7136;&#x5F8C;&#x4F9D;&#x6B21;&#x8ABF;&#x7528;&#x7DE8;&#x8B6F;&#x5668;&#x7DE8;&#x8B6F;&#x3002;</p>
<p>&#x5C0D;&#x65BC;&#x5728;&#x5305;&#x7D1A;&#x522B;&#x8072;&#x660E;&#x7684;&#x8B8A;&#x91CF;&#xFF0C;&#x5982;&#x679C;&#x6709;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x5247;&#x7528;&#x8868;&#x9054;&#x5F0F;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x9084;&#x6709;&#x4E00;&#x4E9B;&#x6C92;&#x6709;&#x521D;&#x59CB;&#x5316;&#x8868;&#x9054;&#x5F0F;&#x7684;&#xFF0C;&#x4F8B;&#x5982;&#x67D0;&#x4E9B;&#x8868;&#x683C;&#x6578;&#x64DA;&#x521D;&#x59CB;&#x5316;&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x8CE6;&#x503C;&#x904E;&#x7A0B;&#x3002;&#x5728;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7528;&#x4E00;&#x500B;&#x7279;&#x6B8A;&#x7684;init&#x521D;&#x59CB;&#x5316;&#x51FD;&#x6578;&#x4F86;&#x7C21;&#x5316;&#x521D;&#x59CB;&#x5316;&#x5DE5;&#x4F5C;&#x3002;&#x6BCF;&#x500B;&#x6587;&#x4EF6;&#x90FD;&#x53EF;&#x4EE5;&#x5305;&#x542B;&#x591A;&#x500B;init&#x521D;&#x59CB;&#x5316;&#x51FD;&#x6578;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> init() { <span class="hljs-comment">/* ... */</span> }
</code></pre>
<p>&#x9019;&#x6A23;&#x7684;init&#x521D;&#x59CB;&#x5316;&#x51FD;&#x6578;&#x9664;&#x4E86;&#x4E0D;&#x80FD;&#x88AB;&#x8ABF;&#x7528;&#x6216;&#x5F15;&#x7528;&#x5916;, &#x5176;&#x4ED6;&#x884C;&#x7232;&#x548C;&#x666E;&#x901A;&#x51FD;&#x6578;&#x985E;&#x4F3C;. &#x5728;&#x6BCF;&#x500B;&#x6587;&#x4EF6;&#x4E2D;&#x7684;init&#x521D;&#x59CB;&#x5316;&#x51FD;&#x6578;, &#x5728;&#x7A0B;&#x5E8F;&#x958B;&#x59CB;&#x57F7;&#x884C;&#x6642;&#x6309;&#x7167;&#x5B83;&#x5011;&#x8072;&#x660E;&#x7684;&#x9806;&#x5E8F;&#x88AB;&#x81EA;&#x52D5;&#x8ABF;&#x7528;.</p>
<p>&#x6BCF;&#x500B;&#x5305;&#x5728;&#x89E3;&#x6C7A;&#x4F9D;&#x8CF4;&#x7684;&#x524D;&#x63D0;&#x4E0B;, &#x4EE5;&#x5C0E;&#x5165;&#x8072;&#x660E;&#x7684;&#x9806;&#x5E8F;&#x521D;&#x59CB;&#x5316;, &#x6BCF;&#x500B;&#x5305;&#x96BB;&#x6703;&#x88AB;&#x521D;&#x59CB;&#x5316;&#x4E00;&#x6B21;. &#x56E0;&#x6B64;, &#x5982;&#x679C;&#x4E00;&#x500B; p &#x5305;&#x5C0E;&#x5165;&#x4E86; q &#x5305;, &#x90A3;&#x9EBD;&#x5728; p &#x5305;&#x521D;&#x59CB;&#x5316;&#x7684;&#x6642;&#x5019;&#x53EF;&#x4EE5;&#x8A8D;&#x7232; q &#x5305;&#x5DF2;&#x7D93;&#x521D;&#x59CB;&#x5316;&#x904E;&#x4E86;. &#x521D;&#x59CB;&#x5316;&#x5DE5;&#x4F5C;&#x662F;&#x81EA;&#x4E0B;&#x800C;&#x4E0A;&#x9032;&#x884C;&#x7684;, main &#x5305;&#x6700;&#x5F8C;&#x88AB;&#x521D;&#x59CB;&#x5316;. &#x4EE5;&#x9019;&#x7A2E;&#x65B9;&#x5F0F;, &#x78BA;&#x4FDD; &#x5728; main &#x51FD;&#x6578;&#x57F7;&#x884C;&#x4E4B;&#x524D;, &#x6240;&#x6709;&#x7684;&#x5305;&#x90FD;&#x5DF2;&#x7D93;&#x521D;&#x59CB;&#x5316;&#x4E86;.</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x5B9A;&#x7FA9;&#x4E86;&#x4E00;&#x500B; PopCount &#x51FD;&#x6578;, &#x7528;&#x65BC;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x6578;&#x5B57;&#x4E2D;&#x542B;&#x4E8C;&#x9032;&#x88FD;1bit&#x7684;&#x500B;&#x6578;. &#x5B83;&#x4F7F;&#x7528; init &#x521D;&#x59CB;&#x5316;&#x51FD;&#x6578;&#x4F86;&#x751F;&#x6210;&#x8F14;&#x52A9;&#x8868;&#x683C; pc, pc &#x8868;&#x683C;&#x7528;&#x65BC;&#x8655;&#x7406;&#x6BCF;&#x500B;8bit&#x5BEC;&#x5EA6;&#x7684;&#x6578;&#x5B57;&#x542B;&#x4E8C;&#x9032;&#x88FD;&#x7684;1bit&#x7684;&#x500B;&#x6578;, &#x9019;&#x6A23;&#x7684;&#x8A71;&#x5728;&#x8655;&#x7406;64bit&#x5BEC;&#x5EA6;&#x7684;&#x6578;&#x5B57;&#x6642;&#x5C31;&#x6C92;&#x6709;&#x5FC5;&#x8981;&#x5FAA;&#x74B0;64&#x6B21;, &#x96BB;&#x9700;&#x8981;8&#x6B21;&#x67FB;&#x8868;&#x5C31;&#x53EF;&#x4EE5;&#x4E86;. (&#x9019;&#x4F75;&#x4E0D;&#x662F;&#x6700;&#x5FEB;&#x7684;&#x7D71;&#x8A08;1bit&#x6578;&#x76EE;&#x7684;&#x7B97;&#x6CD5;, &#x4F46;&#x662F;&#x4ED6;&#x53EF;&#x4EE5;&#x65B9;&#x4FBF;&#x6F14;&#x793A;init&#x51FD;&#x6578;&#x7684;&#x7528;&#x6CD5;, &#x4F75;&#x4E14;&#x6F14;&#x793A;&#x4E86;&#x5982;&#x679C;&#x9810;&#x751F;&#x6210;&#x8F14;&#x52A9;&#x8868;&#x683C;, &#x9019;&#x662F;&#x7DE8;&#x7A0B;&#x4E2D;&#x5E38;&#x7528;&#x7684;&#x6280;&#x8853;.)</p>
<p>&#x9019;&#x6A23;&#x7684;init&#x521D;&#x59CB;&#x5316;&#x51FD;&#x6578;&#x9664;&#x4E86;&#x4E0D;&#x80FD;&#x88AB;&#x8ABF;&#x7528;&#x6216;&#x5F15;&#x7528;&#x5916;&#xFF0C;&#x5176;&#x4ED6;&#x884C;&#x7232;&#x548C;&#x666E;&#x901A;&#x51FD;&#x6578;&#x985E;&#x4F3C;&#x3002;&#x5728;&#x6BCF;&#x500B;&#x6587;&#x4EF6;&#x4E2D;&#x7684;init&#x521D;&#x59CB;&#x5316;&#x51FD;&#x6578;&#xFF0C;&#x5728;&#x7A0B;&#x5E8F;&#x958B;&#x59CB;&#x57F7;&#x884C;&#x6642;&#x6309;&#x7167;&#x5B83;&#x5011;&#x8072;&#x660E;&#x7684;&#x9806;&#x5E8F;&#x88AB;&#x81EA;&#x52D5;&#x8ABF;&#x7528;&#x3002;</p>
<p>&#x6BCF;&#x500B;&#x5305;&#x5728;&#x89E3;&#x6C7A;&#x4F9D;&#x8CF4;&#x7684;&#x524D;&#x63D0;&#x4E0B;&#xFF0C;&#x4EE5;&#x5C0E;&#x5165;&#x8072;&#x660E;&#x7684;&#x9806;&#x5E8F;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x6BCF;&#x500B;&#x5305;&#x96BB;&#x6703;&#x88AB;&#x521D;&#x59CB;&#x5316;&#x4E00;&#x6B21;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x5982;&#x679C;&#x4E00;&#x500B;p&#x5305;&#x5C0E;&#x5165;&#x4E86;q&#x5305;&#xFF0C;&#x90A3;&#x9EBD;&#x5728;p&#x5305;&#x521D;&#x59CB;&#x5316;&#x7684;&#x6642;&#x5019;&#x53EF;&#x4EE5;&#x8A8D;&#x7232;q&#x5305;&#x5FC5;&#x7136;&#x5DF2;&#x7D93;&#x521D;&#x59CB;&#x5316;&#x904E;&#x4E86;&#x3002;&#x521D;&#x59CB;&#x5316;&#x5DE5;&#x4F5C;&#x662F;&#x81EA;&#x4E0B;&#x800C;&#x4E0A;&#x9032;&#x884C;&#x7684;&#xFF0C;main&#x5305;&#x6700;&#x5F8C;&#x88AB;&#x521D;&#x59CB;&#x5316;&#x3002;&#x4EE5;&#x9019;&#x7A2E;&#x65B9;&#x5F0F;&#xFF0C;&#x53EF;&#x4EE5;&#x78BA;&#x4FDD;&#x5728;main&#x51FD;&#x6578;&#x57F7;&#x884C;&#x4E4B;&#x524D;&#xFF0C;&#x6240;&#x6709;&#x4F9D;&#x7136;&#x7684;&#x5305;&#x90FD;&#x5DF2;&#x7D93;&#x5B8C;&#x6210;&#x521D;&#x59CB;&#x5316;&#x5DE5;&#x4F5C;&#x4E86;&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x5B9A;&#x7FA9;&#x4E86;&#x4E00;&#x500B;PopCount&#x51FD;&#x6578;&#xFF0C;&#x7528;&#x65BC;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x6578;&#x5B57;&#x4E2D;&#x542B;&#x4E8C;&#x9032;&#x88FD;1bit&#x7684;&#x500B;&#x6578;&#x3002;&#x5B83;&#x4F7F;&#x7528;init&#x521D;&#x59CB;&#x5316;&#x51FD;&#x6578;&#x4F86;&#x751F;&#x6210;&#x8F14;&#x52A9;&#x8868;&#x683C;pc&#xFF0C;pc&#x8868;&#x683C;&#x7528;&#x65BC;&#x8655;&#x7406;&#x6BCF;&#x500B;8bit&#x5BEC;&#x5EA6;&#x7684;&#x6578;&#x5B57;&#x542B;&#x4E8C;&#x9032;&#x88FD;&#x7684;1bit&#x7684;bit&#x500B;&#x6578;&#xFF0C;&#x9019;&#x6A23;&#x7684;&#x8A71;&#x5728;&#x8655;&#x7406;64bit&#x5BEC;&#x5EA6;&#x7684;&#x6578;&#x5B57;&#x6642;&#x5C31;&#x6C92;&#x6709;&#x5FC5;&#x8981;&#x5FAA;&#x74B0;64&#x6B21;&#xFF0C;&#x96BB;&#x9700;&#x8981;8&#x6B21;&#x67FB;&#x8868;&#x5C31;&#x53EF;&#x4EE5;&#x4E86;&#x3002;&#xFF08;&#x9019;&#x4F75;&#x4E0D;&#x662F;&#x6700;&#x5FEB;&#x7684;&#x7D71;&#x8A08;1bit&#x6578;&#x76EE;&#x7684;&#x7B97;&#x6CD5;&#xFF0C;&#x4F46;&#x662F;&#x5B83;&#x53EF;&#x4EE5;&#x65B9;&#x4FBF;&#x6F14;&#x793A;init&#x51FD;&#x6578;&#x7684;&#x7528;&#x6CD5;&#xFF0C;&#x4F75;&#x4E14;&#x6F14;&#x793A;&#x4E86;&#x5982;&#x679C;&#x9810;&#x751F;&#x6210;&#x8F14;&#x52A9;&#x8868;&#x683C;&#xFF0C;&#x9019;&#x662F;&#x7DE8;&#x7A0B;&#x4E2D;&#x5E38;&#x7528;&#x7684;&#x6280;&#x8853;&#xFF09;&#x3002;</p>
<pre><code class="lang-Go">gopl.io/ch2/popcount
<span class="hljs-keyword">package</span> popcount
@@ -2147,14 +2147,21 @@ $ ./cf -40
pc[<span class="hljs-typename">byte</span>(x&gt;&gt;(<span class="hljs-number">7</span>*<span class="hljs-number">8</span>))])
}
</code></pre>
<p>&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F; init &#x51FD;&#x6578;&#x4E2D;, range &#x5FAA;&#x74B0;&#x96BB;&#x4F7F;&#x7528;&#x4E86;&#x7D22;&#x5F15;, &#x7701;&#x7565;&#x4E86;&#x6C92;&#x6709;&#x7528;&#x5230;&#x7684;&#x503C;&#x90E8;&#x5206;.
&#x5FAA;&#x74B0;&#x4E5F;&#x53EF;&#x4EE5;&#x9019;&#x6A23;&#x5BEB;:</p>
<p>&#x8B6F;&#x8A3B;&#xFF1A;&#x5C0D;&#x65BC;pc&#x9019;&#x985E;&#x9700;&#x8981;&#x8907;&#x96DC;&#x8655;&#x7406;&#x7684;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x5C07;&#x521D;&#x59CB;&#x5316;&#x908F;&#x8F2F;&#x5305;&#x88DD;&#x7232;&#x4E00;&#x500B;&#x533F;&#x540D;&#x51FD;&#x6578;&#x8655;&#x7406;&#xFF0C;&#x50CF;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-comment">// pc[i] is the population count of i.</span>
<span class="hljs-keyword">var</span> pc [<span class="hljs-number">256</span>]<span class="hljs-typename">byte</span> = <span class="hljs-keyword">func</span>() (pc [<span class="hljs-number">256</span>]<span class="hljs-typename">byte</span>) {
<span class="hljs-keyword">for</span> i := <span class="hljs-keyword">range</span> pc {
pc[i] = pc[i/<span class="hljs-number">2</span>] + <span class="hljs-typename">byte</span>(i&amp;<span class="hljs-number">1</span>)
}
}()
</code></pre>
<p>&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;&#x5728;init&#x51FD;&#x6578;&#x4E2D;&#xFF0C;range&#x5FAA;&#x74B0;&#x96BB;&#x4F7F;&#x7528;&#x4E86;&#x7D22;&#x5F15;&#xFF0C;&#x7701;&#x7565;&#x4E86;&#x6C92;&#x6709;&#x7528;&#x5230;&#x7684;&#x503C;&#x90E8;&#x5206;&#x3002;&#x5FAA;&#x74B0;&#x4E5F;&#x53EF;&#x4EE5;&#x9019;&#x6A23;&#x5BEB;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">for</span> i, _ := <span class="hljs-keyword">range</span> pc {
</code></pre>
<p>&#x6211;&#x5011;&#x5728;&#x4E0B;&#x4E00;&#x7BC0;&#x548C;10.5&#x7BC0;&#x9084;&#x5C07;&#x770B;&#x5230;&#x5176;&#x5B83;&#x4F7F;&#x7528;init&#x51FD;&#x6578;&#x7684;&#x5730;&#x65B9;.</p>
<p><strong>&#x7DF4;&#x7FD2;2.3:</strong> &#x91CD;&#x5BEB; PopCount &#x51FD;&#x6578;, &#x7528;&#x4E00;&#x500B;&#x5FAA;&#x74B0;&#x4EE3;&#x66FF;&#x55AE;&#x4E00;&#x7684;&#x8868;&#x9054;&#x5F0F;. &#x6BD4;&#x8F03;&#x5169;&#x500B;&#x7248;&#x672C;&#x7684;&#x6027;&#x80FD;. (11.4&#x7BC0;&#x5C07;&#x5C55;&#x793A;&#x5982;&#x4F55;&#x7E6B;&#x7D71;&#x5730;&#x6BD4;&#x8F03;&#x5169;&#x500B;&#x4E0D;&#x540C;&#x5BE6;&#x73FE;&#x7684;&#x6027;&#x80FD;.)</p>
<p><strong>&#x7DF4;&#x7FD2;2.4:</strong> &#x7528;&#x79FB;&#x4F4D;&#x7684;&#x7B97;&#x6CD5;&#x91CD;&#x5BEB; PopCount &#x51FD;&#x6578;, &#x6BCF;&#x6B21;&#x6E2C;&#x8A66;&#x6700;&#x53F3;&#x908A;&#x7684;1bit, &#x7136;&#x5F8C;&#x7D71;&#x8A08;&#x7E3D;&#x6578;. &#x6BD4;&#x8F03;&#x548C;&#x67FB;&#x8868;&#x7B97;&#x6CD5;&#x7684;&#x6027;&#x80FD;&#x5DEE;&#x7570;.</p>
<p><strong>&#x7DF4;&#x7FD2;2.5:</strong> &#x8868;&#x9054;&#x5F0F; <code>x&amp;(x-1)</code> &#x7528;&#x65BC;&#x5C07; x &#x7684;&#x6700;&#x4F4E;&#x7684;&#x4E00;&#x500B;1bit&#x4F4D;&#x6E05;&#x96F6;. &#x4F7F;&#x7528;&#x9019;&#x500B;&#x683C;&#x5F0F;&#x91CD;&#x5BEB; PopCount &#x51FD;&#x6578;, &#x7136;&#x5F8C;&#x6BD4;&#x8F03;&#x6027;&#x80FD;.</p>
<p>&#x6211;&#x5011;&#x5728;&#x4E0B;&#x4E00;&#x7BC0;&#x548C;10.5&#x7BC0;&#x9084;&#x5C07;&#x770B;&#x5230;&#x5176;&#x5B83;&#x4F7F;&#x7528;init&#x51FD;&#x6578;&#x7684;&#x5730;&#x65B9;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 2.3&#xFF1A;</strong> &#x91CD;&#x5BEB;PopCount&#x51FD;&#x6578;&#xFF0C;&#x7528;&#x4E00;&#x500B;&#x5FAA;&#x74B0;&#x4EE3;&#x66FF;&#x55AE;&#x4E00;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x3002;&#x6BD4;&#x8F03;&#x5169;&#x500B;&#x7248;&#x672C;&#x7684;&#x6027;&#x80FD;&#x3002;&#xFF08;11.4&#x7BC0;&#x5C07;&#x5C55;&#x793A;&#x5982;&#x4F55;&#x7E6B;&#x7D71;&#x5730;&#x6BD4;&#x8F03;&#x5169;&#x500B;&#x4E0D;&#x540C;&#x5BE6;&#x73FE;&#x7684;&#x6027;&#x80FD;&#x3002;&#xFF09;</p>
<p><strong>&#x7DF4;&#x7FD2; 2.4&#xFF1A;</strong> &#x7528;&#x79FB;&#x4F4D;&#x7B97;&#x6CD5;&#x91CD;&#x5BEB;PopCount&#x51FD;&#x6578;&#xFF0C;&#x6BCF;&#x6B21;&#x6E2C;&#x8A66;&#x6700;&#x53F3;&#x908A;&#x7684;1bit&#xFF0C;&#x7136;&#x5F8C;&#x7D71;&#x8A08;&#x7E3D;&#x6578;&#x3002;&#x6BD4;&#x8F03;&#x548C;&#x67FB;&#x8868;&#x7B97;&#x6CD5;&#x7684;&#x6027;&#x80FD;&#x5DEE;&#x7570;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 2.5&#xFF1A;</strong> &#x8868;&#x9054;&#x5F0F;<code>x&amp;(x-1)</code>&#x7528;&#x65BC;&#x5C07;x&#x7684;&#x6700;&#x4F4E;&#x7684;&#x4E00;&#x500B;&#x975E;&#x96F6;&#x7684;bit&#x4F4D;&#x6E05;&#x96F6;&#x3002;&#x4F7F;&#x7528;&#x9019;&#x500B;&#x7B97;&#x6CD5;&#x91CD;&#x5BEB;PopCount&#x51FD;&#x6578;&#xFF0C;&#x7136;&#x5F8C;&#x6BD4;&#x8F03;&#x6027;&#x80FD;&#x3002;</p>
</section>
@@ -2186,7 +2193,7 @@ $ ./cf -40
<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>

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="2.7" data-chapter-title="作用域" data-filepath="ch2/ch2-07.md" data-basepath=".." data-revision="Fri Dec 25 2015 12:32:44 GMT+0800 (中国标准时间)">
<div class="book" data-level="2.7" data-chapter-title="作用域" data-filepath="ch2/ch2-07.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>
@@ -2020,13 +2024,13 @@
<section class="normal" id="section-">
<h2 id="27-&#x4F5C;&#x7528;&#x57DF;">2.7. &#x4F5C;&#x7528;&#x57DF;</h2>
<p>&#x4E00;&#x500B;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x5C07;&#x7A0B;&#x5E8F;&#x4E2D;&#x7684;&#x5BE6;&#x9AD4;&#x548C;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x95DC;&#x806F;, &#x6BD4;&#x5982;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x6216;&#x4E00;&#x500B;&#x8B8A;&#x91CF;. &#x8072;&#x660E;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x662F;&#x6307;&#x6E90;&#x4EE3;&#x78BC;&#x4E2D;&#x53EF;&#x4EE5;&#x6709;&#x6548;&#x4F7F;&#x7528;&#x9019;&#x500B;&#x540D;&#x5B57;&#x7684;&#x8303;&#x570D;.</p>
<p>&#x4E0D;&#x8981;&#x5C07;&#x4F5C;&#x7528;&#x57DF;&#x548C;&#x751F;&#x547D;&#x9031;&#x671F;&#x6DF7;&#x7232;&#x4E00;&#x8AC7;. &#x8072;&#x660E;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x5C0D;&#x61C9;&#x7684;&#x662F;&#x4E00;&#x500B;&#x6E90;&#x4EE3;&#x78BC;&#x7684;&#x6587;&#x672C;&#x5340;&#x57DF;; &#x5B83;&#x662F;&#x4E00;&#x500B;&#x7DE8;&#x8B6F;&#x6642;&#x7684;&#x5C6C;&#x6027;. &#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;&#x662F;&#x7A0B;&#x5E8F;&#x904B;&#x884C;&#x6642;&#x8B8A;&#x91CF;&#x5B58;&#x5728;&#x7684;&#x6709;&#x6548;&#x6642;&#x9593;&#x6BB5;, &#x5728;&#x6B64;&#x6642;&#x9593;&#x5340;&#x57DF;&#x5167;&#x5B58;&#x5B83;&#x53EF;&#x4EE5;&#x88AB;&#x7A0B;&#x5E8F;&#x7684;&#x5176;&#x4ED6;&#x90E8;&#x5206;&#x5F15;&#x7528;. &#x662F;&#x4E00;&#x500B;&#x904B;&#x884C;&#x6642;&#x7684;&#x6982;&#x5FF5;.</p>
<p>&#x8A9E;&#x6CD5;&#x584A;&#x662F;&#x7531;&#x82B1;&#x62EC;&#x5F27;&#x6240;&#x5305;&#x542B;&#x7684;&#x4E00;&#x7E6B;&#x5217;&#x8A9E;&#x53E5;, &#x5C31;&#x50CF;&#x51FD;&#x6578;&#x9AD4;&#x6216;&#x5FAA;&#x74B0;&#x9AD4;&#x90A3;&#x6A23;. &#x8A9E;&#x6CD5;&#x584A;&#x5167;&#x90E8;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x662F;&#x7121;&#x6CD5;&#x88AB;&#x5916;&#x90E8;&#x8A9E;&#x6CD5;&#x584A;&#x8A2A;&#x554F;&#x7684;. &#x8A9E;&#x6CD5;&#x6C7A;&#x5B9A;&#x4E86;&#x5167;&#x90E8;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x8303;&#x570D;. &#x6211;&#x5011;&#x53EF;&#x4EE5;&#x9019;&#x6A23;&#x7406;&#x89E3;, &#x8A9E;&#x6CD5;&#x584A;&#x53EF;&#x4EE5;&#x5305;&#x542B;&#x5176;&#x4ED6;&#x985E;&#x4F3C;&#x7D44;&#x6279;&#x91CF;&#x8072;&#x660E;&#x7B49;&#x6C92;&#x6709;&#x7528;&#x82B1;&#x62EC;&#x5F27;&#x5305;&#x542B;&#x7684;&#x4EE3;&#x78BC;, &#x6211;&#x5011;&#x7A31;&#x4E4B;&#x7232;&#x8A5E;&#x6ED9;&#x584A;. &#x6709;&#x4E00;&#x500B;&#x8A9E;&#x6CD5;&#x6C7A;&#x7232;&#x6574;&#x500B;&#x6E90;&#x4EE3;&#x78BC;, &#x7A31;&#x7232;&#x5168;&#x5C40;&#x584A;; &#x7136;&#x5F8C;&#x662F;&#x6BCF;&#x500B;&#x5305;&#x7684;&#x8A9E;&#x6CD5;&#x6C7A;; &#x6BCF;&#x500B; for, if &#x548C; switch &#x8A9E;&#x53E5;&#x7684;&#x8A9E;&#x6CD5;&#x6C7A;; &#x6BCF;&#x500B; switch &#x6216; select &#x5206;&#x652F;&#x7684; &#x8A9E;&#x6CD5;&#x6C7A;; &#x7576;&#x7136;&#x4E5F;&#x5305;&#x542B;&#x986F;&#x793A;&#x7DE8;&#x5BEB;&#x7684;&#x8A9E;&#x6CD5;&#x584A;(&#x82B1;&#x62EC;&#x5F27;&#x5305;&#x542B;).</p>
<p>&#x8072;&#x660E;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x6C7A;&#x5B9A;&#x4E86;&#x4F5C;&#x7528;&#x57DF;&#x8303;&#x570D;&#x662F;&#x5927;&#x9084;&#x662F;&#x5C0F;. &#x5167;&#x7F6E;&#x7684;&#x985E;&#x578B;, &#x51FD;&#x6578;&#x548C;&#x5E38;&#x91CF;, &#x6BD4;&#x5982; int, len &#x548C; true &#x7B49;&#x662F;&#x5728;&#x5168;&#x5C40;&#x4F5C;&#x7528;&#x57DF;&#x7684;, &#x53EF;&#x4EE5;&#x5728;&#x6574;&#x500B;&#x7A0B;&#x5E8F;&#x4E2D;&#x76F4;&#x63A5;&#x4F7F;&#x7528;. &#x4EFB;&#x4F55;&#x5728;&#x5728;&#x51FD;&#x6578;&#x5916;&#x90E8;(&#x4E5F;&#x5C31;&#x662F;&#x5305;&#x7D1A;&#x4F5C;&#x7528;&#x57DF;)&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x53EF;&#x4EE5;&#x5728;&#x540C;&#x4E00;&#x500B;&#x5305;&#x7684;&#x4EFB;&#x4F55;Go&#x6587;&#x4EF6;&#x8A2A;&#x554F;. &#x5C0E;&#x5165;&#x7684;&#x5305;, &#x4F8B;&#x5982; tempconv &#x5C0E;&#x5165;&#x7684; fmt &#x5305;, &#x5247;&#x662F;&#x5C0D;&#x61C9;&#x6587;&#x4EF6;&#x7D1A;&#x7684;&#x4F5C;&#x7528;&#x57DF;, &#x56E0;&#x6B64;&#x96BB;&#x80FD;&#x5728;&#x7576;&#x524D;&#x7684;&#x6587;&#x4EF6;&#x4E2D;&#x8A2A;&#x554F; fmt &#x5305;, &#x7576;&#x524D;&#x5305;&#x7684;&#x5176;&#x5B83;&#x6587;&#x4EF6;&#x7121;&#x6CD5;&#x8A2A;&#x554F;&#x7576;&#x524D;&#x6587;&#x4EF6;&#x5C0E;&#x5165;&#x7684;&#x5305;. &#x9084;&#x6709;&#x8A31;&#x591A;&#x8072;&#x660E;, &#x6BD4;&#x5982; tempconv.CToF &#x51FD;&#x6578;&#x4E2D;&#x7684;&#x8B8A;&#x91CF; c, &#x5247;&#x662F;&#x5C40;&#x90E8;&#x4F5C;&#x7528;&#x57DF;&#x7684;, &#x5B83;&#x96BB;&#x80FD;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;(&#x751A;&#x81F3;&#x96BB;&#x80FD;&#x662F;&#x67D0;&#x4E9B;&#x90E8;&#x5206;)&#x8A2A;&#x554F;.</p>
<p>&#x63A7;&#x88FD;&#x6D41;&#x6A19;&#x7C64;, &#x4F8B;&#x5982; break, continue &#x6216; goto &#x5F8C;&#x9762;&#x8DDF;&#x7740;&#x7684;&#x90A3;&#x7A2E;&#x6A19;&#x7C64;, &#x5247;&#x662F;&#x51FD;&#x6578;&#x7D1A;&#x7684;&#x4F5C;&#x7528;&#x57DF;.</p>
<p>&#x4E00;&#x500B;&#x7A0B;&#x5E8F;&#x53EF;&#x80FD;&#x5305;&#x542B;&#x591A;&#x500B;&#x540C;&#x540D;&#x7684;&#x8072;&#x660E;, &#x96BB;&#x6709;&#x5B83;&#x5011;&#x5728;&#x4E0D;&#x540C;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x5C31;&#x6C92;&#x6709;&#x95DC;&#x7E6B;. &#x4F8B;&#x5982;, &#x4F60;&#x53EF;&#x4EE5;&#x8072;&#x660E;&#x4E00;&#x500B;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;, &#x548C;&#x5305;&#x7D1A;&#x7684;&#x8B8A;&#x91CF;&#x540C;&#x540D;. &#x6216;&#x8005;&#x662F; 2.3.3&#x7BC0;&#x7684;&#x90A3;&#x6A23;, &#x4F60;&#x53EF;&#x4EE5;&#x5C07;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x53C3;&#x6578;&#x7684;&#x540D;&#x5B57;&#x8072;&#x660E;&#x7232; new, &#x96D6;&#x7136;&#x5167;&#x7F6E;&#x7684;new&#x662F;&#x5168;&#x5C40;&#x4F5C;&#x7528;&#x57DF;&#x7684;. &#x4F46;&#x662F;&#x7269;&#x6975;&#x5FC5;&#x53CD;, &#x5982;&#x679C;&#x6FEB;&#x7528;&#x91CD;&#x540D;&#x7684;&#x7279;&#x6027;, &#x53EF;&#x80FD;&#x5C0E;&#x81F4;&#x7A0B;&#x5E8F;&#x5F88;&#x96E3;&#x95B2;&#x8B80;.</p>
<p>&#x7576;&#x7DE8;&#x8B6F;&#x5668;&#x9047;&#x5230;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x5F15;&#x7528;, &#x5B83;&#x770B;&#x8D77;&#x4F86;&#x50CF;&#x4E00;&#x500B;&#x8072;&#x660E;, &#x5B83;&#x9996;&#x5148;&#x5F9E;&#x6700;&#x5167;&#x5C64;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x5411;&#x5168;&#x5C40;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x67FB;&#x627E;. &#x5982;&#x679C;&#x67FB;&#x627E;&#x5931;&#x6557;, &#x5247;&#x5831;&#x544A; &quot;&#x672A;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&quot; &#x9019;&#x6A23;&#x7684;&#x932F;&#x8AA4;. &#x5982;&#x679C;&#x540D;&#x5B57;&#x5728;&#x5167;&#x90E8;&#x548C;&#x5916;&#x90E8;&#x7684;&#x584A;&#x5206;&#x522B;&#x8072;&#x660E;, &#x5247;&#x5167;&#x90E8;&#x584A;&#x7684;&#x8072;&#x660E;&#x9996;&#x5148;&#x88AB;&#x627E;&#x5230;. &#x5728;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;, &#x5167;&#x90E8;&#x8072;&#x660E;&#x5C4F;&#x853D;&#x4E86;&#x5916;&#x90E8;&#x540C;&#x540D;&#x7684;&#x8072;&#x660E;, &#x8B93;&#x5916;&#x90E8;&#x7684;&#x8072;&#x660E;&#x7121;&#x6CD5;&#x88AB;&#x8A2A;&#x554F;:</p>
<p>&#x4E00;&#x500B;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x5C07;&#x7A0B;&#x5E8F;&#x4E2D;&#x7684;&#x5BE6;&#x9AD4;&#x548C;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x95DC;&#x806F;&#xFF0C;&#x6BD4;&#x5982;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x6216;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x3002;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x662F;&#x6307;&#x6E90;&#x4EE3;&#x78BC;&#x4E2D;&#x53EF;&#x4EE5;&#x6709;&#x6548;&#x4F7F;&#x7528;&#x9019;&#x500B;&#x540D;&#x5B57;&#x7684;&#x8303;&#x570D;&#x3002;</p>
<p>&#x4E0D;&#x8981;&#x5C07;&#x4F5C;&#x7528;&#x57DF;&#x548C;&#x751F;&#x547D;&#x9031;&#x671F;&#x6DF7;&#x7232;&#x4E00;&#x8AC7;&#x3002;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x5C0D;&#x61C9;&#x7684;&#x662F;&#x4E00;&#x500B;&#x6E90;&#x4EE3;&#x78BC;&#x7684;&#x6587;&#x672C;&#x5340;&#x57DF;&#xFF1B;&#x5B83;&#x662F;&#x4E00;&#x500B;&#x7DE8;&#x8B6F;&#x6642;&#x7684;&#x5C6C;&#x6027;&#x3002;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x7684;&#x751F;&#x547D;&#x9031;&#x671F;&#x662F;&#x6307;&#x7A0B;&#x5E8F;&#x904B;&#x884C;&#x6642;&#x8B8A;&#x91CF;&#x5B58;&#x5728;&#x7684;&#x6709;&#x6548;&#x6642;&#x9593;&#x6BB5;&#xFF0C;&#x5728;&#x6B64;&#x6642;&#x9593;&#x5340;&#x57DF;&#x5167;&#x5B83;&#x53EF;&#x4EE5;&#x88AB;&#x7A0B;&#x5E8F;&#x7684;&#x5176;&#x4ED6;&#x90E8;&#x5206;&#x5F15;&#x7528;&#xFF1B;&#x662F;&#x4E00;&#x500B;&#x904B;&#x884C;&#x6642;&#x7684;&#x6982;&#x5FF5;&#x3002;</p>
<p>&#x8A9E;&#x6CD5;&#x584A;&#x662F;&#x7531;&#x82B1;&#x62EC;&#x5F27;&#x6240;&#x5305;&#x542B;&#x7684;&#x4E00;&#x7E6B;&#x5217;&#x8A9E;&#x53E5;&#xFF0C;&#x5C31;&#x50CF;&#x51FD;&#x6578;&#x9AD4;&#x6216;&#x5FAA;&#x74B0;&#x9AD4;&#x82B1;&#x62EC;&#x5F27;&#x5C0D;&#x61C9;&#x7684;&#x8A9E;&#x6CD5;&#x584A;&#x90A3;&#x6A23;&#x3002;&#x8A9E;&#x6CD5;&#x584A;&#x5167;&#x90E8;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x662F;&#x7121;&#x6CD5;&#x88AB;&#x5916;&#x90E8;&#x8A9E;&#x6CD5;&#x584A;&#x8A2A;&#x554F;&#x7684;&#x3002;&#x8A9E;&#x6CD5;&#x6C7A;&#x5B9A;&#x4E86;&#x5167;&#x90E8;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x8303;&#x570D;&#x3002;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x9019;&#x6A23;&#x7406;&#x89E3;&#xFF0C;&#x8A9E;&#x6CD5;&#x584A;&#x53EF;&#x4EE5;&#x5305;&#x542B;&#x5176;&#x4ED6;&#x985E;&#x4F3C;&#x7D44;&#x6279;&#x91CF;&#x8072;&#x660E;&#x7B49;&#x6C92;&#x6709;&#x7528;&#x82B1;&#x62EC;&#x5F27;&#x5305;&#x542B;&#x7684;&#x4EE3;&#x78BC;&#xFF0C;&#x6211;&#x5011;&#x7A31;&#x4E4B;&#x7232;&#x8A9E;&#x6CD5;&#x584A;&#x3002;&#x6709;&#x4E00;&#x500B;&#x8A9E;&#x6CD5;&#x584A;&#x7232;&#x6574;&#x500B;&#x6E90;&#x4EE3;&#x78BC;&#xFF0C;&#x7A31;&#x7232;&#x5168;&#x5C40;&#x8A9E;&#x6CD5;&#x584A;&#xFF1B;&#x7136;&#x5F8C;&#x662F;&#x6BCF;&#x500B;&#x5305;&#x7684;&#x5305;&#x8A9E;&#x6CD5;&#x6C7A;&#xFF1B;&#x6BCF;&#x500B;for&#x3001;if&#x548C;switch&#x8A9E;&#x53E5;&#x7684;&#x8A9E;&#x6CD5;&#x6C7A;&#xFF1B;&#x6BCF;&#x500B;switch&#x6216;select&#x7684;&#x5206;&#x652F;&#x4E5F;&#x6709;&#x7368;&#x7ACB;&#x7684;&#x8A9E;&#x6CD5;&#x6C7A;&#xFF1B;&#x7576;&#x7136;&#x4E5F;&#x5305;&#x62EC;&#x986F;&#x5F0F;&#x66F8;&#x5BEB;&#x7684;&#x8A9E;&#x6CD5;&#x584A;&#xFF08;&#x82B1;&#x62EC;&#x5F27;&#x5305;&#x542B;&#x7684;&#x8A9E;&#x53E5;&#xFF09;&#x3002;</p>
<p>&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x5C0D;&#x61C9;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x6C7A;&#x5B9A;&#x4E86;&#x4F5C;&#x7528;&#x57DF;&#x8303;&#x570D;&#x7684;&#x5927;&#x5C0F;&#x3002;&#x5C0D;&#x65BC;&#x5167;&#x7F6E;&#x7684;&#x985E;&#x578B;&#x3001;&#x51FD;&#x6578;&#x548C;&#x5E38;&#x91CF;&#xFF0C;&#x6BD4;&#x5982;int&#x3001;len&#x548C;true&#x7B49;&#x662F;&#x5728;&#x5168;&#x5C40;&#x4F5C;&#x7528;&#x57DF;&#x7684;&#xFF0C;&#x56E0;&#x6B64;&#x53EF;&#x4EE5;&#x5728;&#x6574;&#x500B;&#x7A0B;&#x5E8F;&#x4E2D;&#x76F4;&#x63A5;&#x4F7F;&#x7528;&#x3002;&#x4EFB;&#x4F55;&#x5728;&#x5728;&#x51FD;&#x6578;&#x5916;&#x90E8;&#xFF08;&#x4E5F;&#x5C31;&#x662F;&#x5305;&#x7D1A;&#x8A9E;&#x6CD5;&#x57DF;&#xFF09;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x53EF;&#x4EE5;&#x5728;&#x540C;&#x4E00;&#x500B;&#x5305;&#x7684;&#x4EFB;&#x4F55;&#x6E90;&#x6587;&#x4EF6;&#x4E2D;&#x8A2A;&#x554F;&#x7684;&#x3002;&#x5C0D;&#x65BC;&#x5C0E;&#x5165;&#x7684;&#x5305;&#xFF0C;&#x4F8B;&#x5982;tempconv&#x5C0E;&#x5165;&#x7684;fmt&#x5305;&#xFF0C;&#x5247;&#x662F;&#x5C0D;&#x61C9;&#x6E90;&#x6587;&#x4EF6;&#x7D1A;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#xFF0C;&#x56E0;&#x6B64;&#x96BB;&#x80FD;&#x5728;&#x7576;&#x524D;&#x7684;&#x6587;&#x4EF6;&#x4E2D;&#x8A2A;&#x554F;&#x5C0E;&#x5165;&#x7684;fmt&#x5305;&#xFF0C;&#x7576;&#x524D;&#x5305;&#x7684;&#x5176;&#x5B83;&#x6E90;&#x6587;&#x4EF6;&#x7121;&#x6CD5;&#x8A2A;&#x554F;&#x5728;&#x7576;&#x524D;&#x6E90;&#x6587;&#x4EF6;&#x5C0E;&#x5165;&#x7684;&#x5305;&#x3002;&#x9084;&#x6709;&#x8A31;&#x591A;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#xFF0C;&#x6BD4;&#x5982;tempconv.CToF&#x51FD;&#x6578;&#x4E2D;&#x7684;&#x8B8A;&#x91CF;c&#xFF0C;&#x5247;&#x662F;&#x5C40;&#x90E8;&#x4F5C;&#x7528;&#x57DF;&#x7684;&#xFF0C;&#x5B83;&#x96BB;&#x80FD;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#xFF08;&#x751A;&#x81F3;&#x96BB;&#x80FD;&#x662F;&#x5C40;&#x90E8;&#x7684;&#x67D0;&#x4E9B;&#x90E8;&#x5206;&#xFF09;&#x8A2A;&#x554F;&#x3002;</p>
<p>&#x63A7;&#x88FD;&#x6D41;&#x6A19;&#x865F;&#xFF0C;&#x5C31;&#x662F;break&#x3001;continue&#x6216;goto&#x8A9E;&#x53E5;&#x5F8C;&#x9762;&#x8DDF;&#x7740;&#x7684;&#x90A3;&#x7A2E;&#x6A19;&#x865F;&#xFF0C;&#x5247;&#x662F;&#x51FD;&#x6578;&#x7D1A;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x3002;</p>
<p>&#x4E00;&#x500B;&#x7A0B;&#x5E8F;&#x53EF;&#x80FD;&#x5305;&#x542B;&#x591A;&#x500B;&#x540C;&#x540D;&#x7684;&#x8072;&#x660E;&#xFF0C;&#x96BB;&#x8981;&#x5B83;&#x5011;&#x5728;&#x4E0D;&#x540C;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x5C31;&#x6C92;&#x6709;&#x95DC;&#x7E6B;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x8072;&#x660E;&#x4E00;&#x500B;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#xFF0C;&#x548C;&#x5305;&#x7D1A;&#x7684;&#x8B8A;&#x91CF;&#x540C;&#x540D;&#x3002;&#x6216;&#x8005;&#x662F;&#x50CF;2.3.3&#x7BC0;&#x7684;&#x4F8B;&#x5B50;&#x90A3;&#x6A23;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x5C07;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x53C3;&#x6578;&#x7684;&#x540D;&#x5B57;&#x8072;&#x660E;&#x7232;new&#xFF0C;&#x96D6;&#x7136;&#x5167;&#x7F6E;&#x7684;new&#x662F;&#x5168;&#x5C40;&#x4F5C;&#x7528;&#x57DF;&#x7684;&#x3002;&#x4F46;&#x662F;&#x7269;&#x6975;&#x5FC5;&#x53CD;&#xFF0C;&#x5982;&#x679C;&#x6FEB;&#x7528;&#x4E0D;&#x540C;&#x8A5E;&#x6CD5;&#x57DF;&#x53EF;&#x91CD;&#x540D;&#x7684;&#x7279;&#x6027;&#x7684;&#x8A71;&#xFF0C;&#x53EF;&#x80FD;&#x5C0E;&#x81F4;&#x7A0B;&#x5E8F;&#x5F88;&#x96E3;&#x95B2;&#x8B80;&#x3002;</p>
<p>&#x7576;&#x7DE8;&#x8B6F;&#x5668;&#x9047;&#x5230;&#x4E00;&#x500B;&#x540D;&#x5B57;&#x5F15;&#x7528;&#x6642;&#xFF0C;&#x5982;&#x679C;&#x5B83;&#x770B;&#x8D77;&#x4F86;&#x50CF;&#x4E00;&#x500B;&#x8072;&#x660E;&#xFF0C;&#x5B83;&#x9996;&#x5148;&#x5F9E;&#x6700;&#x5167;&#x5C64;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x5411;&#x5168;&#x5C40;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x67FB;&#x627E;&#x3002;&#x5982;&#x679C;&#x67FB;&#x627E;&#x5931;&#x6557;&#xFF0C;&#x5247;&#x5831;&#x544A;&#x201C;&#x672A;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x201D;&#x9019;&#x6A23;&#x7684;&#x932F;&#x8AA4;&#x3002;&#x5982;&#x679C;&#x8A72;&#x540D;&#x5B57;&#x5728;&#x5167;&#x90E8;&#x548C;&#x5916;&#x90E8;&#x7684;&#x584A;&#x5206;&#x522B;&#x8072;&#x660E;&#x904E;&#xFF0C;&#x5247;&#x5167;&#x90E8;&#x584A;&#x7684;&#x8072;&#x660E;&#x9996;&#x5148;&#x88AB;&#x627E;&#x5230;&#x3002;&#x5728;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x5167;&#x90E8;&#x8072;&#x660E;&#x5C4F;&#x853D;&#x4E86;&#x5916;&#x90E8;&#x540C;&#x540D;&#x7684;&#x8072;&#x660E;&#xFF0C;&#x8B93;&#x5916;&#x90E8;&#x7684;&#x8072;&#x660E;&#x7684;&#x540D;&#x5B57;&#x7121;&#x6CD5;&#x88AB;&#x8A2A;&#x554F;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> f() {}
<span class="hljs-keyword">var</span> g = <span class="hljs-string">&quot;g&quot;</span>
@@ -2038,7 +2042,7 @@
fmt.Println(h) <span class="hljs-comment">// compile error: undefined: h</span>
}
</code></pre>
<p>&#x5728;&#x51FD;&#x6578;&#x4E2D;&#x8A5E;&#x6CD5;&#x57DF;&#x53EF;&#x4EE5;&#x6DF1;&#x5EA6;&#x5D4C;&#x5957;, &#x56E0;&#x6B64;&#x5167;&#x90E8;&#x7684;&#x4E00;&#x500B;&#x8072;&#x660E;&#x53EF;&#x80FD;&#x5C4F;&#x853D;&#x5916;&#x90E8;&#x7684;&#x8072;&#x660E;. &#x9084;&#x6709;&#x8A31;&#x591A;&#x584A;&#x662F;if&#x6216;for&#x7B49;&#x63A7;&#x88FD;&#x6D41;&#x8A9E;&#x53E5;&#x69CB;&#x9020;&#x7684;. &#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x6709;&#x4E09;&#x500B;&#x4E0D;&#x540C;&#x7684;&#x8B8A;&#x91CF;x, &#x56E0;&#x7232;&#x5B83;&#x5011;&#x662F;&#x5B9A;&#x7FA9;&#x5728;&#x4E0D;&#x540C;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x7684;&#x539F;&#x56E0;. (&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x96BB;&#x662F;&#x7232;&#x4E86;&#x6F14;&#x793A;&#x4F5C;&#x7528;&#x57DF;&#x898F;&#x5247;, &#x4F46;&#x4E0D;&#x662F;&#x597D;&#x7684;&#x7DE8;&#x7A0B;&#x98A8;&#x683C;.)</p>
<p>&#x5728;&#x51FD;&#x6578;&#x4E2D;&#x8A5E;&#x6CD5;&#x57DF;&#x53EF;&#x4EE5;&#x6DF1;&#x5EA6;&#x5D4C;&#x5957;&#xFF0C;&#x56E0;&#x6B64;&#x5167;&#x90E8;&#x7684;&#x4E00;&#x500B;&#x8072;&#x660E;&#x53EF;&#x80FD;&#x5C4F;&#x853D;&#x5916;&#x90E8;&#x7684;&#x8072;&#x660E;&#x3002;&#x9084;&#x6709;&#x8A31;&#x591A;&#x8A9E;&#x6CD5;&#x584A;&#x662F;if&#x6216;for&#x7B49;&#x63A7;&#x88FD;&#x6D41;&#x8A9E;&#x53E5;&#x69CB;&#x9020;&#x7684;&#x3002;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x6709;&#x4E09;&#x500B;&#x4E0D;&#x540C;&#x7684;&#x8B8A;&#x91CF;x&#xFF0C;&#x56E0;&#x7232;&#x5B83;&#x5011;&#x662F;&#x5B9A;&#x7FA9;&#x5728;&#x4E0D;&#x540C;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#xFF08;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x96BB;&#x662F;&#x7232;&#x4E86;&#x6F14;&#x793A;&#x4F5C;&#x7528;&#x57DF;&#x898F;&#x5247;&#xFF0C;&#x4F46;&#x4E0D;&#x662F;&#x597D;&#x7684;&#x7DE8;&#x7A0B;&#x98A8;&#x683C;&#xFF09;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> main() {
x := <span class="hljs-string">&quot;hello!&quot;</span>
<span class="hljs-keyword">for</span> i := <span class="hljs-number">0</span>; i &lt; <span class="hljs-built_in">len</span>(x); i++ {
@@ -2050,9 +2054,9 @@
}
}
</code></pre>
<p>&#x5728; <code>x[i]</code> &#x548C; <code>x + &apos;A&apos; - &apos;a&apos;</code> &#x8072;&#x660E;&#x521D;&#x59CB;&#x5316;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x4E2D;&#x90FD;&#x5F15;&#x7528;&#x4E86;&#x5916;&#x90E8;&#x4F5C;&#x7528;&#x57DF;&#x8072;&#x660E;&#x7684;x&#x8B8A;&#x91CF;, &#x7A0D;&#x5F8C;&#x6211;&#x5011;&#x6703;&#x89E3;&#x91CB;&#x9019;&#x500B;. (&#x8A3B;&#x610F;, &#x5F8C;&#x9762;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x548C;unicode.ToUpper&#x4F75;&#x4E0D;&#x7B49;&#x50F9;.)</p>
<p>&#x6B63;&#x5982;&#x4E0A;&#x9762;&#x6240;&#x793A;, &#x4F75;&#x4E0D;&#x662F;&#x6240;&#x6709;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x90FD;&#x986F;&#x793A;&#x5730;&#x5C0D;&#x61C9;&#x5230;&#x7531;&#x82B1;&#x62EC;&#x5F27;&#x5305;&#x542B;&#x7684;&#x8A9E;&#x53E5;; &#x9084;&#x6709;&#x4E00;&#x4E9B;&#x96B1;&#x542B;&#x7684;&#x898F;&#x5247;. &#x4E0A;&#x9762;&#x7684;for&#x8A9E;&#x53E5;&#x5275;&#x5EFA;&#x4E86;&#x5169;&#x500B;&#x8A5E;&#x6CD5;&#x57DF;: &#x82B1;&#x62EC;&#x5F27;&#x5305;&#x542B;&#x7684;&#x662F;&#x986F;&#x5F0F;&#x7684;&#x90E8;&#x5206;&#x662F;for&#x7684;&#x5FAA;&#x74B0;&#x9AD4;, &#x53E6;&#x5916;&#x4E00;&#x500B;&#x96B1;&#x5F0F;&#x7684;&#x90E8;&#x5206;&#x5247;&#x662F;&#x5FAA;&#x74B0;&#x7684;&#x521D;&#x59CB;&#x5316;&#x90E8;&#x5206;, &#x6BD4;&#x5982;&#x7528;&#x65BC;&#x8FED;&#x4EE3;&#x8B8A;&#x91CF; i &#x7684;&#x521D;&#x59CB;&#x5316;. &#x96B1;&#x5F0F;&#x7684;&#x90E8;&#x5206;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x9084;&#x5305;&#x542B;&#x689D;&#x4EF6;&#x6E2C;&#x8A66;&#x90E8;&#x5206;&#x548C;&#x5FAA;&#x74B0;&#x5F8C;&#x7684;&#x8FED;&#x4EE3;&#x90E8;&#x5206;(i++), &#x7576;&#x7136;&#x4E5F;&#x5305;&#x542B;&#x5FAA;&#x74B0;&#x9AD4;.</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x540C;&#x6A23;&#x6709;&#x4E09;&#x500B;&#x4E0D;&#x540C;&#x7684;x&#x8B8A;&#x91CF;, &#x6BCF;&#x500B;&#x8072;&#x660E;&#x5728;&#x4E0D;&#x540C;&#x7684;&#x584A;, &#x4E00;&#x500B;&#x5728;&#x51FD;&#x6578;&#x9AD4;&#x584A;, &#x4E00;&#x500B;&#x5728;for&#x8A9E;&#x53E5;&#x584A;, &#x4E00;&#x500B;&#x5728;&#x5FAA;&#x74B0;&#x9AD4;&#x584A;; &#x96BB;&#x6709;&#x5169;&#x500B;&#x584A;&#x662F;&#x986F;&#x5F0F;&#x5275;&#x5EFA;&#x7684;:</p>
<p>&#x5728;<code>x[i]</code>&#x548C;<code>x + &apos;A&apos; - &apos;a&apos;</code>&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x7684;&#x521D;&#x59CB;&#x5316;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x4E2D;&#x90FD;&#x5F15;&#x7528;&#x4E86;&#x5916;&#x90E8;&#x4F5C;&#x7528;&#x57DF;&#x8072;&#x660E;&#x7684;x&#x8B8A;&#x91CF;&#xFF0C;&#x7A0D;&#x5F8C;&#x6211;&#x5011;&#x6703;&#x89E3;&#x91CB;&#x9019;&#x500B;&#x3002;&#xFF08;&#x8A3B;&#x610F;&#xFF0C;&#x5F8C;&#x9762;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x8207;unicode.ToUpper&#x4F75;&#x4E0D;&#x7B49;&#x50F9;&#x3002;&#xFF09;</p>
<p>&#x6B63;&#x5982;&#x4E0A;&#x9762;&#x4F8B;&#x5B50;&#x6240;&#x793A;&#xFF0C;&#x4F75;&#x4E0D;&#x662F;&#x6240;&#x6709;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x90FD;&#x986F;&#x5F0F;&#x5730;&#x5C0D;&#x61C9;&#x5230;&#x7531;&#x82B1;&#x62EC;&#x5F27;&#x5305;&#x542B;&#x7684;&#x8A9E;&#x53E5;&#xFF1B;&#x9084;&#x6709;&#x4E00;&#x4E9B;&#x96B1;&#x542B;&#x7684;&#x898F;&#x5247;&#x3002;&#x4E0A;&#x9762;&#x7684;for&#x8A9E;&#x53E5;&#x5275;&#x5EFA;&#x4E86;&#x5169;&#x500B;&#x8A5E;&#x6CD5;&#x57DF;&#xFF1A;&#x82B1;&#x62EC;&#x5F27;&#x5305;&#x542B;&#x7684;&#x662F;&#x986F;&#x5F0F;&#x7684;&#x90E8;&#x5206;&#x662F;for&#x7684;&#x5FAA;&#x74B0;&#x9AD4;&#x90E8;&#x5206;&#x8A5E;&#x6CD5;&#x57DF;&#xFF0C;&#x53E6;&#x5916;&#x4E00;&#x500B;&#x96B1;&#x5F0F;&#x7684;&#x90E8;&#x5206;&#x5247;&#x662F;&#x5FAA;&#x74B0;&#x7684;&#x521D;&#x59CB;&#x5316;&#x90E8;&#x5206;&#xFF0C;&#x6BD4;&#x5982;&#x7528;&#x65BC;&#x8FED;&#x4EE3;&#x8B8A;&#x91CF;i&#x7684;&#x521D;&#x59CB;&#x5316;&#x3002;&#x96B1;&#x5F0F;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x90E8;&#x5206;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x9084;&#x5305;&#x542B;&#x689D;&#x4EF6;&#x6E2C;&#x8A66;&#x90E8;&#x5206;&#x548C;&#x5FAA;&#x74B0;&#x5F8C;&#x7684;&#x8FED;&#x4EE3;&#x90E8;&#x5206;&#xFF08;<code>i++</code>&#xFF09;&#xFF0C;&#x7576;&#x7136;&#x4E5F;&#x5305;&#x542B;&#x5FAA;&#x74B0;&#x9AD4;&#x8A5E;&#x6CD5;&#x57DF;&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x540C;&#x6A23;&#x6709;&#x4E09;&#x500B;&#x4E0D;&#x540C;&#x7684;x&#x8B8A;&#x91CF;&#xFF0C;&#x6BCF;&#x500B;&#x8072;&#x660E;&#x5728;&#x4E0D;&#x540C;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#xFF0C;&#x4E00;&#x500B;&#x5728;&#x51FD;&#x6578;&#x9AD4;&#x8A5E;&#x6CD5;&#x57DF;&#xFF0C;&#x4E00;&#x500B;&#x5728;for&#x96B1;&#x5F0F;&#x7684;&#x521D;&#x59CB;&#x5316;&#x8A5E;&#x6CD5;&#x57DF;&#xFF0C;&#x4E00;&#x500B;&#x5728;for&#x5FAA;&#x74B0;&#x9AD4;&#x8A5E;&#x6CD5;&#x57DF;&#xFF1B;&#x96BB;&#x6709;&#x5169;&#x500B;&#x584A;&#x662F;&#x986F;&#x5F0F;&#x5275;&#x5EFA;&#x7684;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> main() {
x := <span class="hljs-string">&quot;hello&quot;</span>
<span class="hljs-keyword">for</span> _, x := <span class="hljs-keyword">range</span> x {
@@ -2061,7 +2065,7 @@
}
}
</code></pre>
<p>&#x548C;&#x5F7F;&#x5982;&#x5FAA;&#x74B0;&#x985E;&#x4F3C;, if&#x548C;switch&#x8A9E;&#x53E5;&#x4E5F;&#x6703;&#x5728;&#x689D;&#x4EF6;&#x90E8;&#x5206;&#x5275;&#x5EFA;&#x96B1;&#x5F0F;&#x584A;, &#x9084;&#x6709;&#x5B83;&#x5011;&#x5C0D;&#x61C9;&#x7684;&#x57F7;&#x884C;&#x9AD4;&#x584A;. &#x4E0B;&#x9762;&#x7684; if-else &#x6E2C;&#x8A66;&#x93C8;&#x6F14;&#x793A;&#x7684; x &#x548C; y &#x7684;&#x4F5C;&#x7528;&#x57DF;&#x8303;&#x570D;:</p>
<p>&#x548C;for&#x5FAA;&#x74B0;&#x985E;&#x4F3C;&#xFF0C;if&#x548C;switch&#x8A9E;&#x53E5;&#x4E5F;&#x6703;&#x5728;&#x689D;&#x4EF6;&#x90E8;&#x5206;&#x5275;&#x5EFA;&#x96B1;&#x5F0F;&#x8A5E;&#x6CD5;&#x57DF;&#xFF0C;&#x9084;&#x6709;&#x5B83;&#x5011;&#x5C0D;&#x61C9;&#x7684;&#x57F7;&#x884C;&#x9AD4;&#x8A5E;&#x6CD5;&#x57DF;&#x3002;&#x4E0B;&#x9762;&#x7684;if-else&#x6E2C;&#x8A66;&#x93C8;&#x6F14;&#x793A;&#x4E86;x&#x548C;y&#x7684;&#x6709;&#x6548;&#x4F5C;&#x7528;&#x57DF;&#x8303;&#x570D;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">if</span> x := f(); x == <span class="hljs-number">0</span> {
fmt.Println(x)
} <span class="hljs-keyword">else</span> <span class="hljs-keyword">if</span> y := g(x); x == y {
@@ -2071,17 +2075,17 @@
}
fmt.Println(x, y) <span class="hljs-comment">// compile error: x and y are not visible here</span>
</code></pre>
<p>&#x7B2C;&#x4E8C;&#x500B;if&#x8A9E;&#x53E5;&#x5D4C;&#x5957;&#x5728;&#x7B2C;&#x4E00;&#x500B;&#x5167;&#x90E8;, &#x56E0;&#x6B64;&#x4E00;&#x500B;if&#x8A9E;&#x53E5;&#x689D;&#x4EF6;&#x584A;&#x8072;&#x660E;&#x7684;&#x8B8A;&#x91CF;&#x5728;&#x7B2C;&#x4E8C;&#x500B;if&#x4E2D;&#x4E5F;&#x53EF;&#x4EE5;&#x8A2A;&#x554F;. switch&#x8A9E;&#x53E5;&#x7684;&#x6BCF;&#x500B;&#x5206;&#x652F;&#x4E5F;&#x6709;&#x985E;&#x4F3C;&#x7684;&#x898F;&#x5247;: &#x689D;&#x4EF6;&#x90E8;&#x5206;&#x7232;&#x4E00;&#x500B;&#x96B1;&#x5F0F;&#x584A;, &#x7136;&#x5F8C;&#x6BCF;&#x500B;&#x662F;&#x6BCF;&#x500B;&#x5206;&#x652F;&#x7684;&#x4E3B;&#x9AD4;&#x584A;.</p>
<p>&#x5728;&#x5305;&#x7D1A;&#x522B;, &#x8072;&#x660E;&#x7684;&#x9806;&#x5E8F;&#x4F75;&#x4E0D;&#x6703;&#x5F71;&#x97FF;&#x4F5C;&#x7528;&#x57DF;&#x8303;&#x570D;, &#x56E0;&#x6B64;&#x4E00;&#x500B;&#x5148;&#x8072;&#x660E;&#x7684;&#x53EF;&#x4EE5;&#x5F15;&#x7528;&#x5B83;&#x81EA;&#x8EAB;&#x6216;&#x8005;&#x662F;&#x5F15;&#x7528;&#x5F8C;&#x9762;&#x7684;&#x4E00;&#x500B;&#x8072;&#x660E;, &#x9019;&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x5B9A;&#x7FA9;&#x4E00;&#x4E9B;&#x76F8;&#x4E92;&#x5D4C;&#x5957;&#x6216;&#x905E;&#x6B78;&#x7684;&#x985E;&#x578B;&#x6216;&#x51FD;&#x6578;. &#x4F46;&#x662F;&#x5982;&#x679C;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x6216;&#x5E38;&#x91CF;&#x905E;&#x6B78;&#x5F15;&#x7528;&#x4E86;&#x81EA;&#x8EAB;, &#x5247;&#x6703;&#x7523;&#x751F;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;.</p>
<p>&#x5728;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x4E2D;:</p>
<p>&#x7B2C;&#x4E8C;&#x500B;if&#x8A9E;&#x53E5;&#x5D4C;&#x5957;&#x5728;&#x7B2C;&#x4E00;&#x500B;&#x5167;&#x90E8;&#xFF0C;&#x56E0;&#x6B64;&#x7B2C;&#x4E00;&#x500B;if&#x8A9E;&#x53E5;&#x689D;&#x4EF6;&#x521D;&#x59CB;&#x5316;&#x8A5E;&#x6CD5;&#x57DF;&#x8072;&#x660E;&#x7684;&#x8B8A;&#x91CF;&#x5728;&#x7B2C;&#x4E8C;&#x500B;if&#x4E2D;&#x4E5F;&#x53EF;&#x4EE5;&#x8A2A;&#x554F;&#x3002;switch&#x8A9E;&#x53E5;&#x7684;&#x6BCF;&#x500B;&#x5206;&#x652F;&#x4E5F;&#x6709;&#x985E;&#x4F3C;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x898F;&#x5247;&#xFF1A;&#x689D;&#x4EF6;&#x90E8;&#x5206;&#x7232;&#x4E00;&#x500B;&#x96B1;&#x5F0F;&#x8A5E;&#x6CD5;&#x57DF;&#xFF0C;&#x7136;&#x5F8C;&#x6BCF;&#x500B;&#x662F;&#x6BCF;&#x500B;&#x5206;&#x652F;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x3002;</p>
<p>&#x5728;&#x5305;&#x7D1A;&#x522B;&#xFF0C;&#x8072;&#x660E;&#x7684;&#x9806;&#x5E8F;&#x4F75;&#x4E0D;&#x6703;&#x5F71;&#x97FF;&#x4F5C;&#x7528;&#x57DF;&#x8303;&#x570D;&#xFF0C;&#x56E0;&#x6B64;&#x4E00;&#x500B;&#x5148;&#x8072;&#x660E;&#x7684;&#x53EF;&#x4EE5;&#x5F15;&#x7528;&#x5B83;&#x81EA;&#x8EAB;&#x6216;&#x8005;&#x662F;&#x5F15;&#x7528;&#x5F8C;&#x9762;&#x7684;&#x4E00;&#x500B;&#x8072;&#x660E;&#xFF0C;&#x9019;&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x5B9A;&#x7FA9;&#x4E00;&#x4E9B;&#x76F8;&#x4E92;&#x5D4C;&#x5957;&#x6216;&#x905E;&#x6B78;&#x7684;&#x985E;&#x578B;&#x6216;&#x51FD;&#x6578;&#x3002;&#x4F46;&#x662F;&#x5982;&#x679C;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x6216;&#x5E38;&#x91CF;&#x905E;&#x6B78;&#x5F15;&#x7528;&#x4E86;&#x81EA;&#x8EAB;&#xFF0C;&#x5247;&#x6703;&#x7523;&#x751F;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;&#x3002;</p>
<p>&#x5728;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x4E2D;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">if</span> f, err := os.Open(fname); err != <span class="hljs-constant">nil</span> { <span class="hljs-comment">// compile error: unused: f</span>
<span class="hljs-keyword">return</span> err
}
f.ReadByte() <span class="hljs-comment">// compile error: undefined f</span>
f.Close() <span class="hljs-comment">// compile error: undefined f</span>
</code></pre>
<p>&#x8B8A;&#x91CF; f &#x7684;&#x4F5C;&#x7528;&#x57DF;&#x96BB;&#x6709;if&#x8A9E;&#x53E5;&#x5167;, &#x56E0;&#x6B64;&#x5F8C;&#x9762;&#x7684;&#x8A9E;&#x53E5;&#x5C07;&#x7121;&#x6CD5;&#x5F15;&#x5165;&#x5B83;, &#x5C07;&#x5C0E;&#x81F4;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;. &#x4F60;&#x53EF;&#x80FD;&#x6703;&#x6536;&#x5230;&#x4E00;&#x500B;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;f&#x6C92;&#x6709;&#x8072;&#x660E;&#x7684;&#x932F;&#x8AA4;&#x63D0;&#x793A;, &#x5177;&#x9AD4;&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#x4F9D;&#x8CF4;&#x7DE8;&#x8B6F;&#x5668;&#x7684;&#x5BE6;&#x73FE;.</p>
<p>&#x901A;&#x5E38;&#x9700;&#x8981;&#x5728;if&#x4E4B;&#x524D;&#x8072;&#x660E;&#x8B8A;&#x91CF;, &#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x78BA;&#x4FDD;&#x5F8C;&#x9762;&#x7684;&#x8A9E;&#x53E5;&#x4F9D;&#x7136;&#x53EF;&#x4EE5;&#x8A2A;&#x554F;&#x8B8A;&#x91CF;:</p>
<p>&#x8B8A;&#x91CF;f&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x96BB;&#x6709;&#x5728;if&#x8A9E;&#x53E5;&#x5167;&#xFF0C;&#x56E0;&#x6B64;&#x5F8C;&#x9762;&#x7684;&#x8A9E;&#x53E5;&#x5C07;&#x7121;&#x6CD5;&#x5F15;&#x5165;&#x5B83;&#xFF0C;&#x9019;&#x5C07;&#x5C0E;&#x81F4;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;&#x3002;&#x4F60;&#x53EF;&#x80FD;&#x6703;&#x6536;&#x5230;&#x4E00;&#x500B;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;f&#x6C92;&#x6709;&#x8072;&#x660E;&#x7684;&#x932F;&#x8AA4;&#x63D0;&#x793A;&#xFF0C;&#x5177;&#x9AD4;&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#x4F9D;&#x8CF4;&#x7DE8;&#x8B6F;&#x5668;&#x7684;&#x5BE6;&#x73FE;&#x3002;</p>
<p>&#x901A;&#x5E38;&#x9700;&#x8981;&#x5728;if&#x4E4B;&#x524D;&#x8072;&#x660E;&#x8B8A;&#x91CF;&#xFF0C;&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x78BA;&#x4FDD;&#x5F8C;&#x9762;&#x7684;&#x8A9E;&#x53E5;&#x4F9D;&#x7136;&#x53EF;&#x4EE5;&#x8A2A;&#x554F;&#x8B8A;&#x91CF;&#xFF1A;</p>
<pre><code class="lang-Go">f, err := os.Open(fname)
<span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> {
<span class="hljs-keyword">return</span> err
@@ -2089,7 +2093,7 @@ f.Close() <span class="hljs-comment">// compile error: undefined f</span>
f.ReadByte()
f.Close()
</code></pre>
<p>&#x4F60;&#x53EF;&#x80FD;&#x6703;&#x8003;&#x616E;&#x901A;&#x904E;&#x5C07;ReadByte&#x548C;Close&#x79FB;&#x52D5;&#x5230;if&#x7684;else&#x584A;&#x4F86;&#x89E3;&#x6C7A;&#x9019;&#x500B;&#x554F;&#x984C;:</p>
<p>&#x4F60;&#x53EF;&#x80FD;&#x6703;&#x8003;&#x616E;&#x901A;&#x904E;&#x5C07;ReadByte&#x548C;Close&#x79FB;&#x52D5;&#x5230;if&#x7684;else&#x584A;&#x4F86;&#x89E3;&#x6C7A;&#x9019;&#x500B;&#x554F;&#x984C;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">if</span> f, err := os.Open(fname); err != <span class="hljs-constant">nil</span> {
<span class="hljs-keyword">return</span> err
} <span class="hljs-keyword">else</span> {
@@ -2098,8 +2102,8 @@ f.Close()
f.Close()
}
</code></pre>
<p>&#x4F46;&#x9019;&#x4E0D;&#x662F;Go&#x63A8;&#x85A6;&#x7684;&#x505A;&#x6CD5;, Go&#x7684;&#x7FD2;&#x6163;&#x662F;&#x5728;if&#x4E2D;&#x8655;&#x7406;&#x932F;&#x8AA4;&#x7136;&#x5F8C;&#x76F4;&#x63A5;&#x8FD4;&#x8FF4;, &#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x78BA;&#x4FDD;&#x6B63;&#x5E38;&#x6210;&#x529F;&#x57F7;&#x884C;&#x7684;&#x8A9E;&#x53E5;&#x4E0D;&#x9700;&#x8981;&#x4EE3;&#x78BC;&#x7E2E;&#x9032;.</p>
<p>&#x8981;&#x7279;&#x522B;&#x8A3B;&#x610F;&#x77ED;&#x7684;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x8303;&#x570D;, &#x8003;&#x616E;&#x4E0B;&#x9762;&#x7684;&#x7A0B;&#x5E8F;, &#x5B83;&#x7684;&#x76EE;&#x7684;&#x662F;&#x7A6B;&#x53D6;&#x7576;&#x524D;&#x7684;&#x5DE5;&#x4F5C;&#x76EE;&#x9332;&#x7136;&#x5F8C;&#x4FDD;&#x5B58;&#x5230;&#x4E00;&#x500B;&#x5305;&#x7D1A;&#x7684;&#x8B8A;&#x91CF;&#x4E2D;. &#x9019;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x76F4;&#x63A5;&#x8ABF;&#x7528; os.Getwd &#x5B8C;&#x6210;, &#x4F46;&#x662F;&#x5C07;&#x9019;&#x500B;&#x5F9E;&#x4E3B;&#x908F;&#x8F2F;&#x4E2D;&#x5206;&#x96E2;&#x9F63;&#x4F86;&#x53EF;&#x80FD;&#x6703;&#x66F4;&#x597D;, &#x7279;&#x522B;&#x662F;&#x5728;&#x9700;&#x8981;&#x8655;&#x7406;&#x932F;&#x8AA4;&#x7684;&#x6642;&#x5019;. &#x51FD;&#x6578; log.Fatalf &#x6253;&#x5370;&#x4FE1;&#x606F;, &#x7136;&#x5F8C;&#x8ABF;&#x7528; os.Exit(1) &#x7D42;&#x6B62;&#x7A0B;&#x5E8F;.</p>
<p>&#x4F46;&#x9019;&#x4E0D;&#x662F;Go&#x8A9E;&#x8A00;&#x63A8;&#x85A6;&#x7684;&#x505A;&#x6CD5;&#xFF0C;Go&#x8A9E;&#x8A00;&#x7684;&#x7FD2;&#x6163;&#x662F;&#x5728;if&#x4E2D;&#x8655;&#x7406;&#x932F;&#x8AA4;&#x7136;&#x5F8C;&#x76F4;&#x63A5;&#x8FD4;&#x8FF4;&#xFF0C;&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x78BA;&#x4FDD;&#x6B63;&#x5E38;&#x57F7;&#x884C;&#x7684;&#x8A9E;&#x53E5;&#x4E0D;&#x9700;&#x8981;&#x4EE3;&#x78BC;&#x7E2E;&#x9032;&#x3002;</p>
<p>&#x8981;&#x7279;&#x522B;&#x8A3B;&#x610F;&#x77ED;&#x8B8A;&#x91CF;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x7684;&#x4F5C;&#x7528;&#x57DF;&#x8303;&#x570D;&#xFF0C;&#x8003;&#x616E;&#x4E0B;&#x9762;&#x7684;&#x7A0B;&#x5E8F;&#xFF0C;&#x5B83;&#x7684;&#x76EE;&#x7684;&#x662F;&#x7372;&#x53D6;&#x7576;&#x524D;&#x7684;&#x5DE5;&#x4F5C;&#x76EE;&#x9332;&#x7136;&#x5F8C;&#x4FDD;&#x5B58;&#x5230;&#x4E00;&#x500B;&#x5305;&#x7D1A;&#x7684;&#x8B8A;&#x91CF;&#x4E2D;&#x3002;&#x9019;&#x53EF;&#x4EE5;&#x672C;&#x4F86;&#x901A;&#x904E;&#x76F4;&#x63A5;&#x8ABF;&#x7528;os.Getwd&#x5B8C;&#x6210;&#xFF0C;&#x4F46;&#x662F;&#x5C07;&#x9019;&#x500B;&#x5F9E;&#x4E3B;&#x908F;&#x8F2F;&#x4E2D;&#x5206;&#x96E2;&#x51FA;&#x4F86;&#x53EF;&#x80FD;&#x6703;&#x66F4;&#x597D;&#xFF0C;&#x7279;&#x522B;&#x662F;&#x5728;&#x9700;&#x8981;&#x8655;&#x7406;&#x932F;&#x8AA4;&#x7684;&#x6642;&#x5019;&#x3002;&#x51FD;&#x6578;log.Fatalf&#x7528;&#x65BC;&#x6253;&#x5370;&#x65E5;&#x8A8C;&#x4FE1;&#x606F;&#xFF0C;&#x7136;&#x5F8C;&#x8ABF;&#x7528;os.Exit(1)&#x7D42;&#x6B62;&#x7A0B;&#x5E8F;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> cwd <span class="hljs-typename">string</span>
<span class="hljs-keyword">func</span> init() {
@@ -2109,8 +2113,8 @@ f.Close()
}
}
</code></pre>
<p>&#x96D6;&#x7136;cwd&#x5728;&#x5916;&#x90E8;&#x5DF2;&#x7D93;&#x8072;&#x660E;&#x904E;, &#x4F46;&#x662F; <code>:=</code> &#x8A9E;&#x53E5;&#x9084;&#x662F;&#x5C07; cwd &#x548C; err &#x91CD;&#x65B0;&#x8072;&#x660E;&#x7232;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;. &#x5167;&#x90E8;&#x8072;&#x660E;&#x7684; cwd &#x5C07;&#x5C4F;&#x853D;&#x5916;&#x90E8;&#x7684;&#x8072;&#x660E;, &#x56E0;&#x6B64;&#x4E0A;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x4F75;&#x4E0D;&#x6703;&#x66F4;&#x65B0;&#x5305;&#x7D1A;&#x8072;&#x660E;&#x7684; cwd &#x8B8A;&#x91CF;.</p>
<p>&#x7576;&#x524D;&#x7684;&#x7DE8;&#x8B6F;&#x5668;&#x5C07;&#x6AA2;&#x6E2C;&#x5230;&#x5C40;&#x90E8;&#x8072;&#x660E;&#x7684;cwd&#x4F75;&#x6C92;&#x6709;&#x672C;&#x4F7F;&#x7528;, &#x7136;&#x5F8C;&#x5831;&#x544A;&#x9019;&#x53EF;&#x80FD;&#x662F;&#x4E00;&#x500B;&#x932F;&#x8AA4;, &#x4F46;&#x662F;&#x9019;&#x7A2E;&#x6AA2;&#x6E2C;&#x4F75;&#x4E0D;&#x53EF;&#x9760;. &#x4E00;&#x4E9B;&#x5C0F;&#x7684;&#x4EE3;&#x78BC;&#x8B8A;&#x66F4;, &#x4F8B;&#x5982;&#x589E;&#x52A0;&#x4E00;&#x500B;&#x5C40;&#x90E8;cwd&#x7684;&#x6253;&#x5370;&#x8A9E;&#x53E5;, &#x5C31;&#x53EF;&#x80FD;&#x5C0E;&#x81F4;&#x9019;&#x7A2E;&#x6AA2;&#x6E2C;&#x5931;&#x6548;.</p>
<p>&#x96D6;&#x7136;cwd&#x5728;&#x5916;&#x90E8;&#x5DF2;&#x7D93;&#x8072;&#x660E;&#x904E;&#xFF0C;&#x4F46;&#x662F;<code>:=</code>&#x8A9E;&#x53E5;&#x9084;&#x662F;&#x5C07;cwd&#x548C;err&#x91CD;&#x65B0;&#x8072;&#x660E;&#x7232;&#x65B0;&#x7684;&#x5C40;&#x90E8;&#x8B8A;&#x91CF;&#x3002;&#x56E0;&#x7232;&#x5167;&#x90E8;&#x8072;&#x660E;&#x7684;cwd&#x5C07;&#x5C4F;&#x853D;&#x5916;&#x90E8;&#x7684;&#x8072;&#x660E;&#xFF0C;&#x56E0;&#x6B64;&#x4E0A;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x4F75;&#x4E0D;&#x6703;&#x6B63;&#x78BA;&#x66F4;&#x65B0;&#x5305;&#x7D1A;&#x8072;&#x660E;&#x7684;cwd&#x8B8A;&#x91CF;&#x3002;</p>
<p>&#x7531;&#x65BC;&#x7576;&#x524D;&#x7684;&#x7DE8;&#x8B6F;&#x5668;&#x6703;&#x6AA2;&#x6E2C;&#x5230;&#x5C40;&#x90E8;&#x8072;&#x660E;&#x7684;cwd&#x4F75;&#x6C92;&#x6709;&#x672C;&#x4F7F;&#x7528;&#xFF0C;&#x7136;&#x5F8C;&#x5831;&#x544A;&#x9019;&#x53EF;&#x80FD;&#x662F;&#x4E00;&#x500B;&#x932F;&#x8AA4;&#xFF0C;&#x4F46;&#x662F;&#x9019;&#x7A2E;&#x6AA2;&#x6E2C;&#x4F75;&#x4E0D;&#x53EF;&#x9760;&#x3002;&#x56E0;&#x7232;&#x4E00;&#x4E9B;&#x5C0F;&#x7684;&#x4EE3;&#x78BC;&#x8B8A;&#x66F4;&#xFF0C;&#x4F8B;&#x5982;&#x589E;&#x52A0;&#x4E00;&#x500B;&#x5C40;&#x90E8;cwd&#x7684;&#x6253;&#x5370;&#x8A9E;&#x53E5;&#xFF0C;&#x5C31;&#x53EF;&#x80FD;&#x5C0E;&#x81F4;&#x9019;&#x7A2E;&#x6AA2;&#x6E2C;&#x5931;&#x6548;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> cwd <span class="hljs-typename">string</span>
<span class="hljs-keyword">func</span> init() {
@@ -2121,8 +2125,8 @@ f.Close()
log.Printf(<span class="hljs-string">&quot;Working directory = %s&quot;</span>, cwd)
}
</code></pre>
<p>&#x5168;&#x5C40;&#x7684;cwd&#x8B8A;&#x91CF;&#x4F9D;&#x7136;&#x662F;&#x6C92;&#x6709;&#x88AB;&#x6B63;&#x78BA;&#x521D;&#x59CB;&#x5316;&#x7684;, &#x800C;&#x4E14;&#x770B;&#x4F3C;&#x6B63;&#x5E38;&#x7684;&#x65E5;&#x8A8C;&#x8F38;&#x9F63;&#x66F4;&#x662F;&#x9019;&#x500B;BUG&#x66F4;&#x52A0;&#x96B1;&#x6666;.</p>
<p>&#x6709;&#x8A31;&#x591A;&#x65B9;&#x5F0F;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x9F63;&#x73FE;&#x985E;&#x4F3C;&#x6F5B;&#x5728;&#x7684;&#x554F;&#x984C;. &#x6700;&#x76F4;&#x63A5;&#x7684;&#x662F;&#x901A;&#x904E;&#x55AE;&#x7368;&#x8072;&#x660E;err&#x8B8A;&#x91CF;, &#x4F86;&#x907F;&#x514D;&#x4F7F;&#x7528; <code>:=</code> &#x7684;&#x7C21;&#x77ED;&#x8072;&#x660E;&#x65B9;&#x5F0F;:</p>
<p>&#x5168;&#x5C40;&#x7684;cwd&#x8B8A;&#x91CF;&#x4F9D;&#x7136;&#x662F;&#x6C92;&#x6709;&#x88AB;&#x6B63;&#x78BA;&#x521D;&#x59CB;&#x5316;&#x7684;&#xFF0C;&#x800C;&#x4E14;&#x770B;&#x4F3C;&#x6B63;&#x5E38;&#x7684;&#x65E5;&#x8A8C;&#x8F38;&#x51FA;&#x66F4;&#x662F;&#x8B93;&#x9019;&#x500B;BUG&#x66F4;&#x52A0;&#x96B1;&#x6666;&#x3002;</p>
<p>&#x6709;&#x8A31;&#x591A;&#x65B9;&#x5F0F;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x51FA;&#x73FE;&#x985E;&#x4F3C;&#x6F5B;&#x5728;&#x7684;&#x554F;&#x984C;&#x3002;&#x6700;&#x76F4;&#x63A5;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x901A;&#x904E;&#x55AE;&#x7368;&#x8072;&#x660E;err&#x8B8A;&#x91CF;&#xFF0C;&#x4F86;&#x907F;&#x514D;&#x4F7F;&#x7528;<code>:=</code>&#x7684;&#x7C21;&#x77ED;&#x8072;&#x660E;&#x65B9;&#x5F0F;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> cwd <span class="hljs-typename">string</span>
<span class="hljs-keyword">func</span> init() {
@@ -2133,8 +2137,7 @@ f.Close()
}
}
</code></pre>
<p>&#x6211;&#x5011;&#x5DF2;&#x7D93;&#x770B;&#x5230;&#x5305;, &#x6587;&#x4EF6;, &#x8072;&#x660E;&#x548C;&#x8A9E;&#x53E5;&#x5982;&#x4F55;&#x4F86;&#x8868;&#x9054;&#x4E00;&#x500B;&#x7A0B;&#x5E8F;&#x7D50;&#x69CB;. &#x5728;&#x4E0B;&#x9762;&#x7684;&#x5169;&#x500B;&#x7AE0;&#x7BC0;, &#x6211;&#x5011;&#x5C07;&#x63A2;&#x8A0E;&#x6578;&#x64DA;&#x7684;&#x7D50;&#x69CB;.</p>
<p><strong>&#x8B6F;&#x8A3B;: &#x672C;&#x7AE0;&#x7684;&#x8A5E;&#x6CD5;&#x57DF;&#x548C;&#x4F5C;&#x7528;&#x57DF;&#x6982;&#x5FF5;&#x6709;&#x4E9B;&#x6DF7;&#x6DC6;, &#x9700;&#x8981;&#x91CD;&#x8B6F;&#x4E00;&#x904D;.</strong></p>
<p>&#x6211;&#x5011;&#x5DF2;&#x7D93;&#x770B;&#x5230;&#x5305;&#x3001;&#x6587;&#x4EF6;&#x3001;&#x8072;&#x660E;&#x548C;&#x8A9E;&#x53E5;&#x5982;&#x4F55;&#x4F86;&#x8868;&#x9054;&#x4E00;&#x500B;&#x7A0B;&#x5E8F;&#x7D50;&#x69CB;&#x3002;&#x5728;&#x4E0B;&#x9762;&#x7684;&#x5169;&#x500B;&#x7AE0;&#x7BC0;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x63A2;&#x8A0E;&#x6578;&#x64DA;&#x7684;&#x7D50;&#x69CB;&#x3002;</p>
</section>
@@ -2166,7 +2169,7 @@ f.Close()
<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>

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="2" data-chapter-title="程序結構" data-filepath="ch2/ch2.md" data-basepath=".." data-revision="Fri Dec 25 2015 12:32:44 GMT+0800 (中国标准时间)">
<div class="book" data-level="2" data-chapter-title="程序結構" data-filepath="ch2/ch2.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>
@@ -2020,8 +2024,8 @@
<section class="normal" id="section-">
<h1 id="&#x7B2C;2&#x7AE0;-&#x7A0B;&#x5E8F;&#x7D50;&#x69CB;">&#x7B2C;2&#x7AE0; &#x7A0B;&#x5E8F;&#x7D50;&#x69CB;</h1>
<p>Go&#x8A9E;&#x8A00;&#x548C;&#x4EFB;&#x4F55;&#x5176;&#x4ED6;&#x8A9E;&#x8A00;&#x4E00;&#x6A23;, &#x4E00;&#x500B;&#x5927;&#x7684;&#x7A0B;&#x5E8F;&#x662F;&#x6709;&#x5F88;&#x591A;&#x5C0F;&#x7684;&#x57FA;&#x790E;&#x69CB;&#x4EF6;&#x7D44;&#x6210;&#x7684;. &#x8B8A;&#x91CF;&#x4FDD;&#x5B58;&#x503C;. &#x7C21;&#x55AE;&#x7684;&#x52A0;&#x6CD5;&#x548C;&#x6E1B;&#x6CD5;&#x904B;&#x7B97;&#x88AB;&#x7D44;&#x5408;&#x6210;&#x8F03;&#x5927;&#x7684;&#x8868;&#x9054;&#x5F0F;. &#x57FA;&#x790E;&#x985E;&#x578B;&#x88AB;&#x805A;&#x5408;&#x7232;&#x6578;&#x7D44;&#x6216;&#x7D50;&#x69CB;&#x9AD4;. &#x7136;&#x5F8C;&#x4F7F;&#x7528;if&#x548C;for&#x4E4B;&#x985E;&#x7684;&#x63A7;&#x88FD;&#x8A9E;&#x53E5;&#x4F86;&#x7D44;&#x7E54;&#x548C;&#x63A7;&#x88FD;&#x8868;&#x9054;&#x5F0F;&#x7684;&#x57F7;&#x884C;&#x9806;&#x5E8F;. &#x7136;&#x5F8C;&#x591A;&#x500B;&#x8A9E;&#x53E5;&#x88AB;&#x7D44;&#x7E54;&#x5230;&#x51FD;&#x6578;&#x4E2D;, &#x4EE5;&#x4FBF;&#x4EE3;&#x78BC;&#x7684;&#x9694;&#x96E2;&#x548C;&#x8907;&#x7528;. &#x51FD;&#x6578;&#x4EE5;&#x6E90;&#x6587;&#x4EF6;&#x548C;&#x5305;&#x7684;&#x65B9;&#x5F0F;&#x7D44;&#x7E54;.</p>
<p>&#x6211;&#x5011;&#x5DF2;&#x7D93;&#x5728;&#x524D;&#x9762;&#x7684;&#x7AE0;&#x7BC0;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#x770B;&#x5230;&#x4E86;&#x5927;&#x90E8;&#x5206;&#x7684;&#x4F8B;&#x5B50;. &#x5728;&#x672C;&#x7AE0;&#x4E2D;, &#x6211;&#x5011;&#x5C07;&#x6DF1;&#x5165;&#x8A0E;&#x8AD6;Go&#x7A0B;&#x5E8F;&#x7684;&#x57FA;&#x790E;&#x7D50;&#x69CB;&#x7684;&#x4E00;&#x4E9B;&#x7D30;&#x7BC0;. &#x6BCF;&#x500B;&#x793A;&#x4F8B;&#x7A0B;&#x5E8F;&#x90FD;&#x662F;&#x523B;&#x610F;&#x5BEB;&#x7684;&#x7C21;&#x55AE;, &#x9019;&#x6A23;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x6E1B;&#x5C11;&#x88AB;&#x8907;&#x96DC;&#x7684;&#x7B97;&#x6CD5;&#x548C;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x6240;&#x69A6;&#x64FE;, &#x5F9E;&#x800C;&#x5C08;&#x8A3B;&#x65BC;&#x8A9E;&#x8A00;&#x672C;&#x8EAB;&#x7684;&#x5B78;&#x7FD2;. </p>
<p>Go&#x8A9E;&#x8A00;&#x548C;&#x5176;&#x4ED6;&#x7DE8;&#x7A0B;&#x8A9E;&#x8A00;&#x4E00;&#x6A23;&#xFF0C;&#x4E00;&#x500B;&#x5927;&#x7684;&#x7A0B;&#x5E8F;&#x662F;&#x7531;&#x5F88;&#x591A;&#x5C0F;&#x7684;&#x57FA;&#x790E;&#x69CB;&#x4EF6;&#x7D44;&#x6210;&#x7684;&#x3002;&#x8B8A;&#x91CF;&#x4FDD;&#x5B58;&#x503C;&#xFF0C;&#x7C21;&#x55AE;&#x7684;&#x52A0;&#x6CD5;&#x548C;&#x6E1B;&#x6CD5;&#x904B;&#x7B97;&#x88AB;&#x7D44;&#x5408;&#x6210;&#x8F03;&#x8907;&#x96DC;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x3002;&#x57FA;&#x790E;&#x985E;&#x578B;&#x88AB;&#x805A;&#x5408;&#x7232;&#x6578;&#x7D44;&#x6216;&#x7D50;&#x69CB;&#x9AD4;&#x7B49;&#x66F4;&#x8907;&#x96DC;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x3002;&#x7136;&#x5F8C;&#x4F7F;&#x7528;if&#x548C;for&#x4E4B;&#x985E;&#x7684;&#x63A7;&#x88FD;&#x8A9E;&#x53E5;&#x4F86;&#x7D44;&#x7E54;&#x548C;&#x63A7;&#x88FD;&#x8868;&#x9054;&#x5F0F;&#x7684;&#x57F7;&#x884C;&#x6D41;&#x7A0B;&#x3002;&#x7136;&#x5F8C;&#x591A;&#x500B;&#x8A9E;&#x53E5;&#x88AB;&#x7D44;&#x7E54;&#x5230;&#x4E00;&#x500B;&#x500B;&#x51FD;&#x6578;&#x4E2D;&#xFF0C;&#x4EE5;&#x4FBF;&#x4EE3;&#x78BC;&#x7684;&#x9694;&#x96E2;&#x548C;&#x8907;&#x7528;&#x3002;&#x51FD;&#x6578;&#x4EE5;&#x6E90;&#x6587;&#x4EF6;&#x548C;&#x5305;&#x7684;&#x65B9;&#x5F0F;&#x88AB;&#x7D44;&#x7E54;&#x3002;</p>
<p>&#x6211;&#x5011;&#x5DF2;&#x7D93;&#x5728;&#x524D;&#x9762;&#x7AE0;&#x7BC0;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#x770B;&#x5230;&#x4E86;&#x5F88;&#x591A;&#x4F8B;&#x5B50;&#x3002;&#x5728;&#x672C;&#x7AE0;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x6DF1;&#x5165;&#x8A0E;&#x8AD6;Go&#x7A0B;&#x5E8F;&#x57FA;&#x790E;&#x7D50;&#x69CB;&#x65B9;&#x9762;&#x7684;&#x4E00;&#x4E9B;&#x7D30;&#x7BC0;&#x3002;&#x6BCF;&#x500B;&#x793A;&#x4F8B;&#x7A0B;&#x5E8F;&#x90FD;&#x662F;&#x523B;&#x610F;&#x5BEB;&#x7684;&#x7C21;&#x55AE;&#xFF0C;&#x9019;&#x6A23;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x6E1B;&#x5C11;&#x8907;&#x96DC;&#x7684;&#x7B97;&#x6CD5;&#x6216;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x7B49;&#x4E0D;&#x76F8;&#x95DC;&#x7684;&#x554F;&#x984C;&#x5E36;&#x4F86;&#x7684;&#x69A6;&#x64FE;&#xFF0C;&#x5F9E;&#x800C;&#x53EF;&#x4EE5;&#x5C08;&#x8A3B;&#x65BC;Go&#x8A9E;&#x8A00;&#x672C;&#x8EAB;&#x7684;&#x5B78;&#x7FD2;&#x3002; </p>
</section>
@@ -2053,7 +2057,7 @@
<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>