This commit is contained in:
chai2010
2015-12-31 16:20:27 +08:00
parent 775502e64d
commit e8809e8c45
125 changed files with 1858 additions and 648 deletions

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>附録 | Go编程语言</title> <title>附録 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -46,7 +46,7 @@
<body> <body>
<div class="book" data-level="14" data-chapter-title="附録" data-filepath="CONTRIBUTORS.md" data-basepath="." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="14" data-chapter-title="附録" data-filepath="CONTRIBUTORS.md" data-basepath="." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -573,7 +573,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -588,7 +588,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2011,7 +2011,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="./" >Go编程语言</a> <a href="./" >Go语言圣经</a>
</h1> </h1>
</div> </div>
@@ -2040,7 +2040,7 @@
<tbody> <tbody>
<tr> <tr>
<td><code>chai2010 &lt;chaishushan@gmail.com&gt;</code></td> <td><code>chai2010 &lt;chaishushan@gmail.com&gt;</code></td>
<td>&#x524D;&#x8A00;/&#x7B2C;&#x4E8C;&#x7AE0;/&#x7B2C;&#x4E09;&#x7AE0;/&#x7B2C;&#x5341;&#x7AE0;/&#x7B2C;&#x5341;&#x4E00;&#x7AE0;/&#x7B2C;&#x5341;&#x4E8C;&#x7AE0;/&#x7B2C;&#x5341;&#x4E09;&#x7AE0;</td> <td>&#x524D;&#x8A00;/&#x7B2C;&#x4E8C;&#x7AE0;/&#x7B2C;&#x4E09;&#x7AE0;/&#x7B2C;&#x56DB;&#x7AE0;/&#x7B2C;&#x5341;&#x7AE0;/&#x7B2C;&#x5341;&#x4E00;&#x7AE0;/&#x7B2C;&#x5341;&#x4E8C;&#x7AE0;/&#x7B2C;&#x5341;&#x4E09;&#x7AE0;</td>
</tr> </tr>
<tr> <tr>
<td><code>CrazySssst</code></td> <td><code>CrazySssst</code></td>

View File

@@ -1,6 +1,6 @@
# Go語言聖經中文版 # Go語言聖經中文版
Go語言聖經 [《The Go Programming Language》](http://gopl.io) 中文版本,僅供編程、英語學習、Gitbook、Markdown等學習交流之用。 Go語言聖經 [《The Go Programming Language》](http://gopl.io) 中文版本,僅供學習交流之用。
- 項目主頁http://github.com/golang-china/gopl-zh - 項目主頁http://github.com/golang-china/gopl-zh
- 項目進度http://github.com/golang-china/gopl-zh/blob/master/progress.md - 項目進度http://github.com/golang-china/gopl-zh/blob/master/progress.md
@@ -14,13 +14,19 @@ Go語言聖經 [《The Go Programming Language》](http://gopl.io) 中文版本
### 從源文件構建 ### 從源文件構建
先安裝Go語言環境Git工具和GitBook命令行工具(`npm install gitbook-cli -g`命令)。 先安裝NodeJS和GitBook命令行工具(`npm install gitbook-cli -g`命令)。
1. 運行`go get github.com/golang-china/gopl-zh`,獲取源文件。 1. 下載 https://github.com/golang-china/gopl-zh/archive/master.zip ,獲取源文件。
2. 運行`go generate github.com/golang-china/gopl-zh`,生成`_book`目録 2. 切換到 `gopl-zh` 目録,運行 `gitbook install`安裝GitBook插件
3. 打開`_book/index.html`文件 3. 運行`gitbook build`,生成`_book`目録
4. 打開`_book/index.html`文件。
### 簡體中文讀者 ### 簡體/繁體轉換
切片到 `gopl-zh` 目録:
- `make zh2tw``go run zh2tw.go . "\.md$" zh2tw`,轉繁體。
- `make tw2zh``go run zh2tw.go . "\.md$" tw2zh`,轉簡體。
如果是使用簡體中文的用戶,可在執行上述命令前運行`make tw2zh`命令,將繁體中文轉換爲簡體中文。 如果是使用簡體中文的用戶,可在執行上述命令前運行`make tw2zh`命令,將繁體中文轉換爲簡體中文。

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Go語言起源 | Go编程语言</title> <title>Go語言起源 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="0.1" data-chapter-title="Go語言起源" data-filepath="ch0/ch0-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="0.1" data-chapter-title="Go語言起源" data-filepath="ch0/ch0-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Go語言項目 | Go编程语言</title> <title>Go語言項目 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="0.2" data-chapter-title="Go語言項目" data-filepath="ch0/ch0-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="0.2" data-chapter-title="Go語言項目" data-filepath="ch0/ch0-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>本書的組織 | Go编程语言</title> <title>本書的組織 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="0.3" data-chapter-title="本書的組織" data-filepath="ch0/ch0-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="0.3" data-chapter-title="本書的組織" data-filepath="ch0/ch0-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>更多的信息 | Go编程语言</title> <title>更多的信息 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="0.4" data-chapter-title="更多的信息" data-filepath="ch0/ch0-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="0.4" data-chapter-title="更多的信息" data-filepath="ch0/ch0-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>致謝 | Go编程语言</title> <title>致謝 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="0.5" data-chapter-title="致謝" data-filepath="ch0/ch0-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="0.5" data-chapter-title="致謝" data-filepath="ch0/ch0-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Hello, World | Go编程语言</title> <title>Hello, World | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="1.1" data-chapter-title="Hello, World" data-filepath="ch1/ch1-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="1.1" data-chapter-title="Hello, World" data-filepath="ch1/ch1-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>命令行參數 | Go编程语言</title> <title>命令行參數 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="1.2" data-chapter-title="命令行參數" data-filepath="ch1/ch1-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="1.2" data-chapter-title="命令行參數" data-filepath="ch1/ch1-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>査找重複的行 | Go编程语言</title> <title>査找重複的行 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="1.3" data-chapter-title="査找重複的行" data-filepath="ch1/ch1-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="1.3" data-chapter-title="査找重複的行" data-filepath="ch1/ch1-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>GIF動畵 | Go编程语言</title> <title>GIF動畵 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="1.4" data-chapter-title="GIF動畵" data-filepath="ch1/ch1-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="1.4" data-chapter-title="GIF動畵" data-filepath="ch1/ch1-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>獲取URL | Go编程语言</title> <title>獲取URL | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="1.5" data-chapter-title="獲取URL" data-filepath="ch1/ch1-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="1.5" data-chapter-title="獲取URL" data-filepath="ch1/ch1-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>併發獲取多個URL | Go编程语言</title> <title>併發獲取多個URL | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="1.6" data-chapter-title="併發獲取多個URL" data-filepath="ch1/ch1-06.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="1.6" data-chapter-title="併發獲取多個URL" data-filepath="ch1/ch1-06.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Web服務 | Go编程语言</title> <title>Web服務 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="1.7" data-chapter-title="Web服務" data-filepath="ch1/ch1-07.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="1.7" data-chapter-title="Web服務" data-filepath="ch1/ch1-07.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>本章要點 | Go编程语言</title> <title>本章要點 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="1.8" data-chapter-title="本章要點" data-filepath="ch1/ch1-08.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="1.8" data-chapter-title="本章要點" data-filepath="ch1/ch1-08.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>入門 | Go编程语言</title> <title>入門 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="1" data-chapter-title="入門" data-filepath="ch1/ch1.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="1" data-chapter-title="入門" data-filepath="ch1/ch1.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>簡介 | Go编程语言</title> <title>簡介 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="10.1" data-chapter-title="簡介" data-filepath="ch10/ch10-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="10.1" data-chapter-title="簡介" data-filepath="ch10/ch10-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>導入路徑 | Go编程语言</title> <title>導入路徑 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="10.2" data-chapter-title="導入路徑" data-filepath="ch10/ch10-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="10.2" data-chapter-title="導入路徑" data-filepath="ch10/ch10-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>包聲明 | Go编程语言</title> <title>包聲明 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="10.3" data-chapter-title="包聲明" data-filepath="ch10/ch10-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="10.3" data-chapter-title="包聲明" data-filepath="ch10/ch10-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>導入聲明 | Go编程语言</title> <title>導入聲明 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="10.4" data-chapter-title="導入聲明" data-filepath="ch10/ch10-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="10.4" data-chapter-title="導入聲明" data-filepath="ch10/ch10-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>匿名導入 | Go编程语言</title> <title>匿名導入 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="10.5" data-chapter-title="匿名導入" data-filepath="ch10/ch10-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="10.5" data-chapter-title="匿名導入" data-filepath="ch10/ch10-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>包和命名 | Go编程语言</title> <title>包和命名 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="10.6" data-chapter-title="包和命名" data-filepath="ch10/ch10-06.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="10.6" data-chapter-title="包和命名" data-filepath="ch10/ch10-06.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>工具 | Go编程语言</title> <title>工具 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="10.7" data-chapter-title="工具" data-filepath="ch10/ch10-07.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="10.7" data-chapter-title="工具" data-filepath="ch10/ch10-07.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>包和工具 | Go编程语言</title> <title>包和工具 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="10" data-chapter-title="包和工具" data-filepath="ch10/ch10.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="10" data-chapter-title="包和工具" data-filepath="ch10/ch10.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>go test | Go编程语言</title> <title>go test | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="11.1" data-chapter-title="go test" data-filepath="ch11/ch11-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="11.1" data-chapter-title="go test" data-filepath="ch11/ch11-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>測試函數 | Go编程语言</title> <title>測試函數 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="11.2" data-chapter-title="測試函數" data-filepath="ch11/ch11-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="11.2" data-chapter-title="測試函數" data-filepath="ch11/ch11-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>測試覆蓋率 | Go编程语言</title> <title>測試覆蓋率 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="11.3" data-chapter-title="測試覆蓋率" data-filepath="ch11/ch11-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="11.3" data-chapter-title="測試覆蓋率" data-filepath="ch11/ch11-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>基準測試 | Go编程语言</title> <title>基準測試 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="11.4" data-chapter-title="基準測試" data-filepath="ch11/ch11-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="11.4" data-chapter-title="基準測試" data-filepath="ch11/ch11-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>剖析 | Go编程语言</title> <title>剖析 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="11.5" data-chapter-title="剖析" data-filepath="ch11/ch11-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="11.5" data-chapter-title="剖析" data-filepath="ch11/ch11-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>示例函數 | Go编程语言</title> <title>示例函數 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="11.6" data-chapter-title="示例函數" data-filepath="ch11/ch11-06.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="11.6" data-chapter-title="示例函數" data-filepath="ch11/ch11-06.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>測試 | Go编程语言</title> <title>測試 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="11" data-chapter-title="測試" data-filepath="ch11/ch11.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="11" data-chapter-title="測試" data-filepath="ch11/ch11.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>爲何需要反射? | Go编程语言</title> <title>爲何需要反射? | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="12.1" data-chapter-title="爲何需要反射?" data-filepath="ch12/ch12-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="12.1" data-chapter-title="爲何需要反射?" data-filepath="ch12/ch12-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>reflect.Type和reflect.Value | Go编程语言</title> <title>reflect.Type和reflect.Value | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="12.2" data-chapter-title="reflect.Type和reflect.Value" data-filepath="ch12/ch12-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="12.2" data-chapter-title="reflect.Type和reflect.Value" data-filepath="ch12/ch12-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Display遞歸打印 | Go编程语言</title> <title>Display遞歸打印 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="12.3" data-chapter-title="Display遞歸打印" data-filepath="ch12/ch12-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="12.3" data-chapter-title="Display遞歸打印" data-filepath="ch12/ch12-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>示例: 編碼S表達式 | Go编程语言</title> <title>示例: 編碼S表達式 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="12.4" data-chapter-title="示例: 編碼S表達式" data-filepath="ch12/ch12-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="12.4" data-chapter-title="示例: 編碼S表達式" data-filepath="ch12/ch12-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>通過reflect.Value脩改值 | Go编程语言</title> <title>通過reflect.Value脩改值 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="12.5" data-chapter-title="通過reflect.Value脩改值" data-filepath="ch12/ch12-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="12.5" data-chapter-title="通過reflect.Value脩改值" data-filepath="ch12/ch12-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>示例: 解碼S表達式 | Go编程语言</title> <title>示例: 解碼S表達式 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="12.6" data-chapter-title="示例: 解碼S表達式" data-filepath="ch12/ch12-06.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="12.6" data-chapter-title="示例: 解碼S表達式" data-filepath="ch12/ch12-06.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>獲取結構體字段標識 | Go编程语言</title> <title>獲取結構體字段標識 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="12.7" data-chapter-title="獲取結構體字段標識" data-filepath="ch12/ch12-07.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="12.7" data-chapter-title="獲取結構體字段標識" data-filepath="ch12/ch12-07.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>顯示一個類型的方法集 | Go编程语言</title> <title>顯示一個類型的方法集 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="12.8" data-chapter-title="顯示一個類型的方法集" data-filepath="ch12/ch12-08.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="12.8" data-chapter-title="顯示一個類型的方法集" data-filepath="ch12/ch12-08.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>幾點忠告 | Go编程语言</title> <title>幾點忠告 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="12.9" data-chapter-title="幾點忠告" data-filepath="ch12/ch12-09.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="12.9" data-chapter-title="幾點忠告" data-filepath="ch12/ch12-09.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>反射 | Go编程语言</title> <title>反射 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="12" data-chapter-title="反射" data-filepath="ch12/ch12.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="12" data-chapter-title="反射" data-filepath="ch12/ch12.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>unsafe.Sizeof, Alignof 和 Offsetof | Go编程语言</title> <title>unsafe.Sizeof, Alignof 和 Offsetof | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="13.1" data-chapter-title="unsafe.Sizeof, Alignof 和 Offsetof" data-filepath="ch13/ch13-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="13.1" data-chapter-title="unsafe.Sizeof, Alignof 和 Offsetof" data-filepath="ch13/ch13-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>unsafe.Pointer | Go编程语言</title> <title>unsafe.Pointer | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="13.2" data-chapter-title="unsafe.Pointer" data-filepath="ch13/ch13-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="13.2" data-chapter-title="unsafe.Pointer" data-filepath="ch13/ch13-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>示例: 深度相等判斷 | Go编程语言</title> <title>示例: 深度相等判斷 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="13.3" data-chapter-title="示例: 深度相等判斷" data-filepath="ch13/ch13-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="13.3" data-chapter-title="示例: 深度相等判斷" data-filepath="ch13/ch13-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>通過cgo調用C代碼 | Go编程语言</title> <title>通過cgo調用C代碼 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="13.4" data-chapter-title="通過cgo調用C代碼" data-filepath="ch13/ch13-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="13.4" data-chapter-title="通過cgo調用C代碼" data-filepath="ch13/ch13-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>幾點忠告 | Go编程语言</title> <title>幾點忠告 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="13.5" data-chapter-title="幾點忠告" data-filepath="ch13/ch13-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="13.5" data-chapter-title="幾點忠告" data-filepath="ch13/ch13-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>底層編程 | Go编程语言</title> <title>底層編程 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="13" data-chapter-title="底層編程" data-filepath="ch13/ch13.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="13" data-chapter-title="底層編程" data-filepath="ch13/ch13.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>命名 | Go编程语言</title> <title>命名 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<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" data-level="2.1" data-chapter-title="命名" data-filepath="ch2/ch2-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>聲明 | Go编程语言</title> <title>聲明 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<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" data-level="2.2" data-chapter-title="聲明" data-filepath="ch2/ch2-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>變量 | Go编程语言</title> <title>變量 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<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" data-level="2.3" data-chapter-title="變量" data-filepath="ch2/ch2-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>賦值 | Go编程语言</title> <title>賦值 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<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" data-level="2.4" data-chapter-title="賦值" data-filepath="ch2/ch2-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>類型 | Go编程语言</title> <title>類型 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<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" data-level="2.5" data-chapter-title="類型" data-filepath="ch2/ch2-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>包和文件 | Go编程语言</title> <title>包和文件 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<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" data-level="2.6" data-chapter-title="包和文件" data-filepath="ch2/ch2-06.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>作用域 | Go编程语言</title> <title>作用域 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<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" data-level="2.7" data-chapter-title="作用域" data-filepath="ch2/ch2-07.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>程序結構 | Go编程语言</title> <title>程序結構 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<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" data-level="2" data-chapter-title="程序結構" data-filepath="ch2/ch2.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>整型 | Go编程语言</title> <title>整型 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="3.1" data-chapter-title="整型" data-filepath="ch3/ch3-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="3.1" data-chapter-title="整型" data-filepath="ch3/ch3-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>浮點數 | Go编程语言</title> <title>浮點數 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="3.2" data-chapter-title="浮點數" data-filepath="ch3/ch3-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="3.2" data-chapter-title="浮點數" data-filepath="ch3/ch3-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>複數 | Go编程语言</title> <title>複數 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="3.3" data-chapter-title="複數" data-filepath="ch3/ch3-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="3.3" data-chapter-title="複數" data-filepath="ch3/ch3-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>布爾型 | Go编程语言</title> <title>布爾型 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="3.4" data-chapter-title="布爾型" data-filepath="ch3/ch3-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="3.4" data-chapter-title="布爾型" data-filepath="ch3/ch3-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>字符串 | Go编程语言</title> <title>字符串 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="3.5" data-chapter-title="字符串" data-filepath="ch3/ch3-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="3.5" data-chapter-title="字符串" data-filepath="ch3/ch3-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>常量 | Go编程语言</title> <title>常量 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="3.6" data-chapter-title="常量" data-filepath="ch3/ch3-06.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="3.6" data-chapter-title="常量" data-filepath="ch3/ch3-06.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>基礎數據類型 | Go编程语言</title> <title>基礎數據類型 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="3" data-chapter-title="基礎數據類型" data-filepath="ch3/ch3.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="3" data-chapter-title="基礎數據類型" data-filepath="ch3/ch3.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>數組 | Go编程语言</title> <title>數組 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="4.1" data-chapter-title="數組" data-filepath="ch4/ch4-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="4.1" data-chapter-title="數組" data-filepath="ch4/ch4-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>
@@ -2125,7 +2125,7 @@ fmt.Println(a == d) <span class="hljs-comment">// compile error: cannot compare
<a href="../ch4/ch4.html" class="navigation navigation-prev " aria-label="Previous page: 複合數據類型"><i class="fa fa-angle-left"></i></a> <a href="../ch4/ch4.html" class="navigation navigation-prev " aria-label="Previous page: 複合數據類型"><i class="fa fa-angle-left"></i></a>
<a href="../ch4/ch4-02.html" class="navigation navigation-next " aria-label="Next page: 切片"><i class="fa fa-angle-right"></i></a> <a href="../ch4/ch4-02.html" class="navigation navigation-next " aria-label="Next page: Slice"><i class="fa fa-angle-right"></i></a>
</div> </div>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>切片 | Go编程语言</title> <title>Slice | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="4.2" data-chapter-title="切片" data-filepath="ch4/ch4-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="4.2" data-chapter-title="Slice" data-filepath="ch4/ch4-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>
@@ -2023,12 +2023,253 @@
<section class="normal" id="section-"> <section class="normal" id="section-">
<h2 id="42-&#x5207;&#x7247;">4.2. &#x5207;&#x7247;</h2> <h2 id="42-slice">4.2. Slice</h2>
<p>TODO</p> <p>Slice&#xFF08;&#x5207;&#x7247;&#xFF09;&#x4EE3;&#x8868;&#x8B8A;&#x9577;&#x7684;&#x5E8F;&#x5217;&#xFF0C;&#x5E8F;&#x5217;&#x4E2D;&#x6BCF;&#x500B;&#x5143;&#x7D20;&#x90FD;&#x6709;&#x76F8;&#x540C;&#x7684;&#x985E;&#x578B;&#x3002;&#x4E00;&#x500B;slice&#x985E;&#x578B;&#x4E00;&#x822C;&#x5BEB;&#x4F5C;[]T&#xFF0C;&#x5176;&#x4E2D;T&#x4EE3;&#x8868;slice&#x4E2D;&#x5143;&#x7D20;&#x7684;&#x985E;&#x578B;&#xFF1B;&#x8A9E;&#x6CD5;&#x548C;&#x6578;&#x7D44;&#x5F88;&#x50CF;&#x96BB;&#x662F;&#x6C92;&#x6709;&#x9577;&#x5EA6;&#x800C;&#x5DF2;&#x3002;</p>
<p>&#x6578;&#x7D44;&#x548C;slice&#x4E4B;&#x9593;&#x6709;&#x7740;&#x7DCA;&#x5BC6;&#x7684;&#x806F;&#x7E6B;&#x3002;&#x4E00;&#x500B;slice&#x662F;&#x4E00;&#x500B;&#x8F15;&#x91CF;&#x7D1A;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x679C;&#xFF0C;&#x63D0;&#x4F9B;&#x4E86;&#x8A2A;&#x554F;&#x6578;&#x7D44;&#x5B50;&#x5E8F;&#x5217;&#xFF08;&#x6216;&#x8005;&#x5168;&#x90E8;&#xFF09;&#x5143;&#x7D20;&#x7684;&#x529F;&#x80FD;&#xFF0C;&#x56E0;&#x7232;slice&#x7684;&#x5E95;&#x5C64;&#x78BA;&#x5BE6;&#x5F15;&#x7528;&#x4E00;&#x500B;&#x6578;&#x7D44;&#x5C0D;&#x8C61;&#x3002;&#x4E00;&#x500B;slice&#x6709;&#x4E09;&#x500B;&#x90E8;&#x5206;&#x69CB;&#x6210;&#xFF1A;&#x6307;&#x91DD;&#x3001;&#x9577;&#x5EA6;&#x548C;&#x5BB9;&#x91CF;&#x3002;&#x6307;&#x91DD;&#x6307;&#x5411;&#x7B2C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#x5C0D;&#x61C9;&#x7684;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x5143;&#x7D20;&#x7684;&#x5730;&#x5740;&#xFF0C;slice&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#x4F75;&#x4E0D;&#x4E00;&#x5B9A;&#x5C31;&#x662F;&#x6578;&#x7D44;&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#x3002;&#x9577;&#x5EA6;&#x5C0D;&#x61C9;slice&#x4E2D;&#x5143;&#x7D20;&#x7684;&#x6578;&#x76EE;&#xFF1B;&#x9577;&#x5EA6;&#x4E0D;&#x80FD;&#x8D85;&#x904E;&#x5BB9;&#x91CF;&#xFF0C;&#x5BB9;&#x91CF;&#x4E00;&#x822C;&#x662F;&#x5F9E;slice&#x7684;&#x958B;&#x59CB;&#x4F4D;&#x7F6E;&#x5230;&#x5E95;&#x5C64;&#x6578;&#x64DA;&#x7684;&#x7D50;&#x5C3E;&#x4F4D;&#x7F6E;&#x3002;&#x5167;&#x7F6E;&#x7684;len&#x548C;cap&#x51FD;&#x6578;&#x5206;&#x522B;&#x8FD4;&#x8FF4;slice&#x7684;&#x9577;&#x5EA6;&#x548C;&#x5BB9;&#x91CF;&#x3002;</p>
<p>&#x591A;&#x500B;slice&#x4E4B;&#x9593;&#x53EF;&#x4EE5;&#x5171;&#x4EAB;&#x5E95;&#x5C64;&#x7684;&#x6578;&#x64DA;&#xFF0C;&#x4F75;&#x4E14;&#x5F15;&#x7528;&#x7684;&#x6578;&#x7D44;&#x90E8;&#x5206;&#x5340;&#x9593;&#x53EF;&#x80FD;&#x91CD;&#x758A;&#x3002;&#x5716;4.1&#x986F;&#x793A;&#x4E86;&#x8868;&#x793A;&#x4E00;&#x5E74;&#x4E2D;&#x6BCF;&#x500B;&#x6708;&#x4EFD;&#x540D;&#x5B57;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x6578;&#x7D44;&#xFF0C;&#x9084;&#x6709;&#x91CD;&#x758A;&#x5F15;&#x7528;&#x4E86;&#x8A72;&#x6578;&#x7D44;&#x7684;&#x5169;&#x500B;slice&#x3002;&#x6578;&#x7D44;&#x9019;&#x6A23;&#x5B9A;&#x7FA9;</p>
<pre><code class="lang-Go">months := [...]<span class="hljs-typename">string</span>{<span class="hljs-number">1</span>: <span class="hljs-string">&quot;January&quot;</span>, <span class="hljs-comment">/* ... */</span>, <span class="hljs-number">12</span>: <span class="hljs-string">&quot;December&quot;</span>}
</code></pre>
<p>&#x56E0;&#x6B64;&#x4E00;&#x6708;&#x4EFD;&#x662F;months[1]&#xFF0C;&#x5341;&#x4E8C;&#x6708;&#x4EFD;&#x662F;months[12]&#x3002;&#x901A;&#x5E38;&#xFF0C;&#x6578;&#x7D44;&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#x5F9E;&#x7D22;&#x5F15;0&#x958B;&#x59CB;&#xFF0C;&#x4F46;&#x662F;&#x6708;&#x4EFD;&#x4E00;&#x822C;&#x662F;&#x5F9E;1&#x958B;&#x59CB;&#x7684;&#xFF0C;&#x56E0;&#x6B64;&#x6211;&#x5011;&#x8072;&#x660E;&#x6578;&#x7D44;&#x6642;&#x76F4;&#x63A5;&#x7B2C;0&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x7B2C;0&#x500B;&#x5143;&#x7D20;&#x6703;&#x88AB;&#x81EA;&#x52D5;&#x521D;&#x59CB;&#x5316;&#x7232;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#x3002;</p>
<p>slice&#x7684;&#x64CD;&#x4F5C;s[i:j]&#xFF0C;&#x5176;&#x4E2D;0 &#x2264; i&#x2264; j&#x2264; cap(s)&#xFF0C;&#x7528;&#x65BC;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x65B0;&#x7684;slice&#xFF0C;&#x5F15;&#x7528;s&#x7684;&#x5F9E;&#x7B2C;i&#x500B;&#x5143;&#x7D20;&#x958B;&#x59CB;&#x5230;&#x7B2C;j-1&#x500B;&#x5143;&#x7D20;&#x7684;&#x5B50;&#x5E8F;&#x5217;&#x3002;&#x65B0;&#x7684;slice&#x5C07;&#x96BB;&#x6709;j-i&#x500B;&#x5143;&#x7D20;&#x3002;&#x5982;&#x679C;i&#x4F4D;&#x7F6E;&#x7684;&#x7D22;&#x5F15;&#x88AB;&#x7701;&#x7565;&#x7684;&#x8A71;&#x5C07;&#x4F7F;&#x7528;0&#x4EE3;&#x66FF;&#xFF0C;&#x5982;&#x679C;j&#x4F4D;&#x7F6E;&#x7684;&#x7D22;&#x5F15;&#x88AB;&#x7701;&#x7565;&#x7684;&#x8A71;&#x5C07;&#x4F7F;&#x7528;len(s)&#x4EE3;&#x66FF;&#x3002;&#x56E0;&#x6B64;&#xFF0C;months[1:13]&#x5207;&#x7247;&#x64CD;&#x4F5C;&#x5C07;&#x5F15;&#x7528;&#x5168;&#x90E8;&#x6709;&#x6548;&#x7684;&#x6708;&#x4EFD;&#xFF0C;&#x548C;months[1:]&#x64CD;&#x4F5C;&#x7B49;&#x50F9;&#xFF1B;months[:]&#x5207;&#x7247;&#x64CD;&#x4F5C;&#x5247;&#x662F;&#x5F15;&#x7528;&#x6574;&#x500B;&#x6578;&#x7D44;&#x3002;&#x8B93;&#x6211;&#x5011;&#x5206;&#x522B;&#x5B9A;&#x7FA9;&#x8868;&#x793A;&#x7B2C;&#x4E8C;&#x5B63;&#x5EA6;&#x548C;&#x5317;&#x65B9;&#x590F;&#x5929;&#x7684;slice&#xFF0C;&#x5B83;&#x5011;&#x6709;&#x91CD;&#x758A;&#x90E8;&#x5206;&#xFF1A;</p>
<p><img src="../images/ch4-01.png" alt=""></p>
<pre><code class="lang-Go">Q2 := months[<span class="hljs-number">4</span>:<span class="hljs-number">7</span>]
summer := months[<span class="hljs-number">6</span>:<span class="hljs-number">9</span>]
fmt.Println(Q2) <span class="hljs-comment">// [&quot;April&quot; &quot;May&quot; &quot;June&quot;]</span>
fmt.Println(summer) <span class="hljs-comment">// [&quot;June&quot; &quot;July&quot; &quot;August&quot;]</span>
</code></pre>
<p>&#x5169;&#x500B;slice&#x90FD;&#x5305;&#x542B;&#x4E86;&#x516D;&#x6708;&#x4EFD;&#xFF0C;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x662F;&#x4E00;&#x500B;&#x5305;&#x542B;&#x76F8;&#x540C;&#x6708;&#x4EFD;&#x7684;&#x6E2C;&#x8A66;&#xFF08;&#x6027;&#x80FD;&#x8F03;&#x4F4E;&#xFF09;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">for</span> _, s := <span class="hljs-keyword">range</span> summer {
<span class="hljs-keyword">for</span> _, q := <span class="hljs-keyword">range</span> Q2 {
<span class="hljs-keyword">if</span> s == q {
fmt.Printf(<span class="hljs-string">&quot;%s appears in both\n&quot;</span>, s)
}
}
}
</code></pre>
<p>&#x5982;&#x679C;&#x5207;&#x7247;&#x64CD;&#x4F5C;&#x9577;&#x8655;cap(s)&#x7684;&#x4E0A;&#x9650;&#x5C07;&#x5C0E;&#x81F4;&#x4E00;&#x500B;panic&#x7570;&#x5E38;&#xFF0C;&#x4F46;&#x662F;&#x8D85;&#x51FA;len(s)&#x5247;&#x662F;&#x64F4;&#x5C55;&#x4E86;slice&#xFF0C;&#x56E0;&#x6B64;&#x65B0;slice&#x7684;&#x9577;&#x5EA6;&#x6703;&#x8B8A;&#x5927;&#xFF1A;</p>
<pre><code class="lang-Go">fmt.Println(summer[:<span class="hljs-number">20</span>]) <span class="hljs-comment">// panic: out of range</span>
endlessSummer := summer[:<span class="hljs-number">5</span>] <span class="hljs-comment">// extend a slice (within capacity)</span>
fmt.Println(endlessSummer) <span class="hljs-comment">// &quot;[June July August September October]&quot;</span>
</code></pre>
<p>&#x53E6;&#x5916;&#xFF0C;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x5207;&#x7247;&#x64CD;&#x4F5C;&#x548C;[]byte&#x5B57;&#x7BC0;&#x985E;&#x578B;&#x5207;&#x7247;&#x7684;&#x5207;&#x7247;&#x64CD;&#x4F5C;&#x662F;&#x985E;&#x4F3C;&#x7684;&#x3002;&#x5B83;&#x5011;&#x90FD;&#x5BEB;&#x4F5C;x[m:n]&#xFF0C;&#x4F75;&#x4E14;&#x90FD;&#x662F;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x539F;&#x59CB;&#x5B57;&#x7BC0;&#x7E6B;&#x5217;&#x7684;&#x5B50;&#x5E8F;&#x5217;&#xFF0C;&#x5E95;&#x5C64;&#x90FD;&#x662F;&#x5171;&#x4EAB;&#x4E4B;&#x524D;&#x7684;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#xFF0C;&#x56E0;&#x6B64;&#x5207;&#x7247;&#x64CD;&#x4F5C;&#x5C0D;&#x61C9;&#x5E38;&#x91CF;&#x6642;&#x9593;&#x8907;&#x96DC;&#x5EA6;&#x3002;x[m:n]&#x5207;&#x7247;&#x64CD;&#x4F5C;&#x5C0D;&#x65BC;&#x5B57;&#x7B26;&#x4E32;&#x5247;&#x751F;&#x6210;&#x4E00;&#x500B;&#x65B0;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x5982;&#x679C;x&#x662F;[]byte&#x7684;&#x8A71;&#x5247;&#x751F;&#x6210;&#x4E00;&#x500B;&#x65B0;&#x7684;[]byte&#x3002;</p>
<p>&#x56E0;&#x7232;slice&#x503C;&#x5305;&#x542B;&#x6307;&#x5411;&#x7B2C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#x7684;&#x6307;&#x91DD;&#xFF0C;&#x56E0;&#x6B64;&#x5411;&#x51FD;&#x6578;&#x50B3;&#x905E;slice&#x5C07;&#x904B;&#x884C;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x8129;&#x6539;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x7684;&#x5143;&#x7D20;&#x3002;&#x63DB;&#x53E5;&#x8A71;&#x8AAC;&#xFF0C;&#x8907;&#x96DC;&#x4E00;&#x500B;slice&#x96BB;&#x662F;&#x5C0D;&#x5E95;&#x5C64;&#x7684;&#x6578;&#x7D44;&#x5275;&#x5EFA;&#x4E86;&#x4E00;&#x500B;&#x65B0;&#x7684;slice&#x522B;&#x540D;&#xFF08;&#xA7;2.3.2&#xFF09;&#x3002;&#x4E0B;&#x9762;&#x7684;reverse&#x51FD;&#x6578;&#x5728;&#x539F;&#x5167;&#x5B58;&#x7A7A;&#x9593;&#x5C07;[]int&#x985E;&#x578B;&#x7684;slice&#x53CD;&#x8F49;&#xFF0C;&#x800C;&#x4E14;&#x5B83;&#x53EF;&#x4EE5;&#x7528;&#x65BC;&#x4EFB;&#x610F;&#x9577;&#x5EA6;&#x7684;slice&#x3002;</p>
<pre><code class="lang-Go">gopl.io/ch4/rev
<span class="hljs-comment">// reverse reverses a slice of ints in place.</span>
<span class="hljs-keyword">func</span> reverse(s []<span class="hljs-typename">int</span>) {
<span class="hljs-keyword">for</span> i, j := <span class="hljs-number">0</span>, <span class="hljs-built_in">len</span>(s)-<span class="hljs-number">1</span>; i &lt; j; i, j = i+<span class="hljs-number">1</span>, j-<span class="hljs-number">1</span> {
s[i], s[j] = s[j], s[i]
}
}
</code></pre>
<p>&#x9019;&#x91CC;&#x6211;&#x5011;&#x53CD;&#x8F49;&#x6578;&#x7D44;&#x7684;&#x61C9;&#x7528;&#xFF1A;</p>
<pre><code class="lang-Go">a := [...]<span class="hljs-typename">int</span>{<span class="hljs-number">0</span>, <span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>}
reverse(a[:])
fmt.Println(a) <span class="hljs-comment">// &quot;[5 4 3 2 1 0]&quot;</span>
</code></pre>
<p>&#x4E00;&#x7A2E;&#x5C07;slice&#x5143;&#x7D20;&#x5FAA;&#x74B0;&#x5411;&#x5DE6;&#x955F;&#x8F49;n&#x500B;&#x5143;&#x7D20;&#x7684;&#x65B9;&#x6CD5;&#x662F;&#x4E09;&#x6B21;&#x8ABF;&#x7528;reverse&#x53CD;&#x8F49;&#x51FD;&#x6578;&#xFF0C;&#x7B2C;&#x4E00;&#x6B21;&#x662F;&#x53CD;&#x8F49;&#x958B;&#x982D;&#x7684;n&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x7136;&#x5F8C;&#x662F;&#x53CD;&#x8F49;&#x5269;&#x4E0B;&#x7684;&#x5143;&#x7D20;&#xFF0C;&#x6700;&#x5F8C;&#x662F;&#x53CD;&#x8F49;&#x6574;&#x500B;slice&#x7684;&#x5143;&#x7D20;&#x3002;&#xFF08;&#x5982;&#x679C;&#x662F;&#x5411;&#x53F3;&#x5FAA;&#x74B0;&#x955F;&#x8F49;&#xFF0C;&#x5247;&#x5C07;&#x7B2C;&#x4E09;&#x500B;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x79FB;&#x5230;&#x7B2C;&#x4E00;&#x500B;&#x8ABF;&#x7528;&#x4F4D;&#x7F6E;&#x5C31;&#x53EF;&#x4EE5;&#x4E86;&#x3002;&#xFF09;</p>
<pre><code class="lang-Go">s := []<span class="hljs-typename">int</span>{<span class="hljs-number">0</span>, <span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>}
<span class="hljs-comment">// Rotate s left by two positions.</span>
reverse(s[:<span class="hljs-number">2</span>])
reverse(s[<span class="hljs-number">2</span>:])
reverse(s)
fmt.Println(s) <span class="hljs-comment">// &quot;[2 3 4 5 0 1]&quot;</span>
</code></pre>
<p>&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;slice&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;s&#x548C;&#x6578;&#x7D44;&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;a&#x7684;&#x521D;&#x59CB;&#x5316;&#x8A9E;&#x6CD5;&#x7684;&#x5DEE;&#x7570;&#x3002;slice&#x548C;&#x6578;&#x7D44;&#x7684;&#x5B57;&#x9762;&#x503C;&#x8A9E;&#x6CD5;&#x5F88;&#x985E;&#x4F3C;&#xFF0C;&#x5B83;&#x5011;&#x90FD;&#x662F;&#x7528;&#x82B1;&#x62EC;&#x5F27;&#x5305;&#x542B;&#x4E00;&#x7E6B;&#x5217;&#x7684;&#x521D;&#x59CB;&#x5316;&#x5143;&#x7D20;&#xFF0C;&#x4F46;&#x662F;&#x5C0D;&#x65BC;slice&#x4F75;&#x6C92;&#x6709;&#x6307;&#x660E;&#x5E8F;&#x5217;&#x7684;&#x9577;&#x5EA6;&#x3002;&#x9019;&#x6703;&#x96B1;&#x5F0F;&#x5730;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x5408;&#x9069;&#x5927;&#x5C0F;&#x7684;&#x6578;&#x7D44;&#xFF0C;&#x7136;&#x5F8C;slice&#x7684;&#x6307;&#x91DD;&#x6307;&#x5411;&#x5E95;&#x5C64;&#x7684;&#x6578;&#x7D44;&#x3002;&#x5C31;&#x50CF;&#x6578;&#x7D44;&#x5B57;&#x9762;&#x503C;&#x4E00;&#x6A23;&#xFF0C;slice&#x7684;&#x5B57;&#x9762;&#x503C;&#x4E5F;&#x53EF;&#x4EE5;&#x6309;&#x9806;&#x5E8F;&#x6307;&#x5B9A;&#x521D;&#x59CB;&#x5316;&#x503C;&#x5E8F;&#x5217;&#xFF0C;&#x6216;&#x8005;&#x662F;&#x901A;&#x904E;&#x7D22;&#x5F15;&#x548C;&#x5143;&#x7D20;&#x503C;&#x6307;&#x5B9A;&#xFF0C;&#x6216;&#x8005;&#x7684;&#x5169;&#x7A2E;&#x98A8;&#x683C;&#x7684;&#x6DF7;&#x5408;&#x8A9E;&#x6CD5;&#x521D;&#x59CB;&#x5316;&#x3002;</p>
<p>&#x548C;&#x6578;&#x7D44;&#x4E0D;&#x540C;&#x7684;&#x662F;&#xFF0C;slice&#x4E0D;&#x80FD;&#x6BD4;&#x8F03;&#xFF0C;&#x56E0;&#x6B64;&#x6211;&#x5011;&#x4E0D;&#x80FD;&#x4F7F;&#x7528;==&#x64CD;&#x4F5C;&#x7B26;&#x4F86;&#x5224;&#x65B7;&#x5169;&#x500B;slice&#x662F;&#x5426;&#x6709;&#x76F8;&#x540C;&#x7684;&#x5143;&#x7D20;&#x3002;&#x4E0D;&#x904E;&#x6A19;&#x6E96;&#x5EAB;&#x63D0;&#x4F9B;&#x4E86;&#x9AD8;&#x5EA6;&#x512A;&#x5316;&#x7684;bytes.Equal&#x51FD;&#x6578;&#x4F86;&#x5224;&#x65B7;&#x5169;&#x500B;&#x5B57;&#x7BC0;&#x578B;slice&#x662F;&#x5426;&#x76F8;&#x7B49;&#xFF08;[]byte&#xFF09;&#xFF0C;&#x4F46;&#x662F;&#x5C0D;&#x65BC;&#x5176;&#x4ED6;&#x985E;&#x578B;&#x7684;slice&#xFF0C;&#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x81EA;&#x5DF1;&#x5C55;&#x958B;&#x6BCF;&#x500B;&#x5143;&#x7D20;&#x9032;&#x884C;&#x6BD4;&#x8F03;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> equal(x, y []<span class="hljs-typename">string</span>) <span class="hljs-typename">bool</span> {
<span class="hljs-keyword">if</span> <span class="hljs-built_in">len</span>(x) != <span class="hljs-built_in">len</span>(y) {
<span class="hljs-keyword">return</span> <span class="hljs-constant">false</span>
}
<span class="hljs-keyword">for</span> i := <span class="hljs-keyword">range</span> x {
<span class="hljs-keyword">if</span> x[i] != y[i] {
<span class="hljs-keyword">return</span> <span class="hljs-constant">false</span>
}
}
<span class="hljs-keyword">return</span> <span class="hljs-constant">true</span>
}
</code></pre>
<p>&#x4E0A;&#x9762;&#x95DC;&#x65BC;&#x5169;&#x500B;slice&#x7684;&#x6DF1;&#x5EA6;&#x76F8;&#x7B49;&#x6E2C;&#x8A66;&#xFF0C;&#x904B;&#x884C;&#x7684;&#x6642;&#x9593;&#x4F75;&#x4E0D;&#x6BD4;&#x652F;&#x6301;==&#x64CD;&#x4F5C;&#x7684;&#x6578;&#x7D44;&#x6216;&#x5B57;&#x7B26;&#x4E32;&#x66F4;&#x591A;&#xFF0C;&#x4F46;&#x662F;&#x7232;&#x4F55;slice&#x537B;&#x4E0D;&#x652F;&#x6301;&#x6BD4;&#x8F03;&#x904B;&#x7B97;&#x7B26;&#x5462;&#xFF1F;&#x9019;&#x65B9;&#x9762;&#x6709;&#x5169;&#x500B;&#x539F;&#x56E0;&#x3002;&#x7B2C;&#x4E00;&#x500B;&#x539F;&#x56E0;&#xFF0C;&#x4E00;&#x500B;slice&#x7684;&#x5143;&#x7D20;&#x662F;&#x9593;&#x63A5;&#x5F15;&#x7528;&#x7684;&#xFF0C;&#x4E00;&#x500B;slice&#x751A;&#x81F3;&#x53EF;&#x4EE5;&#x5305;&#x542B;&#x81EA;&#x8EAB;&#x3002;&#x96D6;&#x7136;&#x6709;&#x5F88;&#x591A;&#x8FA6;&#x6CD5;&#x8655;&#x7406;&#x9019;&#x7A2E;&#x60C5;&#x5F62;&#xFF0C;&#x4F46;&#x662F;&#x6C92;&#x6709;&#x4E00;&#x500B;&#x662F;&#x7C21;&#x55AE;&#x6709;&#x6548;&#x7684;&#x3002;</p>
<p>&#x7B2C;&#x4E8C;&#x500B;&#x539F;&#x56E0;&#xFF0C;&#x56E0;&#x7232;slice&#x7684;&#x5143;&#x7D20;&#x662F;&#x9593;&#x63A5;&#x5F15;&#x7528;&#x7684;&#xFF0C;&#x4E00;&#x500B;&#x56FA;&#x5B9A;&#x503C;&#x7684;slice&#x5728;&#x4E0D;&#x540C;&#x7684;&#x6642;&#x9593;&#x53EF;&#x80FD;&#x5305;&#x542B;&#x4E0D;&#x540C;&#x7684;&#x5143;&#x7D20;&#xFF0C;&#x56E0;&#x7232;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x7684;&#x5143;&#x7D20;&#x53EF;&#x80FD;&#x6703;&#x88AB;&#x8129;&#x6539;&#x3002;&#x4F75;&#x4E14;Go&#x8A9E;&#x8A00;&#x4E2D;map&#x7B49;&#x54C8;&#x5E0C;&#x8868;&#x4E4B;&#x985E;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x7684;key&#x96BB;&#x505A;&#x7C21;&#x55AE;&#x7684;&#x6DFA;&#x62F7;&#x8C9D;&#xFF0C;&#x5B83;&#x8981;&#x6C42;&#x5728;&#x6574;&#x500B;&#x8072;&#x660E;&#x9031;&#x671F;&#x4E2D;&#x76F8;&#x7B49;&#x7684;key&#x5FC5;&#x9B1A;&#x5C0D;&#x76F8;&#x540C;&#x7684;&#x5143;&#x7D20;&#x3002;&#x5C0D;&#x65BC;&#x50CF;&#x6307;&#x91DD;&#x6216;chan&#x4E4B;&#x985E;&#x7684;&#x5F15;&#x7528;&#x985E;&#x578B;&#xFF0C;==&#x76F8;&#x7B49;&#x6E2C;&#x8A66;&#x53EF;&#x4EE5;&#x5224;&#x65B7;&#x5169;&#x500B;&#x662F;&#x5426;&#x662F;&#x5F15;&#x7528;&#x76F8;&#x540C;&#x7684;&#x5C0D;&#x8C61;&#x3002;&#x4E00;&#x500B;&#x91DD;&#x5C0D;slice&#x7684;&#x6DFA;&#x76F8;&#x7B49;&#x6E2C;&#x8A66;&#x7684;==&#x64CD;&#x4F5C;&#x7B26;&#x53EF;&#x80FD;&#x662F;&#x6709;&#x4E00;&#x5B9A;&#x7528;&#x8655;&#x7684;&#xFF0C;&#x4E5F;&#x80FD;&#x81E8;&#x6642;&#x89E3;&#x6C7A;map&#x985E;&#x578B;&#x7684;key&#x554F;&#x984C;&#xFF0C;&#x4F46;&#x662F;slice&#x548C;&#x6578;&#x7D44;&#x4E0D;&#x540C;&#x7684;&#x76F8;&#x7B49;&#x6E2C;&#x8A66;&#x884C;&#x7232;&#x6703;&#x8B93;&#x4EBA;&#x774F;&#x60D1;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x5B89;&#x5168;&#x7684;&#x505A;&#x98EF;&#x662F;&#x76F4;&#x63A5;&#x7981;&#x6B62;slice&#x4E4B;&#x9593;&#x7684;&#x6BD4;&#x8F03;&#x64CD;&#x4F5C;&#x3002;</p>
<p>slice&#x552F;&#x4E00;&#x5408;&#x6CD5;&#x7684;&#x6BD4;&#x8F03;&#x662F;&#x548C;nil&#x6BD4;&#x8F03;&#xFF0C;&#x4F8B;&#x5982;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">if</span> summer == <span class="hljs-constant">nil</span> { <span class="hljs-comment">/* ... */</span> }
</code></pre>
<p>&#x4E00;&#x500B;&#x96F6;&#x503C;&#x7684;slice&#x7B49;&#x65BC;nil&#x3002;&#x4E00;&#x500B;nil&#x503C;&#x7684;slice&#x4F75;&#x6C92;&#x6709;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x3002;&#x4E00;&#x500B;nil&#x503C;&#x7684;slice&#x7684;&#x9577;&#x5EA6;&#x548C;&#x5BB9;&#x91CF;&#x90FD;&#x662F;0&#xFF0C;&#x4F46;&#x662F;&#x4E5F;&#x6709;&#x975E;nil&#x503C;&#x7684;slice&#x7684;&#x9577;&#x5EA6;&#x548C;&#x5BB9;&#x91CF;&#x4E5F;&#x662F;0&#x7684;&#xFF0C;&#x4F8B;&#x5982;[]int{}&#x6216;make([]int, 3)[3:]&#x3002;&#x8207;&#x4EFB;&#x610F;&#x985E;&#x578B;&#x7684;nil&#x503C;&#x4E00;&#x6A23;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7528;[]int(nil)&#x985E;&#x578B;&#x8F49;&#x63DB;&#x8868;&#x9054;&#x5F0F;&#x4F86;&#x751F;&#x6210;&#x4E00;&#x500B;&#x5C0D;&#x61C9;&#x985E;&#x578B;slice&#x7684;nil&#x503C;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> s []<span class="hljs-typename">int</span> <span class="hljs-comment">// len(s) == 0, s == nil</span>
s = <span class="hljs-constant">nil</span> <span class="hljs-comment">// len(s) == 0, s == nil</span>
s = []<span class="hljs-typename">int</span>(<span class="hljs-constant">nil</span>) <span class="hljs-comment">// len(s) == 0, s == nil</span>
s = []<span class="hljs-typename">int</span>{} <span class="hljs-comment">// len(s) == 0, s != nil</span>
</code></pre>
<p>&#x5982;&#x679C;&#x4F60;&#x9700;&#x8981;&#x6E2C;&#x8A66;&#x4E00;&#x500B;slice&#x662F;&#x5426;&#x662F;&#x7A7A;&#x7684;&#xFF0C;&#x4F7F;&#x7528;len(s) == 0&#x4F86;&#x5224;&#x65B7;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x7528;s == nil&#x4F86;&#x5224;&#x65B7;&#x3002;&#x9664;&#x4E86;&#x548C;nil&#x76F8;&#x7B49;&#x6BD4;&#x8F03;&#x5916;&#xFF0C;&#x4E00;&#x500B;nil&#x503C;&#x7684;slice&#x7684;&#x884C;&#x7232;&#x548C;&#x5176;&#x5B83;&#x4EFB;&#x610F;0&#x7523;&#x9577;&#x5EA6;&#x7684;slice&#x4E00;&#x6A23;&#xFF1B;&#x4F8B;&#x5982;reverse(nil)&#x4E5F;&#x662F;&#x5B89;&#x5168;&#x7684;&#x3002;&#x9664;&#x4E86;&#x6587;&#x6A94;&#x5DF2;&#x7D93;&#x660E;&#x78BA;&#x8AAC;&#x660E;&#x7684;&#x5730;&#x65B9;&#xFF0C;&#x6240;&#x6709;&#x7684;Go&#x8A9E;&#x8A00;&#x51FD;&#x6578;&#x61C9;&#x8A72;&#x4EE5;&#x76F8;&#x540C;&#x7684;&#x65B9;&#x5F0F;&#x5C0D;&#x5F85;nil&#x503C;&#x7684;slice&#x548C;0&#x9577;&#x5EA6;&#x7684;slice&#x3002;</p>
<p>&#x5167;&#x7F6E;&#x7684;make&#x51FD;&#x6578;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x6307;&#x5B9A;&#x5143;&#x7D20;&#x985E;&#x578B;&#x3001;&#x9577;&#x5EA6;&#x548C;&#x5BB9;&#x91CF;&#x7684;slice&#x3002;&#x5BB9;&#x91CF;&#x90E8;&#x5206;&#x53EF;&#x4EE5;&#x7701;&#x7565;&#xFF0C;&#x5728;&#x9019;&#x7A2E;&#x60C5;&#x6CC1;&#x4E0B;&#xFF0C;&#x5BB9;&#x91CF;&#x5C07;&#x7B49;&#x65BC;&#x9577;&#x5EA6;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-built_in">make</span>([]T, <span class="hljs-built_in">len</span>)
<span class="hljs-built_in">make</span>([]T, <span class="hljs-built_in">len</span>, <span class="hljs-built_in">cap</span>) <span class="hljs-comment">// same as make([]T, cap)[:len]</span>
</code></pre>
<p>&#x5728;&#x5E95;&#x5C64;&#xFF0C;make&#x5275;&#x5EFA;&#x4E86;&#x4E00;&#x500B;&#x533F;&#x540D;&#x7684;&#x6578;&#x7D44;&#x8B8A;&#x91CF;&#xFF0C;&#x7136;&#x5F8C;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;slice&#xFF1B;&#x96BB;&#x6709;&#x901A;&#x904E;&#x8FD4;&#x8FF4;&#x7684;slice&#x624D;&#x80FD;&#x5F15;&#x7528;&#x5E95;&#x5C64;&#x533F;&#x540D;&#x7684;&#x6578;&#x7D44;&#x8B8A;&#x91CF;&#x3002;&#x5728;&#x7B2C;&#x4E00;&#x7A2E;&#x8A9E;&#x53E5;&#x4E2D;&#xFF0C;slice&#x662F;&#x6574;&#x500B;&#x6578;&#x7D44;&#x7684;view&#x3002;&#x5728;&#x7B2C;&#x4E8C;&#x500B;&#x8A9E;&#x53E5;&#x4E2D;&#xFF0C;slice&#x96BB;&#x5F15;&#x7528;&#x4E86;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x7684;&#x524D;len&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x4F46;&#x662F;&#x5BB9;&#x91CF;&#x5C07;&#x5305;&#x542B;&#x6574;&#x500B;&#x7684;&#x6578;&#x7D44;&#x3002;&#x984D;&#x5916;&#x7684;&#x5143;&#x7D20;&#x662F;&#x7559;&#x7D66;&#x672A;&#x4F86;&#x7684;&#x589E;&#x9577;&#x7528;&#x7684;&#x3002;</p>
<h3 id="421-append&#x51FD;&#x6578;">4.2.1. append&#x51FD;&#x6578;</h3> <h3 id="421-append&#x51FD;&#x6578;">4.2.1. append&#x51FD;&#x6578;</h3>
<p>TODO</p> <p>&#x5167;&#x7F6E;&#x7684;append&#x51FD;&#x6578;&#x7528;&#x65BC;&#x5411;slice&#x8FFD;&#x52A0;&#x5143;&#x7D20;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> runes []<span class="hljs-typename">rune</span>
<span class="hljs-keyword">for</span> _, r := <span class="hljs-keyword">range</span> <span class="hljs-string">&quot;Hello, &#x4E16;&#x754C;&quot;</span> {
runes = <span class="hljs-built_in">append</span>(runes, r)
}
fmt.Printf(<span class="hljs-string">&quot;%q\n&quot;</span>, runes) <span class="hljs-comment">// &quot;[&apos;H&apos; &apos;e&apos; &apos;l&apos; &apos;l&apos; &apos;o&apos; &apos;,&apos; &apos; &apos; &apos;&#x4E16;&apos; &apos;&#x754C;&apos;]&quot;</span>
</code></pre>
<p>&#x5728;&#x5FAA;&#x74B0;&#x4E2D;&#x4F7F;&#x7528;append&#x51FD;&#x6578;&#x69CB;&#x5EFA;&#x4E00;&#x500B;&#x6709;&#x4E5D;&#x500B;rune&#x5B57;&#x7B26;&#x69CB;&#x6210;&#x7684;slice&#xFF0C;&#x7576;&#x7136;&#x5C0D;&#x61C9;&#x9019;&#x500B;&#x7279;&#x6B8A;&#x7684;&#x554F;&#x984C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x901A;&#x904E;Go&#x8A9E;&#x8A00;&#x5167;&#x7F6E;&#x7684;[]rune(&quot;Hello, &#x4E16;&#x754C;&quot;)&#x8F49;&#x63DB;&#x64CD;&#x4F5C;&#x5B8C;&#x6210;&#x3002;</p>
<p>append&#x51FD;&#x6578;&#x5C0D;&#x65BC;&#x7406;&#x89E3;slice&#x5E95;&#x5C64;&#x662F;&#x5982;&#x4F55;&#x5DE5;&#x4F5C;&#x7684;&#x975E;&#x5E38;&#x91CD;&#x8981;&#xFF0C;&#x6240;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x4ED4;&#x7D30;&#x67FB;&#x770B;&#x7A76;&#x7ADF;&#x662F;&#x767C;&#x751F;&#x4E86;&#x4EC0;&#x9EBD;&#x3002;&#x4E0B;&#x9762;&#x662F;&#x7B2C;&#x4E00;&#x500B;&#x7248;&#x672C;&#x7684;appendInt&#x51FD;&#x6578;&#xFF0C;&#x5C08;&#x9580;&#x7528;&#x65BC;&#x8655;&#x7406;[]int&#x985E;&#x578B;&#x7684;slice&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch4/<span class="hljs-built_in">append</span>
<span class="hljs-keyword">func</span> appendInt(x []<span class="hljs-typename">int</span>, y <span class="hljs-typename">int</span>) []<span class="hljs-typename">int</span> {
<span class="hljs-keyword">var</span> z []<span class="hljs-typename">int</span>
zlen := <span class="hljs-built_in">len</span>(x) + <span class="hljs-number">1</span>
<span class="hljs-keyword">if</span> zlen &lt;= <span class="hljs-built_in">cap</span>(x) {
<span class="hljs-comment">// There is room to grow. Extend the slice.</span>
z = x[:zlen]
} <span class="hljs-keyword">else</span> {
<span class="hljs-comment">// There is insufficient space. Allocate a new array.</span>
<span class="hljs-comment">// Grow by doubling, for amortized linear complexity.</span>
zcap := zlen
<span class="hljs-keyword">if</span> zcap &lt; <span class="hljs-number">2</span>*<span class="hljs-built_in">len</span>(x) {
zcap = <span class="hljs-number">2</span> * <span class="hljs-built_in">len</span>(x)
}
z = <span class="hljs-built_in">make</span>([]<span class="hljs-typename">int</span>, zlen, zcap)
<span class="hljs-built_in">copy</span>(z, x) <span class="hljs-comment">// a built-in function; see text</span>
}
z[<span class="hljs-built_in">len</span>(x)] = y
<span class="hljs-keyword">return</span> z
}
</code></pre>
<p>&#x6BCF;&#x6B21;&#x8ABF;&#x7528;appendInt&#x51FD;&#x6578;&#xFF0C;&#x5FC5;&#x9B1A;&#x5148;&#x6AA2;&#x6E2C;slice&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x662F;&#x5426;&#x6709;&#x8DB3;&#x5920;&#x7684;&#x5BB9;&#x91CF;&#x4F86;&#x4FDD;&#x5B58;&#x65B0;&#x6DFB;&#x52A0;&#x7684;&#x5143;&#x7D20;&#x3002;&#x5982;&#x679C;&#x6709;&#x8DB3;&#x5920;&#x7A7A;&#x9593;&#x7684;&#x8A71;&#xFF0C;&#x76F4;&#x63A5;&#x64F4;&#x5C55;slice&#xFF08;&#x4F9D;&#x7136;&#x5728;&#x539F;&#x6709;&#x7684;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x4E4B;&#x4E0A;&#xFF09;&#xFF0C;&#x5C07;&#x65B0;&#x6DFB;&#x52A0;&#x7684;y&#x5143;&#x7D20;&#x8907;&#x88FD;&#x5230;&#x65B0;&#x64F4;&#x5C55;&#x7684;&#x7A7A;&#x9593;&#xFF0C;&#x4F75;&#x8FD4;&#x8FF4;slice&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x8F38;&#x5165;&#x7684;x&#x548C;&#x8F38;&#x51FA;&#x7684;z&#x5171;&#x4EAB;&#x76F8;&#x540C;&#x7684;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x3002;</p>
<p>&#x5982;&#x679C;&#x6C92;&#x6709;&#x8DB3;&#x5920;&#x7684;&#x589E;&#x9577;&#x7A7A;&#x9593;&#x7684;&#x8A71;&#xFF0C;appendInt&#x51FD;&#x6578;&#x5247;&#x6703;&#x5148;&#x5206;&#x914D;&#x4E00;&#x500B;&#x8DB3;&#x5920;&#x5927;&#x7684;slice&#x7528;&#x65BC;&#x4FDD;&#x5B58;&#x65B0;&#x7684;&#x7D50;&#x679C;&#xFF0C;&#x5148;&#x5C07;&#x8F38;&#x5165;&#x7684;x&#x8907;&#x88FD;&#x5230;&#x65B0;&#x7684;&#x7A7A;&#x9593;&#xFF0C;&#x7136;&#x5F8C;&#x6DFB;&#x52A0;y&#x5143;&#x7D20;&#x3002;&#x7D50;&#x679C;z&#x548C;&#x8F38;&#x5165;&#x7684;x&#x5F15;&#x7528;&#x7684;&#x5C07;&#x662F;&#x4E0D;&#x540C;&#x7684;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x3002;</p>
<p>&#x96D6;&#x7136;&#x901A;&#x904E;&#x5FAA;&#x74B0;&#x8907;&#x88FD;&#x5143;&#x7D20;&#x66F4;&#x76F4;&#x63A5;&#xFF0C;&#x4E0D;&#x904E;&#x5167;&#x7F6E;&#x7684;copy&#x51FD;&#x6578;&#x53EF;&#x4EE5;&#x65B9;&#x4FBF;&#x5730;&#x5C07;&#x4E00;&#x500B;slice&#x8907;&#x88FD;&#x53E6;&#x4E00;&#x500B;&#x76F8;&#x540C;&#x985E;&#x578B;&#x7684;slice&#x3002;copy&#x51FD;&#x6578;&#x7684;&#x7B2C;&#x4E00;&#x500B;&#x53C3;&#x6578;&#x662F;&#x8981;&#x8907;&#x88FD;&#x7684;&#x76EE;&#x6A19;slice&#xFF0C;&#x7B2C;&#x4E8C;&#x500B;&#x53C3;&#x6578;&#x662F;&#x6E90;slice&#xFF0C;&#x76EE;&#x6A19;&#x548C;&#x6E90;&#x7684;&#x4F4D;&#x7F6E;&#x9806;&#x5E8F;&#x548C;dst = src&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x662F;&#x4E00;&#x81F4;&#x7684;&#x3002;&#x5169;&#x500B;slice&#x53EF;&#x4EE5;&#x5171;&#x4EAB;&#x540C;&#x4E00;&#x500B;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#xFF0C;&#x751A;&#x81F3;&#x6709;&#x91CD;&#x758A;&#x4E5F;&#x6C92;&#x6709;&#x554F;&#x984C;&#x3002;copy&#x51FD;&#x6578;&#x5C07;&#x8FD4;&#x8FF4;&#x6210;&#x529F;&#x8907;&#x88FD;&#x7684;&#x5143;&#x7D20;&#x7684;&#x500B;&#x6578;&#xFF08;&#x6211;&#x5011;&#x9019;&#x91CC;&#x6C92;&#x6709;&#x7528;&#x5230;&#xFF09;&#xFF0C;&#x7B49;&#x65BC;&#x5169;&#x500B;slice&#x4E2D;&#x8F03;&#x5C0F;&#x7684;&#x9577;&#x5EA6;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x5011;&#x4E0D;&#x7528;&#x64D4;&#x5FC3;&#x8986;&#x84CB;&#x6703;&#x8D85;&#x51FA;&#x76EE;&#x7684;slice&#x7684;&#x8303;&#x570D;&#x3002;</p>
<p>&#x7232;&#x4E86;&#x6548;&#x7387;&#xFF0C;&#x65B0;&#x5206;&#x914D;&#x7684;&#x6578;&#x7D44;&#x4E00;&#x822C;&#x7565;&#x5927;&#x65BC;&#x4FDD;&#x5B58;x&#x548C;y&#x6240;&#x9700;&#x8981;&#x7684;&#x6700;&#x4F4E;&#x5927;&#x5C0F;&#x3002;&#x901A;&#x904E;&#x5728;&#x6BCF;&#x6B21;&#x64F4;&#x5C55;&#x6578;&#x7D44;&#x6642;&#x76F4;&#x63A5;&#x5C07;&#x9577;&#x5EA6;&#x7FFB;&#x500D;&#x5F9E;&#x800C;&#x907F;&#x514D;&#x4E86;&#x591A;&#x6B21;&#x5167;&#x5B58;&#x5206;&#x914D;&#xFF0C;&#x4E5F;&#x78BA;&#x4FDD;&#x4E86;&#x6DFB;&#x52A0;&#x55AE;&#x500B;&#x5143;&#x7D20;&#x64CD;&#x7684;&#x5E73;&#x5747;&#x6642;&#x9593;&#x662F;&#x4E00;&#x500B;&#x5E38;&#x6578;&#x6642;&#x9593;&#x3002;&#x9019;&#x500B;&#x7A0B;&#x5E8F;&#x6F14;&#x793A;&#x4E86;&#x6548;&#x679C;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> main() {
<span class="hljs-keyword">var</span> x, y []<span class="hljs-typename">int</span>
<span class="hljs-keyword">for</span> i := <span class="hljs-number">0</span>; i &lt; <span class="hljs-number">10</span>; i++ {
y = appendInt(x, i)
fmt.Printf(<span class="hljs-string">&quot;%d cap=%d\t%v\n&quot;</span>, i, <span class="hljs-built_in">cap</span>(y), y)
x = y
}
}
</code></pre>
<p>&#x6BCF;&#x4E00;&#x6B21;&#x5BB9;&#x91CF;&#x7684;&#x8B8A;&#x5316;&#x90FD;&#x6703;&#x5C0E;&#x81F4;&#x91CD;&#x65B0;&#x5206;&#x914D;&#x5167;&#x5B58;&#x548C;copy&#x64CD;&#x4F5C;&#xFF1A;</p>
<pre><code>0 cap=1 [0]
1 cap=2 [0 1]
2 cap=4 [0 1 2]
3 cap=4 [0 1 2 3]
4 cap=8 [0 1 2 3 4]
5 cap=8 [0 1 2 3 4 5]
6 cap=8 [0 1 2 3 4 5 6]
7 cap=8 [0 1 2 3 4 5 6 7]
8 cap=16 [0 1 2 3 4 5 6 7 8]
9 cap=16 [0 1 2 3 4 5 6 7 8 9]
</code></pre><p>&#x8B93;&#x6211;&#x5011;&#x4ED4;&#x7D30;&#x67FB;&#x770B;i=3&#x6B21;&#x7684;&#x8FED;&#x4EE3;&#x3002;&#x7576;&#x6642;x&#x5305;&#x542B;&#x4E86;[0 1 2]&#x4E09;&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x4F46;&#x662F;&#x5BB9;&#x91CF;&#x662F;4&#xFF0C;&#x56E0;&#x6B64;&#x53EF;&#x4EE5;&#x7C21;&#x55AE;&#x5C07;&#x65B0;&#x7684;&#x5143;&#x7D20;&#x6DFB;&#x52A0;&#x5230;&#x672B;&#x5C3E;&#xFF0C;&#x4E0D;&#x9700;&#x8981;&#x65B0;&#x7684;&#x5167;&#x5B58;&#x5206;&#x914D;&#x3002;&#x7136;&#x5F8C;&#x65B0;&#x7684;y&#x7684;&#x9577;&#x5EA6;&#x548C;&#x5BB9;&#x91CF;&#x90FD;&#x662F;4&#xFF0C;&#x4F75;&#x4E14;&#x548C;x&#x5F15;&#x7528;&#x7740;&#x76F8;&#x540C;&#x7684;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#xFF0C;&#x5982;&#x5716;4.2&#x6240;&#x793A;&#x3002;</p>
<p><img src="../images/ch4-02.png" alt=""></p>
<p>&#x5728;&#x4E0B;&#x4E00;&#x6B21;&#x8FED;&#x4EE3;&#x6642;i=4&#xFF0C;&#x73FE;&#x5728;&#x6C92;&#x6709;&#x65B0;&#x7684;&#x7A7A;&#x9918;&#x7684;&#x7A7A;&#x9593;&#x4E86;&#xFF0C;&#x56E0;&#x6B64;appendInt&#x51FD;&#x6578;&#x5206;&#x914D;&#x4E00;&#x500B;&#x5BB9;&#x91CF;&#x7232;8&#x7684;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#xFF0C;&#x5C07;x&#x7684;4&#x500B;&#x5143;&#x7D20;[0 1 2 3]&#x8907;&#x88FD;&#x5230;&#x65B0;&#x7A7A;&#x9593;&#x7684;&#x958B;&#x982D;&#xFF0C;&#x7136;&#x5F8C;&#x6DFB;&#x52A0;&#x65B0;&#x7684;&#x5143;&#x7D20;i&#xFF0C;&#x65B0;&#x5143;&#x7D20;&#x7684;&#x503C;&#x662F;4&#x3002;&#x65B0;&#x7684;y&#x7684;&#x9577;&#x5EA6;&#x662F;5&#xFF0C;&#x5BB9;&#x91CF;&#x662F;8&#xFF1B;&#x5F8C;&#x9762;&#x6709;3&#x500B;&#x7A7A;&#x9592;&#x7684;&#x4F4D;&#x7F6E;&#xFF0C;&#x4E09;&#x6B21;&#x8FED;&#x4EE3;&#x90FD;&#x4E0D;&#x9700;&#x8981;&#x5206;&#x914D;&#x65B0;&#x7684;&#x7A7A;&#x9593;&#x3002;&#x7576;&#x524D;&#x8FED;&#x4EE3;&#x4E2D;&#xFF0C;y&#x548C;x&#x662F;&#x5C0D;&#x61C9;&#x4E0D;&#x7528;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x7684;view&#x3002;&#x9019;&#x6B21;&#x64CD;&#x4F5C;&#x5982;&#x5716;4.3&#x6240;&#x793A;&#x3002;</p>
<p><img src="../images/ch4-03.png" alt=""></p>
<p>&#x5167;&#x7F6E;&#x7684;append&#x51FD;&#x6578;&#x53EF;&#x80FD;&#x4F7F;&#x7528;&#x6BD4;appendInt&#x66F4;&#x8907;&#x96DC;&#x7684;&#x5167;&#x5B58;&#x64F4;&#x5C55;&#x7B56;&#x7565;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x901A;&#x5E38;&#x6211;&#x5011;&#x4F75;&#x4E0D;&#x77E5;&#x9053;append&#x8ABF;&#x7528;&#x662F;&#x5426;&#x5C0E;&#x81F4;&#x4E86;&#x5167;&#x5B58;&#x7684;&#x5206;&#x914D;&#xFF0C;&#x56E0;&#x6B64;&#x6211;&#x5011;&#x4E5F;&#x4E0D;&#x80FD;&#x78BA;&#x8A8D;&#x65B0;&#x7684;slice&#x548C;&#x539F;&#x59CB;&#x7684;slice&#x662F;&#x5426;&#x5F15;&#x7528;&#x7684;&#x662F;&#x76F8;&#x540C;&#x7684;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x7A7A;&#x9593;&#x3002;&#x540C;&#x6A23;&#xFF0C;&#x6211;&#x5011;&#x4E0D;&#x80FD;&#x78BA;&#x8A8D;&#x5728;&#x539F;&#x5148;&#x7684;slice&#x4E0A;&#x7684;&#x64CD;&#x4F5C;&#x662F;&#x5426;&#x6703;&#x5F71;&#x97FF;&#x5230;&#x65B0;&#x7684;slice&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x901A;&#x5E38;&#x662F;&#x5C07;append&#x8FD4;&#x8FF4;&#x7684;&#x7D50;&#x679C;&#x76F4;&#x63A5;&#x8CE6;&#x503C;&#x7D66;&#x8F38;&#x5165;&#x7684;slice&#x8B8A;&#x91CF;&#xFF1A;</p>
<pre><code class="lang-Go">runes = <span class="hljs-built_in">append</span>(runes, r)
</code></pre>
<p>&#x66F4;&#x65B0;slice&#x8B8A;&#x91CF;&#x4E0D;&#x50C5;&#x5C0D;&#x8ABF;&#x7528;append&#x51FD;&#x6578;&#x662F;&#x5FC5;&#x8981;&#x7684;&#xFF0C;&#x5BE6;&#x969B;&#x4E0A;&#x5C0D;&#x61C9;&#x4EFB;&#x4F55;&#x53EF;&#x80FD;&#x5C0E;&#x81F4;&#x9577;&#x5EA6;&#x3001;&#x5BB9;&#x91CF;&#x6216;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x8B8A;&#x5316;&#x7684;&#x64CD;&#x4F5C;&#x90FD;&#x662F;&#x5FC5;&#x8981;&#x7684;&#x3002;&#x8981;&#x6B63;&#x78BA;&#x5730;&#x4F7F;&#x7528;slice&#xFF0C;&#x9700;&#x8981;&#x8A18;&#x4F4F;&#x76E1;&#x7BA1;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x7684;&#x5143;&#x7D20;&#x662F;&#x9593;&#x63A5;&#x8A2A;&#x554F;&#xFF0C;&#x4F46;&#x662F;slice&#x672C;&#x8EAB;&#x7684;&#x6307;&#x91DD;&#x3001;&#x9577;&#x5EA6;&#x548C;&#x5BB9;&#x91CF;&#x662F;&#x76F4;&#x63A5;&#x8A2A;&#x554F;&#x7684;&#x3002;&#x8981;&#x66F4;&#x65B0;&#x9019;&#x4E9B;&#x4FE1;&#x606F;&#x9700;&#x8981;&#x50CF;&#x4E0A;&#x9762;&#x4F8B;&#x5B50;&#x90A3;&#x6A23;&#x4E00;&#x500B;&#x986F;&#x5F0F;&#x7684;&#x8CE6;&#x503C;&#x64CD;&#x4F5C;&#x3002;&#x5F9E;&#x9019;&#x500B;&#x89D2;&#x5EA6;&#x770B;&#xFF0C;slice&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x7D14;&#x7CB9;&#x7684;&#x5F15;&#x7528;&#x985E;&#x578B;&#xFF0C;&#x5B83;&#x5BE6;&#x969B;&#x4E0A;&#x662F;&#x4E00;&#x500B;&#x985E;&#x4F3C;&#x4E0B;&#x9762;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x805A;&#x5408;&#x985E;&#x578B;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> IntSlice <span class="hljs-keyword">struct</span> {
ptr *<span class="hljs-typename">int</span>
<span class="hljs-built_in">len</span>, <span class="hljs-built_in">cap</span> <span class="hljs-typename">int</span>
}
</code></pre>
<p>&#x6211;&#x5011;&#x7684;appendInt&#x51FD;&#x6578;&#x6BCF;&#x6B21;&#x96BB;&#x80FD;&#x5411;slice&#x8FFD;&#x52A0;&#x4E00;&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x4F46;&#x662F;&#x5167;&#x7F6E;&#x7684;append&#x51FD;&#x6578;&#x5247;&#x53EF;&#x4EE5;&#x8FFD;&#x52A0;&#x591A;&#x500B;&#x5143;&#x7D20;&#xFF0C;&#x751A;&#x81F3;&#x8FFD;&#x52A0;&#x4E00;&#x500B;slice&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> x []<span class="hljs-typename">int</span>
x = <span class="hljs-built_in">append</span>(x, <span class="hljs-number">1</span>)
x = <span class="hljs-built_in">append</span>(x, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>)
x = <span class="hljs-built_in">append</span>(x, <span class="hljs-number">4</span>, <span class="hljs-number">5</span>, <span class="hljs-number">6</span>)
x = <span class="hljs-built_in">append</span>(x, x...) <span class="hljs-comment">// append the slice x</span>
fmt.Println(x) <span class="hljs-comment">// &quot;[1 2 3 4 5 6 1 2 3 4 5 6]&quot;</span>
</code></pre>
<p>&#x901A;&#x904E;&#x4E0B;&#x9762;&#x7684;&#x5C0F;&#x8129;&#x6539;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x53EF;&#x4EE5;&#x9054;&#x5230;append&#x51FD;&#x6578;&#x985E;&#x4F3C;&#x7684;&#x529F;&#x80FD;&#x3002;&#x5176;&#x4E2D;&#x5728;appendInt&#x51FD;&#x6578;&#x53C3;&#x6578;&#x4E2D;&#x7684;&#x6700;&#x5F8C;&#x7684;&#x201C;...&#x201D;&#x7701;&#x7565;&#x865F;&#x8868;&#x793A;&#x63A5;&#x6536;&#x8B8A;&#x9577;&#x7684;&#x53C3;&#x6578;&#x7232;slice&#x3002;&#x6211;&#x5011;&#x5C07;&#x5728;5.7&#x7BC0;&#x8A73;&#x7D30;&#x89E3;&#x91CB;&#x9019;&#x500B;&#x7279;&#x6027;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> appendInt(x []<span class="hljs-typename">int</span>, y ...<span class="hljs-typename">int</span>) []<span class="hljs-typename">int</span> {
<span class="hljs-keyword">var</span> z []<span class="hljs-typename">int</span>
zlen := <span class="hljs-built_in">len</span>(x) + <span class="hljs-built_in">len</span>(y)
<span class="hljs-comment">// ...expand z to at least zlen...</span>
<span class="hljs-built_in">copy</span>(z[<span class="hljs-built_in">len</span>(x):], y)
<span class="hljs-keyword">return</span> z
}
</code></pre>
<p>&#x7232;&#x4E86;&#x907F;&#x514D;&#x91CD;&#x8907;&#xFF0C;&#x548C;&#x524D;&#x9762;&#x76F8;&#x540C;&#x7684;&#x4EE3;&#x78BC;&#x4F75;&#x6C92;&#x6709;&#x986F;&#x793A;&#x3002;</p>
<h3 id="422-slice&#x5167;&#x5B58;&#x6280;&#x5DE7;">4.2.2. Slice&#x5167;&#x5B58;&#x6280;&#x5DE7;</h3> <h3 id="422-slice&#x5167;&#x5B58;&#x6280;&#x5DE7;">4.2.2. Slice&#x5167;&#x5B58;&#x6280;&#x5DE7;</h3>
<p>TODO</p> <p>&#x8B93;&#x6211;&#x5011;&#x770B;&#x770B;&#x66F4;&#x591A;&#x7684;&#x4F8B;&#x5B50;&#xFF0C;&#x6BD4;&#x5982;&#x955F;&#x8F49;slice&#x3001;&#x53CD;&#x8F49;slice&#x6216;&#x5728;slice&#x539F;&#x6709;&#x5167;&#x5B58;&#x7A7A;&#x9593;&#x8129;&#x6539;&#x5143;&#x7D20;&#x3002;&#x7D66;&#x5B9A;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x5217;&#x8868;&#xFF0C;&#x4E0B;&#x9762;&#x7684;nonempty&#x51FD;&#x6578;&#x5C07;&#x5728;&#x539F;&#x6709;slice&#x5167;&#x5B58;&#x7A7A;&#x9593;&#x4E4B;&#x4E0A;&#x8FD4;&#x8FF4;&#x4E0D;&#x5305;&#x542B;&#x7A7A;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x5217;&#x8868;&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch4/nonempty
<span class="hljs-comment">// Nonempty is an example of an in-place slice algorithm.</span>
<span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> <span class="hljs-string">&quot;fmt&quot;</span>
<span class="hljs-comment">// nonempty returns a slice holding only the non-empty strings.</span>
<span class="hljs-comment">// The underlying array is modified during the call.</span>
<span class="hljs-keyword">func</span> nonempty(strings []<span class="hljs-typename">string</span>) []<span class="hljs-typename">string</span> {
i := <span class="hljs-number">0</span>
<span class="hljs-keyword">for</span> _, s := <span class="hljs-keyword">range</span> strings {
<span class="hljs-keyword">if</span> s != <span class="hljs-string">&quot;&quot;</span> {
strings[i] = s
i++
}
}
<span class="hljs-keyword">return</span> strings[:i]
}
</code></pre>
<p>&#x6BD4;&#x8F03;&#x5FAE;&#x5999;&#x7684;&#x5730;&#x65B9;&#x662F;&#xFF0C;&#x8F38;&#x5165;&#x7684;slice&#x548C;&#x8F38;&#x51FA;&#x7684;slice&#x5171;&#x4EAB;&#x4E00;&#x500B;&#x5E95;&#x5C64;&#x6578;&#x7D44;&#x3002;&#x9019;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x5206;&#x914D;&#x53E6;&#x4E00;&#x500B;&#x6578;&#x7D44;&#xFF0C;&#x4E0D;&#x904E;&#x539F;&#x4F86;&#x7684;&#x6578;&#x64DA;&#x5C07;&#x53EF;&#x80FD;&#x6703;&#x88AB;&#x8986;&#x84CB;&#xFF0C;&#x6B63;&#x5982;&#x4E0B;&#x9762;&#x5169;&#x500B;&#x6253;&#x5370;&#x8A9E;&#x53E5;&#x770B;&#x5230;&#x7684;&#x90A3;&#x6A23;&#xFF1A;</p>
<pre><code class="lang-Go">data := []<span class="hljs-typename">string</span>{<span class="hljs-string">&quot;one&quot;</span>, <span class="hljs-string">&quot;&quot;</span>, <span class="hljs-string">&quot;three&quot;</span>}
fmt.Printf(<span class="hljs-string">&quot;%q\n&quot;</span>, nonempty(data)) <span class="hljs-comment">// `[&quot;one&quot; &quot;three&quot;]`</span>
fmt.Printf(<span class="hljs-string">&quot;%q\n&quot;</span>, data) <span class="hljs-comment">// `[&quot;one&quot; &quot;three&quot; &quot;three&quot;]`</span>
</code></pre>
<p>&#x56E0;&#x6B64;&#x6211;&#x5011;&#x901A;&#x5E38;&#x6703;&#x9019;&#x6A23;&#x4F7F;&#x7528;nonempty&#x51FD;&#x6578;&#xFF1A;data = nonempty(data)&#x3002;</p>
<p>nonempty&#x51FD;&#x6578;&#x4E5F;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;append&#x51FD;&#x6578;&#x5BE6;&#x73FE;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> nonempty2(strings []<span class="hljs-typename">string</span>) []<span class="hljs-typename">string</span> {
out := strings[:<span class="hljs-number">0</span>] <span class="hljs-comment">// zero-length slice of original</span>
<span class="hljs-keyword">for</span> _, s := <span class="hljs-keyword">range</span> strings {
<span class="hljs-keyword">if</span> s != <span class="hljs-string">&quot;&quot;</span> {
out = <span class="hljs-built_in">append</span>(out, s)
}
}
<span class="hljs-keyword">return</span> out
}
</code></pre>
<p>&#x7121;&#x8AD6;&#x5982;&#x4F55;&#x5BE6;&#x73FE;&#xFF0C;&#x4EE5;&#x9019;&#x7A2E;&#x65B9;&#x5F0F;&#x91CD;&#x7528;&#x4E00;&#x500B;slice&#x4E00;&#x822C;&#x8981;&#x6C42;&#x6700;&#x591A;&#x7232;&#x6BCF;&#x500B;&#x8F38;&#x5165;&#x503C;&#x7523;&#x751F;&#x4E00;&#x500B;&#x8F38;&#x51FA;&#x503C;&#xFF0C;&#x4E8B;&#x5BE6;&#x4E0A;&#x5F88;&#x591A;&#x7B97;&#x6CD5;&#x90FD;&#x662F;&#x7528;&#x4F86;&#x904E;&#x6FFE;&#x6216;&#x5408;&#x4F75;&#x5E8F;&#x5217;&#x4E2D;&#x76F8;&#x9130;&#x7684;&#x5143;&#x7D20;&#x3002;&#x9019;&#x7A2E;slice&#x7528;&#x6CD5;&#x662F;&#x6BD4;&#x8F03;&#x8907;&#x96DC;&#x7684;&#x6280;&#x5DE7;&#xFF0C;&#x96D6;&#x7136;&#x4F7F;&#x7528;&#x5230;&#x4E86;slice&#x7684;&#x4E00;&#x4E9B;&#x9ED1;&#x9B54;&#x6CD5;&#xFF0C;&#x4F46;&#x662F;&#x5C0D;&#x65BC;&#x67D0;&#x4E9B;&#x5834;&#x5408;&#x662F;&#x6BD4;&#x8F03;&#x6E05;&#x6670;&#x548C;&#x6709;&#x6548;&#x7684;&#x3002;</p>
<p>&#x4E00;&#x500B;slice&#x53EF;&#x4EE5;&#x539F;&#x4F86;&#x5BE6;&#x73FE;&#x4E00;&#x500B;stack&#x3002;&#x6700;&#x521D;&#x7D66;&#x5B9A;&#x7684;&#x7A7A;slice&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x7A7A;&#x7684;stack&#xFF0C;&#x7136;&#x5F8C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;append&#x51FD;&#x6578;&#x5C07;&#x65B0;&#x7684;&#x503C;&#x58D3;&#x5165;stack&#xFF1A;</p>
<pre><code class="lang-Go">stack = <span class="hljs-built_in">append</span>(stack, v) <span class="hljs-comment">// push v</span>
</code></pre>
<p>stack&#x7684;&#x9802;&#x90E8;&#x4F4D;&#x7F6E;&#x5C0D;&#x61C9;slice&#x7684;&#x6700;&#x5F8C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#xFF1A;</p>
<pre><code class="lang-Go">top := stack[<span class="hljs-built_in">len</span>(stack)-<span class="hljs-number">1</span>] <span class="hljs-comment">// top of stack</span>
</code></pre>
<p>&#x901A;&#x904E;&#x6536;&#x7E2E;stack&#x53EF;&#x4EE5;&#x5F48;&#x51FA;&#x68E7;&#x9802;&#x7684;&#x5143;&#x7D20;</p>
<pre><code class="lang-Go">stack = stack[:<span class="hljs-built_in">len</span>(stack)-<span class="hljs-number">1</span>] <span class="hljs-comment">// pop</span>
</code></pre>
<p>&#x8981;&#x522A;&#x9664;slice&#x4E2D;&#x9593;&#x7684;&#x67D0;&#x500B;&#x5143;&#x7D20;&#x4F75;&#x4FDD;&#x5B58;&#x539F;&#x6709;&#x7684;&#x5143;&#x7D20;&#x9806;&#x5E8F;&#xFF0C;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x5167;&#x7F6E;&#x7684;copy&#x51FD;&#x6578;&#x5C07;&#x5F8C;&#x9762;&#x7684;&#x5B50;slice&#x5411;&#x524D;&#x4E00;&#x4F4D;&#x8907;&#x96DC;&#x5B8C;&#x6210;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> remove(slice []<span class="hljs-typename">int</span>, i <span class="hljs-typename">int</span>) []<span class="hljs-typename">int</span> {
<span class="hljs-built_in">copy</span>(slice[i:], slice[i+<span class="hljs-number">1</span>:])
<span class="hljs-keyword">return</span> slice[:<span class="hljs-built_in">len</span>(slice)-<span class="hljs-number">1</span>]
}
<span class="hljs-keyword">func</span> main() {
s := []<span class="hljs-typename">int</span>{<span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">7</span>, <span class="hljs-number">8</span>, <span class="hljs-number">9</span>}
fmt.Println(remove(s, <span class="hljs-number">2</span>)) <span class="hljs-comment">// &quot;[5 6 8 9]&quot;</span>
}
</code></pre>
<p>&#x5982;&#x679C;&#x522A;&#x9664;&#x5143;&#x7D20;&#x5F8C;&#x4E0D;&#x7528;&#x4FDD;&#x5B58;&#x539F;&#x4F86;&#x9806;&#x5E8F;&#x7684;&#x8A71;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x7C21;&#x55AE;&#x7684;&#x7528;&#x6700;&#x5F8C;&#x4E00;&#x500B;&#x5143;&#x7D20;&#x8986;&#x84CB;&#x88AB;&#x522A;&#x9664;&#x7684;&#x5143;&#x7D20;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> remove(slice []<span class="hljs-typename">int</span>, i <span class="hljs-typename">int</span>) []<span class="hljs-typename">int</span> {
slice[i] = slice[<span class="hljs-built_in">len</span>(slice)-<span class="hljs-number">1</span>]
<span class="hljs-keyword">return</span> slice[:<span class="hljs-built_in">len</span>(slice)-<span class="hljs-number">1</span>]
}
<span class="hljs-keyword">func</span> main() {
s := []<span class="hljs-typename">int</span>{<span class="hljs-number">5</span>, <span class="hljs-number">6</span>, <span class="hljs-number">7</span>, <span class="hljs-number">8</span>, <span class="hljs-number">9</span>}
fmt.Println(remove(s, <span class="hljs-number">2</span>)) <span class="hljs-comment">// &quot;[5 6 9 8]</span>
}
</code></pre>
<p><strong>&#x7DF4;&#x7FD2; 4.3&#xFF1A;</strong> &#x91CD;&#x5BEB;reverse&#x51FD;&#x6578;&#xFF0C;&#x4F7F;&#x7528;&#x6578;&#x7D44;&#x6307;&#x91DD;&#x4EE3;&#x66FF;slice&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 4.4&#xFF1A;</strong> &#x7DE8;&#x5BEB;&#x4E00;&#x500B;rotate&#x51FD;&#x6578;&#xFF0C;&#x901A;&#x904E;&#x4E00;&#x6B21;&#x5FAA;&#x74B0;&#x5B8C;&#x6210;&#x955F;&#x8F49;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 4.5&#xFF1A;</strong> &#x5BEB;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x5728;&#x539F;&#x5730;&#x5B8C;&#x6210;&#x6D88;&#x9664;[]string&#x4E2D;&#x76F8;&#x9130;&#x91CD;&#x8907;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x64CD;&#x4F5C;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 4.6&#xFF1A;</strong> &#x7DE8;&#x5BEB;&#x4E00;&#x500B;&#x51FD;&#x6578;&#xFF0C;&#x539F;&#x5730;&#x5C07;&#x4E00;&#x500B;UTF-8&#x7DE8;&#x78BC;&#x7684;[]byte&#x985E;&#x578B;&#x7684;slice&#x4E2D;&#x76F8;&#x9130;&#x7684;&#x7A7A;&#x683C;&#xFF08;&#x53C3;&#x8003;unicode.IsSpace&#xFF09;&#x66FF;&#x63DB;&#x6210;&#x4E00;&#x500B;&#x7A7A;&#x683C;&#x8FD4;&#x8FF4;</p>
<p><strong>&#x7DF4;&#x7FD2; 4.7&#xFF1A;</strong> &#x8129;&#x6539;reverse&#x51FD;&#x6578;&#x7528;&#x65BC;&#x539F;&#x5730;&#x53CD;&#x8F49;UTF-8&#x7DE8;&#x78BC;&#x7684;[]byte&#x3002;&#x662F;&#x5426;&#x53EF;&#x4EE5;&#x4E0D;&#x7528;&#x5206;&#x914D;&#x984D;&#x5916;&#x7684;&#x5167;&#x5B58;&#xFF1F;</p>
</section> </section>
@@ -2042,7 +2283,7 @@
<a href="../ch4/ch4-01.html" class="navigation navigation-prev " aria-label="Previous page: 數組"><i class="fa fa-angle-left"></i></a> <a href="../ch4/ch4-01.html" class="navigation navigation-prev " aria-label="Previous page: 數組"><i class="fa fa-angle-left"></i></a>
<a href="../ch4/ch4-03.html" class="navigation navigation-next " aria-label="Next page: 字典"><i class="fa fa-angle-right"></i></a> <a href="../ch4/ch4-03.html" class="navigation navigation-next " aria-label="Next page: Map"><i class="fa fa-angle-right"></i></a>
</div> </div>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>字典 | Go编程语言</title> <title>Map | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="4.3" data-chapter-title="字典" data-filepath="ch4/ch4-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="4.3" data-chapter-title="Map" data-filepath="ch4/ch4-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>
@@ -2023,8 +2023,213 @@
<section class="normal" id="section-"> <section class="normal" id="section-">
<h2 id="43-&#x5B57;&#x5178;">4.3. &#x5B57;&#x5178;</h2> <h2 id="43-map">4.3. Map</h2>
<p>TODO</p> <p>&#x54C8;&#x5E0C;&#x8868;&#x662F;&#x4E00;&#x7A2E;&#x5DE7;&#x5999;&#x4F75;&#x4E14;&#x5BE6;&#x7528;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x3002;&#x5B83;&#x662F;&#x4E00;&#x500B;&#x7121;&#x5E8F;&#x7684;key/value&#x5C0D;&#x7684;&#x96C6;&#x5408;&#xFF0C;&#x5176;&#x4E2D;&#x6240;&#x6709;&#x7684;key&#x90FD;&#x662F;&#x4E0D;&#x540C;&#x7684;&#xFF0C;&#x7136;&#x5F8C;&#x901A;&#x904E;&#x7D66;&#x5B9A;&#x7684;key&#x53EF;&#x4EE5;&#x5728;&#x5E38;&#x6578;&#x6642;&#x9593;&#x8907;&#x96DC;&#x5EA6;&#x5167;&#x6AA2;&#x7D22;&#x3001;&#x66F4;&#x65B0;&#x6216;&#x522A;&#x9664;&#x5C0D;&#x61C9;&#x7684;value&#x3002;</p>
<p>&#x5728;Go&#x8A9E;&#x8A00;&#x4E2D;&#xFF0C;&#x4E00;&#x500B;map&#x5C31;&#x662F;&#x4E00;&#x500B;&#x54C8;&#x5E0C;&#x8868;&#x7684;&#x5F15;&#x7528;&#xFF0C;map&#x985E;&#x578B;&#x53EF;&#x4EE5;&#x5BEB;&#x7232;map[K]V&#xFF0C;&#x5176;&#x4E2D;K&#x548C;V&#x5206;&#x522B;&#x5C0D;&#x61C9;key&#x548C;value&#x3002;map&#x4E2D;&#x6240;&#x6709;&#x7684;key&#x90FD;&#x6709;&#x76F8;&#x540C;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x6240;&#x4EE5;&#x7684;value&#x4E5F;&#x6709;&#x7740;&#x76F8;&#x540C;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x4F46;&#x662F;key&#x548C;value&#x4E4B;&#x9593;&#x53EF;&#x4EE5;&#x662F;&#x4E0D;&#x540C;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;&#x3002;&#x5176;&#x4E2D;K&#x5C0D;&#x61C9;&#x7684;key&#x5FC5;&#x9B1A;&#x662F;&#x652F;&#x6301;==&#x6BD4;&#x8F03;&#x904B;&#x7B97;&#x7B26;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;&#xFF0C;&#x6240;&#x4EE5;map&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x6E2C;&#x8A66;key&#x662F;&#x5426;&#x76F8;&#x7B49;&#x4F86;&#x5224;&#x65B7;&#x662F;&#x5426;&#x5DF2;&#x7D93;&#x5B58;&#x5728;&#x3002;&#x96D6;&#x7136;&#x6D6E;&#x9EDE;&#x6578;&#x985E;&#x578B;&#x4E5F;&#x662F;&#x652F;&#x6301;&#x76F8;&#x7B49;&#x904B;&#x7B97;&#x7B26;&#x6BD4;&#x8F03;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x5C07;&#x6D6E;&#x9EDE;&#x6578;&#x7528;&#x505A;key&#x985E;&#x578B;&#x5247;&#x662F;&#x4E00;&#x500B;&#x58DE;&#x7684;&#x60F3;&#x6CD5;&#xFF0C;&#x6B63;&#x5982;&#x7B2C;&#x4E09;&#x7AE0;&#x63D0;&#x5230;&#x7684;&#xFF0C;&#x6700;&#x58DE;&#x7684;&#x60C5;&#x6CC1;&#x662F;&#x53EF;&#x80FD;&#x51FA;&#x73FE;&#x7684;NaN&#x548C;&#x4EFB;&#x4F55;&#x6D6E;&#x9EDE;&#x6578;&#x90FD;&#x4E0D;&#x76F8;&#x7B49;&#x3002;&#x5C0D;&#x65BC;V&#x5C0D;&#x61C9;&#x7684;value&#x6578;&#x64DA;&#x985E;&#x578B;&#x5247;&#x6C92;&#x6709;&#x4EFB;&#x4F55;&#x7684;&#x9650;&#x88FD;&#x3002;</p>
<p>&#x5167;&#x7F6E;&#x7684;make&#x51FD;&#x6578;&#x53EF;&#x4EE5;&#x5275;&#x5EFA;&#x4E00;&#x500B;map&#xFF1A;</p>
<pre><code class="lang-Go">ages := <span class="hljs-built_in">make</span>(<span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">int</span>) <span class="hljs-comment">// mapping from strings to ints</span>
</code></pre>
<p>&#x6211;&#x5011;&#x4E5F;&#x53EF;&#x4EE5;&#x7528;map&#x5B57;&#x9762;&#x503C;&#x7684;&#x8A9E;&#x6CD5;&#x5275;&#x5EFA;map&#xFF0C;&#x540C;&#x6642;&#x9084;&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#x4E00;&#x4E9B;&#x6700;&#x521D;&#x7684;key/value&#xFF1A;</p>
<pre><code class="lang-Go">ages := <span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">int</span>{
<span class="hljs-string">&quot;alice&quot;</span>: <span class="hljs-number">31</span>,
<span class="hljs-string">&quot;charlie&quot;</span>: <span class="hljs-number">34</span>,
}
</code></pre>
<p>&#x9019;&#x76F8;&#x7576;&#x65BC;</p>
<pre><code class="lang-Go">ages := <span class="hljs-built_in">make</span>(<span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">int</span>)
ages[<span class="hljs-string">&quot;alice&quot;</span>] = <span class="hljs-number">31</span>
ages[<span class="hljs-string">&quot;charlie&quot;</span>] = <span class="hljs-number">34</span>
</code></pre>
<p>&#x56E0;&#x6B64;&#xFF0C;&#x53E6;&#x4E00;&#x7A2E;&#x5275;&#x5EFA;&#x7A7A;&#x7684;map&#x7684;&#x8868;&#x9054;&#x5F0F;&#x662F;map[string]int{}&#x3002;</p>
<p>Map&#x4E2D;&#x7684;&#x5143;&#x7D20;&#x901A;&#x904E;key&#x5C0D;&#x61C9;&#x7684;&#x4E0B;&#x6A19;&#x8A9E;&#x6CD5;&#x8A2A;&#x554F;&#xFF1A;</p>
<pre><code class="lang-Go">ages[<span class="hljs-string">&quot;alice&quot;</span>] = <span class="hljs-number">32</span>
fmt.Println(ages[<span class="hljs-string">&quot;alice&quot;</span>]) <span class="hljs-comment">// &quot;32&quot;</span>
</code></pre>
<p>&#x4F7F;&#x7528;&#x5167;&#x7F6E;&#x7684;delete&#x51FD;&#x6578;&#x53EF;&#x4EE5;&#x522A;&#x9664;&#x5143;&#x7D20;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-built_in">delete</span>(ages, <span class="hljs-string">&quot;alice&quot;</span>) <span class="hljs-comment">// remove element ages[&quot;alice&quot;]</span>
</code></pre>
<p>&#x6240;&#x6709;&#x9019;&#x4E9B;&#x64CD;&#x4F5C;&#x662F;&#x5B89;&#x5168;&#x7684;&#xFF0C;&#x537D;&#x4F7F;&#x9019;&#x4E9B;&#x5143;&#x7D20;&#x4E0D;&#x5728;map&#x4E2D;&#x4E5F;&#x6C92;&#x6709;&#x95DC;&#x7E6B;&#xFF1B;&#x5982;&#x679C;&#x4E00;&#x500B;&#x67FB;&#x627E;&#x5931;&#x6557;&#x5C07;&#x8FD4;&#x8FF4;value&#x985E;&#x578B;&#x5C0D;&#x61C9;&#x7684;&#x96F6;&#x503C;&#xFF0C;&#x4F8B;&#x5982;&#xFF0C;&#x537D;&#x4F7F;map&#x4E2D;&#x4E0D;&#x5B58;&#x5728;&#x201C;bob&#x201D;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x4E5F;&#x53EF;&#x4EE5;&#x6B63;&#x5E38;&#x5DE5;&#x4F5C;&#xFF0C;&#x56E0;&#x7232;ages[&quot;bob&quot;]&#x5931;&#x6557;&#x6642;&#x5C07;&#x8FD4;&#x8FF4;0&#x3002;</p>
<pre><code class="lang-Go">ages[<span class="hljs-string">&quot;bob&quot;</span>] = ages[<span class="hljs-string">&quot;bob&quot;</span>] + <span class="hljs-number">1</span> <span class="hljs-comment">// happy birthday!</span>
</code></pre>
<p>&#x800C;&#x4E14;x += y&#x548C;x++&#x7B49;&#x7C21;&#x77ED;&#x8CE6;&#x503C;&#x8A9E;&#x6CD5;&#x4E5F;&#x53EF;&#x4EE5;&#x7528;&#x5728;map&#x4E0A;&#xFF0C;&#x6240;&#x4EE5;&#x4E0A;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x53EF;&#x4EE5;&#x6539;&#x5BEB;&#x6210;</p>
<pre><code class="lang-Go">ages[<span class="hljs-string">&quot;bob&quot;</span>] += <span class="hljs-number">1</span>
</code></pre>
<p>&#x66F4;&#x7C21;&#x55AE;&#x7684;&#x5BEB;&#x6CD5;</p>
<pre><code class="lang-Go">ages[<span class="hljs-string">&quot;bob&quot;</span>]++
</code></pre>
<p>&#x4F46;&#x662F;map&#x4E2D;&#x7684;&#x5143;&#x7D20;&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#xFF0C;&#x56E0;&#x6B64;&#x6211;&#x5011;&#x4E0D;&#x80FD;&#x5C0D;map&#x7684;&#x5143;&#x7D20;&#x9032;&#x884C;&#x53D6;&#x5740;&#x64CD;&#x4F5C;&#xFF1A;</p>
<pre><code class="lang-Go">_ = &amp;ages[<span class="hljs-string">&quot;bob&quot;</span>] <span class="hljs-comment">// compile error: cannot take address of map element</span>
</code></pre>
<p>&#x7981;&#x6B62;&#x5C0D;map&#x5143;&#x7D20;&#x53D6;&#x5740;&#x7684;&#x539F;&#x56E0;&#x662F;map&#x53EF;&#x80FD;&#x96A8;&#x7740;&#x5143;&#x7D20;&#x6578;&#x91CF;&#x7684;&#x589E;&#x9577;&#x800C;&#x91CD;&#x65B0;&#x5206;&#x914D;&#x66F4;&#x5927;&#x7684;&#x5167;&#x5B58;&#x7A7A;&#x9593;&#xFF0C;&#x5F9E;&#x800C;&#x53EF;&#x80FD;&#x5C0E;&#x81F4;&#x4E4B;&#x524D;&#x7684;&#x5730;&#x5740;&#x7121;&#x6548;&#x3002;</p>
<p>&#x8981;&#x60F3;&#x904D;&#x6B77;map&#x4E2D;&#x5168;&#x90E8;&#x7684;key/value&#x5C0D;&#x7684;&#x8A71;&#xFF0C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;range&#x98A8;&#x683C;&#x7684;for&#x5FAA;&#x74B0;&#x5BE6;&#x73FE;&#xFF0C;&#x548C;&#x4E4B;&#x524D;&#x7684;slice&#x904D;&#x6B77;&#x8A9E;&#x6CD5;&#x985E;&#x4F3C;&#x3002;&#x4E0B;&#x9762;&#x7684;&#x8FED;&#x4EE3;&#x8A9E;&#x53E5;&#x5C07;&#x5728;&#x6BCF;&#x6B21;&#x8FED;&#x4EE3;&#x6642;&#x8A2D;&#x7F6E;name&#x548C;age&#x8B8A;&#x91CF;&#xFF0C;&#x5B83;&#x5011;&#x5C0D;&#x61C9;&#x4E0B;&#x4E00;&#x500B;&#x9375;/&#x503C;&#x5C0D;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">for</span> name, age := <span class="hljs-keyword">range</span> ages {
fmt.Printf(<span class="hljs-string">&quot;%s\t%d\n&quot;</span>, name, age)
}
</code></pre>
<p>Map&#x7684;&#x8FED;&#x4EE3;&#x9806;&#x5E8F;&#x662F;&#x4E0D;&#x78BA;&#x5B9A;&#x7684;&#xFF0C;&#x4F75;&#x4E14;&#x4E0D;&#x540C;&#x7684;&#x54C8;&#x5E0C;&#x51FD;&#x6578;&#x5BE6;&#x73FE;&#x53EF;&#x80FD;&#x5C0E;&#x81F4;&#x4E0D;&#x540C;&#x7684;&#x904D;&#x6B77;&#x9806;&#x5E8F;&#x3002;&#x5728;&#x5BE6;&#x8E10;&#x4E2D;&#xFF0C;&#x904D;&#x6B77;&#x7684;&#x9806;&#x5E8F;&#x662F;&#x96A8;&#x6A5F;&#x7684;&#xFF0C;&#x6BCF;&#x4E00;&#x6B21;&#x904D;&#x6B77;&#x7684;&#x9806;&#x5E8F;&#x90FD;&#x4E0D;&#x76F8;&#x540C;&#x3002;&#x9019;&#x662F;&#x6545;&#x610F;&#x7684;&#xFF0C;&#x6BCF;&#x6B21;&#x90FD;&#x4F7F;&#x7528;&#x96A8;&#x6A5F;&#x7684;&#x904D;&#x6B77;&#x9806;&#x5E8F;&#x53EF;&#x4EE5;&#x5F37;&#x88FD;&#x8981;&#x6C42;&#x7A0B;&#x5E8F;&#x4E0D;&#x6703;&#x4F9D;&#x8CF4;&#x5177;&#x9AD4;&#x7684;&#x54C8;&#x5E0C;&#x51FD;&#x6578;&#x5BE6;&#x73FE;&#x3002;&#x5982;&#x679C;&#x8981;&#x6309;&#x9806;&#x5E8F;&#x904D;&#x6B77;key/value&#x5C0D;&#xFF0C;&#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x986F;&#x5F0F;&#x5730;&#x5C0D;key&#x9032;&#x884C;&#x6392;&#x5E8F;&#xFF0C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;sort&#x5305;&#x7684;Strings&#x51FD;&#x6578;&#x5C0D;&#x5B57;&#x7B26;&#x4E32;slice&#x9032;&#x884C;&#x6392;&#x5E8F;&#x3002;&#x4E0B;&#x9762;&#x662F;&#x5E38;&#x898B;&#x7684;&#x8655;&#x7406;&#x65B9;&#x5F0F;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">import</span> <span class="hljs-string">&quot;sort&quot;</span>
<span class="hljs-keyword">var</span> names []<span class="hljs-typename">string</span>
<span class="hljs-keyword">for</span> name := <span class="hljs-keyword">range</span> ages {
names = <span class="hljs-built_in">append</span>(names, name)
}
sort.Strings(names)
<span class="hljs-keyword">for</span> _, name := <span class="hljs-keyword">range</span> names {
fmt.Printf(<span class="hljs-string">&quot;%s\t%d\n&quot;</span>, name, ages[name])
}
</code></pre>
<p>&#x56E0;&#x7232;&#x6211;&#x5011;&#x4E00;&#x958B;&#x59CB;&#x5C31;&#x77E5;&#x9053;names&#x7684;&#x6700;&#x7D42;&#x5927;&#x5C0F;&#xFF0C;&#x56E0;&#x6B64;&#x7D66;slice&#x5206;&#x914D;&#x4E00;&#x500B;&#x5408;&#x9069;&#x7684;&#x5927;&#x5C0F;&#x5C07;&#x6703;&#x66F4;&#x6709;&#x6548;&#x3002;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x5275;&#x5EFA;&#x4E86;&#x4E00;&#x500B;&#x7A7A;&#x7684;slice&#xFF0C;&#x4F46;&#x662F;slice&#x7684;&#x5BB9;&#x91CF;&#x525B;&#x597D;&#x53EF;&#x4EE5;&#x653E;&#x4E0B;map&#x4E2D;&#x5168;&#x90E8;&#x7684;key&#xFF1A;</p>
<pre><code class="lang-Go">names := <span class="hljs-built_in">make</span>([]<span class="hljs-typename">string</span>, <span class="hljs-number">0</span>, <span class="hljs-built_in">len</span>(ages))
</code></pre>
<p>&#x5728;&#x4E0A;&#x9762;&#x7684;&#x7B2C;&#x4E00;&#x500B;range&#x5FAA;&#x74B0;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x96BB;&#x95DC;&#x5FC3;map&#x4E2D;&#x7684;key&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x5011;&#x5FFD;&#x7565;&#x4E86;&#x7B2C;&#x4E8C;&#x500B;&#x5FAA;&#x74B0;&#x8B8A;&#x91CF;&#x3002;&#x5728;&#x7B2C;&#x4E8C;&#x500B;&#x5FAA;&#x74B0;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x96BB;&#x95DC;&#x7E6B;names&#x4E2D;&#x7684;&#x540D;&#x5B57;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x5011;&#x4F7F;&#x7528;&#x201C;_&#x201D;&#x7A7A;&#x767D;&#x6A19;&#x8B58;&#x7B26;&#x4F86;&#x5FFD;&#x7565;&#x7B2C;&#x4E00;&#x500B;&#x5FAA;&#x74B0;&#x8B8A;&#x91CF;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8FED;&#x4EE3;slice&#x6642;&#x7684;&#x7D22;&#x5F15;&#x3002;</p>
<p>map&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;&#x662F;nil&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x6C92;&#x6709;&#x5F15;&#x7528;&#x4EFB;&#x4F55;&#x54C8;&#x5E0C;&#x8868;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> ages <span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">int</span>
fmt.Println(ages == <span class="hljs-constant">nil</span>) <span class="hljs-comment">// &quot;true&quot;</span>
fmt.Println(<span class="hljs-built_in">len</span>(ages) == <span class="hljs-number">0</span>) <span class="hljs-comment">// &quot;true&quot;</span>
</code></pre>
<p>map&#x4E0A;&#x7684;&#x5927;&#x90E8;&#x5206;&#x64CD;&#x4F5C;&#xFF0C;&#x5305;&#x62EC;&#x67FB;&#x627E;&#x3001;&#x522A;&#x9664;&#x3001;len&#x548C;range&#x5FAA;&#x74B0;&#x90FD;&#x53EF;&#x4EE5;&#x5B89;&#x5168;&#x5DE5;&#x4F5C;&#x5728;nil&#x503C;&#x7684;map&#x4E0A;&#xFF0C;&#x5B83;&#x5011;&#x7684;&#x884C;&#x7232;&#x548C;&#x4E00;&#x500B;&#x7A7A;&#x7684;map&#x985E;&#x4F3C;&#x3002;&#x4F46;&#x662F;&#x5411;&#x4E00;&#x500B;nil&#x503C;&#x7684;map&#x5B58;&#x5165;&#x5143;&#x7D20;&#x5C07;&#x5C0E;&#x81F4;&#x4E00;&#x500B;panic&#x7570;&#x5E38;&#xFF1A;</p>
<pre><code class="lang-Go">ages[<span class="hljs-string">&quot;carol&quot;</span>] = <span class="hljs-number">21</span> <span class="hljs-comment">// panic: assignment to entry in nil map</span>
</code></pre>
<p>&#x5728;&#x5411;map&#x5B58;&#x6578;&#x64DA;&#x524D;&#x5FC5;&#x9B1A;&#x5148;&#x5275;&#x5EFA;map&#x3002;</p>
<p>&#x901A;&#x904E;key&#x4F5C;&#x7232;&#x7D22;&#x5F15;&#x4E0B;&#x6A19;&#x4F86;&#x8A2A;&#x554F;map&#x5C07;&#x7523;&#x751F;&#x4E00;&#x500B;value&#x3002;&#x5982;&#x679C;key&#x5728;map&#x4E2D;&#x662F;&#x5B58;&#x5728;&#x7684;&#xFF0C;&#x90A3;&#x9EBD;&#x5C07;&#x5F97;&#x5230;&#x8207;key&#x5C0D;&#x61C9;&#x7684;value&#xFF1B;&#x5982;&#x679C;key&#x4E0D;&#x5B58;&#x5728;&#xFF0C;&#x90A3;&#x9EBD;&#x5C07;&#x5F97;&#x5230;value&#x5C0D;&#x61C9;&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;&#xFF0C;&#x6B63;&#x5982;&#x6211;&#x5011;&#x524D;&#x9762;&#x770B;&#x5230;&#x7684;ages[&quot;bob&quot;]&#x90A3;&#x6A23;&#x3002;&#x9019;&#x500B;&#x898F;&#x5247;&#x5F88;&#x5BE6;&#x7528;&#xFF0C;&#x4F46;&#x662F;&#x6709;&#x6642;&#x5019;&#x53EF;&#x80FD;&#x9700;&#x8981;&#x77E5;&#x9053;&#x5C0D;&#x61C9;&#x7684;&#x5143;&#x7D20;&#x662F;&#x5426;&#x771E;&#x7684;&#x662F;&#x5728;map&#x4E4B;&#x4E2D;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x5982;&#x679C;&#x5143;&#x7D20;&#x985E;&#x578B;&#x662F;&#x4E00;&#x500B;&#x6578;&#x5B57;&#xFF0C;&#x4F60;&#x53EF;&#x4EE5;&#x9700;&#x8981;&#x5340;&#x5206;&#x4E00;&#x500B;&#x5DF2;&#x7D93;&#x5B58;&#x5728;&#x7684;0&#xFF0C;&#x548C;&#x4E0D;&#x5B58;&#x5728;&#x800C;&#x8FD4;&#x8FF4;&#x96F6;&#x503C;&#x7684;0&#xFF0C;&#x53EF;&#x4EE5;&#x50CF;&#x4E0B;&#x9762;&#x9019;&#x6A23;&#x6E2C;&#x8A66;&#xFF1A;</p>
<pre><code class="lang-Go">age, ok := ages[<span class="hljs-string">&quot;bob&quot;</span>]
<span class="hljs-keyword">if</span> !ok { <span class="hljs-comment">/* &quot;bob&quot; is not a key in this map; age == 0. */</span> }
</code></pre>
<p>&#x4F60;&#x6703;&#x7D93;&#x5E38;&#x770B;&#x5230;&#x5C07;&#x9019;&#x5169;&#x500B;&#x7D50;&#x5408;&#x8D77;&#x4F86;&#x4F7F;&#x7528;&#xFF0C;&#x50CF;&#x9019;&#x6A23;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">if</span> age, ok := ages[<span class="hljs-string">&quot;bob&quot;</span>]; !ok { <span class="hljs-comment">/* ... */</span> }
</code></pre>
<p>&#x5728;&#x9019;&#x7A2E;&#x5834;&#x666F;&#x4E0B;&#xFF0C;map&#x7684;&#x4E0B;&#x6A19;&#x8A9E;&#x6CD5;&#x5C07;&#x7523;&#x751F;&#x5169;&#x500B;&#x503C;&#xFF1B;&#x7B2C;&#x4E8C;&#x500B;&#x662F;&#x4E00;&#x500B;&#x5E03;&#x723E;&#x503C;&#xFF0C;&#x7528;&#x65BC;&#x5831;&#x544A;&#x5143;&#x7D20;&#x662F;&#x5426;&#x771E;&#x7684;&#x5B58;&#x5728;&#x3002;&#x5E03;&#x723E;&#x8B8A;&#x91CF;&#x4E00;&#x822C;&#x547D;&#x540D;&#x7232;ok&#xFF0C;&#x7279;&#x522B;&#x9069;&#x5408;&#x99AC;&#x4E0A;&#x7528;&#x65BC;if&#x689D;&#x4EF6;&#x5224;&#x65B7;&#x90E8;&#x5206;&#x3002;</p>
<p>&#x548C;slice&#x4E00;&#x6A23;&#xFF0C;map&#x4E4B;&#x9593;&#x4E5F;&#x4E0D;&#x80FD;&#x9032;&#x884C;&#x76F8;&#x7B49;&#x6BD4;&#x8F03;&#xFF1B;&#x552F;&#x4E00;&#x7684;&#x4F8B;&#x5916;&#x662F;&#x548C;nil&#x9032;&#x884C;&#x6BD4;&#x8F03;&#x3002;&#x8981;&#x5224;&#x65B7;&#x5169;&#x500B;map&#x662F;&#x5426;&#x5305;&#x542B;&#x76F8;&#x540C;&#x7684;key&#x548C;value&#xFF0C;&#x6211;&#x5011;&#x5FC5;&#x9B1A;&#x901A;&#x904E;&#x4E00;&#x500B;&#x5FAA;&#x74B0;&#x5BE6;&#x73FE;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> equal(x, y <span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">int</span>) <span class="hljs-typename">bool</span> {
<span class="hljs-keyword">if</span> <span class="hljs-built_in">len</span>(x) != <span class="hljs-built_in">len</span>(y) {
<span class="hljs-keyword">return</span> <span class="hljs-constant">false</span>
}
<span class="hljs-keyword">for</span> k, xv := <span class="hljs-keyword">range</span> x {
<span class="hljs-keyword">if</span> yv, ok := y[k]; !ok || yv != xv {
<span class="hljs-keyword">return</span> <span class="hljs-constant">false</span>
}
}
<span class="hljs-keyword">return</span> <span class="hljs-constant">true</span>
}
</code></pre>
<p>&#x8981;&#x8A3B;&#x610F;&#x6211;&#x5011;&#x662F;&#x5982;&#x4F55;&#x7528;!ok&#x4F86;&#x5340;&#x5206;&#x5143;&#x7D20;&#x7F3A;&#x5931;&#x548C;&#x5143;&#x7D20;&#x4E0D;&#x540C;&#x7684;&#x3002;&#x6211;&#x5011;&#x4E0D;&#x80FD;&#x7C21;&#x55AE;&#x5730;&#x7528;xv != y[k]&#x5224;&#x65B7;&#xFF0C;&#x90A3;&#x6A23;&#x6703;&#x5C0E;&#x81F4;&#x5728;&#x5224;&#x65B7;&#x4E0B;&#x9762;&#x5169;&#x500B;map&#x6642;&#x7523;&#x751F;&#x932F;&#x8AA4;&#x7684;&#x7D50;&#x679C;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-comment">// True if equal is written incorrectly.</span>
equal(<span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">int</span>{<span class="hljs-string">&quot;A&quot;</span>: <span class="hljs-number">0</span>}, <span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">int</span>{<span class="hljs-string">&quot;B&quot;</span>: <span class="hljs-number">42</span>})
</code></pre>
<p>Go&#x8A9E;&#x8A00;&#x4E2D;&#x4F75;&#x6C92;&#x6709;&#x63D0;&#x4F9B;&#x4E00;&#x500B;set&#x985E;&#x578B;&#xFF0C;&#x4F46;&#x662F;map&#x4E2D;&#x7684;key&#x4E5F;&#x662F;&#x4E0D;&#x76F8;&#x540C;&#x7684;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;map&#x5BE6;&#x73FE;&#x985E;&#x4F3C;&#x7684;&#x529F;&#x80FD;&#x3002;&#x7232;&#x4E86;&#x8AAC;&#x660E;&#x9019;&#x4E00;&#x9EDE;&#xFF0C;&#x4E0B;&#x9762;&#x7684;dedup&#x7A0B;&#x5E8F;&#x8B80;&#x53D6;&#x591A;&#x884C;&#x8F38;&#x5165;&#xFF0C;&#x4F46;&#x662F;&#x96BB;&#x6253;&#x5370;&#x7B2C;&#x4E00;&#x6B21;&#x51FA;&#x73FE;&#x7684;&#x884C;&#x3002;&#xFF08;&#x5B83;&#x662F;1.3&#x7BC0;&#x4E2D;&#x51FA;&#x73FE;&#x7684;dup&#x7A0B;&#x5E8F;&#x7684;&#x8B8A;&#x9AD4;&#x3002;&#xFF09;dedup&#x7A0B;&#x5E8F;&#x901A;&#x904E;map&#x4F86;&#x8868;&#x793A;&#x6240;&#x6709;&#x7684;&#x8F38;&#x5165;&#x884C;&#x6240;&#x5C0D;&#x61C9;&#x7684;set&#x96C6;&#x5408;&#xFF0C;&#x4EE5;&#x78BA;&#x4FDD;&#x5DF2;&#x7D93;&#x5728;&#x96C6;&#x5408;&#x5B58;&#x5728;&#x7684;&#x884C;&#x4E0D;&#x6703;&#x88AB;&#x91CD;&#x8907;&#x6253;&#x5370;&#x3002;</p>
<pre><code class="lang-Go">gopl.io/ch4/dedup
<span class="hljs-keyword">func</span> main() {
seen := <span class="hljs-built_in">make</span>(<span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">bool</span>) <span class="hljs-comment">// a set of strings</span>
input := bufio.NewScanner(os.Stdin)
<span class="hljs-keyword">for</span> input.Scan() {
line := input.Text()
<span class="hljs-keyword">if</span> !seen[line] {
seen[line] = <span class="hljs-constant">true</span>
fmt.Println(line)
}
}
<span class="hljs-keyword">if</span> err := input.Err(); err != <span class="hljs-constant">nil</span> {
fmt.Fprintf(os.Stderr, <span class="hljs-string">&quot;dedup: %v\n&quot;</span>, err)
os.Exit(<span class="hljs-number">1</span>)
}
}
</code></pre>
<p>Go&#x7A0B;&#x5E8F;&#x54E1;&#x5C07;&#x9019;&#x7A2E;&#x5FFD;&#x7565;value&#x7684;map&#x7576;&#x4F5C;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x96C6;&#x5408;&#xFF0C;&#x4F75;&#x975E;&#x6240;&#x6709;map[string]bool&#x985E;&#x578B;value&#x90FD;&#x662F;&#x7121;&#x95DC;&#x7DCA;&#x8981;&#x7684;&#xFF1B;&#x6709;&#x4E00;&#x4E9B;&#x5247;&#x53EF;&#x80FD;&#x6703;&#x540C;&#x6642;&#x5305;&#x542B;tue&#x548C;false&#x7684;&#x503C;&#x3002;</p>
<p>&#x6709;&#x6642;&#x5019;&#x6211;&#x5011;&#x9700;&#x8981;&#x4E00;&#x500B;map&#x6216;set&#x7684;key&#x662F;slice&#x985E;&#x578B;&#xFF0C;&#x4F46;&#x662F;map&#x7684;key&#x5FC5;&#x9B1A;&#x662F;&#x53EF;&#x6BD4;&#x8F03;&#x7684;&#xFF0C;&#x4F46;&#x662F;slice&#x4F75;&#x4E0D;&#x6EFF;&#x8DB3;&#x9019;&#x500B;&#x689D;&#x4EF6;&#x3002;&#x4E0D;&#x904E;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x5169;&#x500B;&#x6B65;&#x9A5F;&#x7E5E;&#x904E;&#x9019;&#x500B;&#x9650;&#x88FD;&#x3002;&#x7B2C;&#x4E00;&#x6B65;&#xFF0C;&#x5B9A;&#x7FA9;&#x4E00;&#x500B;&#x8F14;&#x52A9;&#x51FD;&#x6578;k&#xFF0C;&#x5C07;slice&#x8F49;&#x7232;map&#x5C0D;&#x61C9;&#x7684;string&#x985E;&#x578B;&#x7684;key&#xFF0C;&#x78BA;&#x4FDD;&#x96BB;&#x6709;x&#x548C;y&#x76F8;&#x7B49;&#x6642;k(x) == k(y)&#x624D;&#x6210;&#x7ACB;&#x3002;&#x7136;&#x5F8C;&#x5275;&#x5EFA;&#x4E00;&#x500B;key&#x7232;string&#x985E;&#x578B;&#x7684;map&#xFF0C;&#x5728;&#x6BCF;&#x6B21;&#x5C0D;map&#x64CD;&#x4F5C;&#x6642;&#x5148;&#x7528;k&#x8F14;&#x52A9;&#x51FD;&#x6578;&#x5C07;slice&#x8F49;&#x5316;&#x7232;string&#x985E;&#x578B;&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x6F14;&#x793A;&#x4E86;&#x5982;&#x4F55;&#x4F7F;&#x7528;map&#x4F86;&#x8A18;&#x9332;&#x63D0;&#x4EA4;&#x76F8;&#x540C;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x5217;&#x8868;&#x7684;&#x6B21;&#x6578;&#x3002;&#x5B83;&#x4F7F;&#x7528;&#x4E86;fmt.Sprintf&#x51FD;&#x6578;&#x5C07;&#x5B57;&#x7B26;&#x4E32;&#x5217;&#x8868;&#x8F49;&#x63DB;&#x7232;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x4EE5;&#x7528;&#x65BC;map&#x7684;key&#xFF0C;&#x901A;&#x904E;%q&#x53C3;&#x6578;&#x5FE0;&#x5BE6;&#x5730;&#x8A18;&#x9332;&#x6BCF;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x5143;&#x7D20;&#x7684;&#x4FE1;&#x606F;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> m = <span class="hljs-built_in">make</span>(<span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">int</span>)
<span class="hljs-keyword">func</span> k(list []<span class="hljs-typename">string</span>) <span class="hljs-typename">string</span> { <span class="hljs-keyword">return</span> fmt.Sprintf(<span class="hljs-string">&quot;%q&quot;</span>, list) }
<span class="hljs-keyword">func</span> Add(list []<span class="hljs-typename">string</span>) { m[k(list)]++ }
<span class="hljs-keyword">func</span> Count(list []<span class="hljs-typename">string</span>) <span class="hljs-typename">int</span> { <span class="hljs-keyword">return</span> m[k(list)] }
</code></pre>
<p>&#x4F7F;&#x7528;&#x540C;&#x6A23;&#x7684;&#x6280;&#x8853;&#x53EF;&#x4EE5;&#x8655;&#x7406;&#x4EFB;&#x4F55;&#x4E0D;&#x53EF;&#x6BD4;&#x8F03;&#x7684;key&#x985E;&#x578B;&#xFF0C;&#x800C;&#x4E0D;&#x50C5;&#x50C5;&#x662F;slice&#x985E;&#x578B;&#x3002;&#x5B83;&#x5C0D;&#x65BC;&#x60F3;&#x4F7F;&#x7528;&#x81EA;&#x5B9A;&#x7FA9;key&#x6BD4;&#x8F03;&#x51FD;&#x6578;&#x7684;&#x6642;&#x5019;&#x4E5F;&#x5F88;&#x6709;&#x7528;&#xFF0C;&#x4F8B;&#x5982;&#x5728;&#x6BD4;&#x8F03;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x6642;&#x5019;&#x5FFD;&#x7565;&#x5927;&#x5C0F;&#x5BEB;&#x3002;&#x540C;&#x6642;&#xFF0C;&#x8F14;&#x52A9;&#x51FD;&#x6578;k(x)&#x4E5F;&#x4E0D;&#x4E00;&#x5B9A;&#x662F;&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#xFF0C;&#x5B83;&#x53EF;&#x4EE5;&#x8FD4;&#x8FF4;&#x4EFB;&#x4F55;&#x53EF;&#x6BD4;&#x8F03;&#x7684;&#x985E;&#x578B;&#xFF0C;&#x4F8B;&#x5982;&#x6574;&#x6578;&#x3001;&#x6578;&#x7D44;&#x6216;&#x7D50;&#x69CB;&#x9AD4;&#x7B49;&#x3002;</p>
<p>&#x9019;&#x662F;map&#x7684;&#x53E6;&#x4E00;&#x500B;&#x4F8B;&#x5B50;&#xFF0C;&#x4E0B;&#x9762;&#x7684;&#x7A0B;&#x5E8F;&#x7528;&#x65BC;&#x7D71;&#x8A08;&#x8F38;&#x5165;&#x4E2D;&#x6BCF;&#x500B;Unicode&#x78BC;&#x9EDE;&#x51FA;&#x73FE;&#x7684;&#x6B21;&#x6578;&#x3002;&#x96D6;&#x7136;Unicode&#x5168;&#x90E8;&#x78BC;&#x9EDE;&#x7684;&#x6578;&#x91CF;&#x9245;&#x5927;&#xFF0C;&#x4F46;&#x662F;&#x51FA;&#x73FE;&#x5728;&#x7279;&#x9EDE;&#x6587;&#x6A94;&#x4E2D;&#x7684;&#x5B57;&#x7B26;&#x4F75;&#x6C92;&#x6709;&#x591A;&#x5C11;&#xFF0C;&#x4F7F;&#x7528;map&#x53EF;&#x4EE5;&#x7528;&#x6BD4;&#x8F03;&#x81EA;&#x7136;&#x7684;&#x65B9;&#x5F0F;&#x4F86;&#x8DDF;&#x8E64;&#x90A3;&#x4E9B;&#x898B;&#x904E;&#x5B57;&#x7B26;&#x6B21;&#x6578;&#x3002;</p>
<pre><code class="lang-Go">gopl.io/ch4/charcount
<span class="hljs-comment">// Charcount computes counts of Unicode characters.</span>
<span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> (
<span class="hljs-string">&quot;bufio&quot;</span>
<span class="hljs-string">&quot;fmt&quot;</span>
<span class="hljs-string">&quot;io&quot;</span>
<span class="hljs-string">&quot;os&quot;</span>
<span class="hljs-string">&quot;unicode&quot;</span>
<span class="hljs-string">&quot;unicode/utf8&quot;</span>
)
<span class="hljs-keyword">func</span> main() {
counts := <span class="hljs-built_in">make</span>(<span class="hljs-keyword">map</span>[<span class="hljs-typename">rune</span>]<span class="hljs-typename">int</span>) <span class="hljs-comment">// counts of Unicode characters</span>
<span class="hljs-keyword">var</span> utflen [utf8.UTFMax + <span class="hljs-number">1</span>]<span class="hljs-typename">int</span> <span class="hljs-comment">// count of lengths of UTF-8 encodings</span>
invalid := <span class="hljs-number">0</span> <span class="hljs-comment">// count of invalid UTF-8 characters</span>
in := bufio.NewReader(os.Stdin)
<span class="hljs-keyword">for</span> {
r, n, err := in.ReadRune() <span class="hljs-comment">// returns rune, nbytes, error</span>
<span class="hljs-keyword">if</span> err == io.EOF {
<span class="hljs-keyword">break</span>
}
<span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> {
fmt.Fprintf(os.Stderr, <span class="hljs-string">&quot;charcount: %v\n&quot;</span>, err)
os.Exit(<span class="hljs-number">1</span>)
}
<span class="hljs-keyword">if</span> r == unicode.ReplacementChar &amp;&amp; n == <span class="hljs-number">1</span> {
invalid++
<span class="hljs-keyword">continue</span>
}
counts[r]++
utflen[n]++
}
fmt.Printf(<span class="hljs-string">&quot;rune\tcount\n&quot;</span>)
<span class="hljs-keyword">for</span> c, n := <span class="hljs-keyword">range</span> counts {
fmt.Printf(<span class="hljs-string">&quot;%q\t%d\n&quot;</span>, c, n)
}
fmt.Print(<span class="hljs-string">&quot;\nlen\tcount\n&quot;</span>)
<span class="hljs-keyword">for</span> i, n := <span class="hljs-keyword">range</span> utflen {
<span class="hljs-keyword">if</span> i &gt; <span class="hljs-number">0</span> {
fmt.Printf(<span class="hljs-string">&quot;%d\t%d\n&quot;</span>, i, n)
}
}
<span class="hljs-keyword">if</span> invalid &gt; <span class="hljs-number">0</span> {
fmt.Printf(<span class="hljs-string">&quot;\n%d invalid UTF-8 characters\n&quot;</span>, invalid)
}
}
</code></pre>
<p>ReadRune&#x65B9;&#x6CD5;&#x57F7;&#x884C;UTF-8&#x89E3;&#x78BC;&#x4F75;&#x8FD4;&#x8FF4;&#x4E09;&#x500B;&#x503C;&#xFF1A;&#x89E3;&#x78BC;&#x7684;rune&#x5B57;&#x7B26;&#x7684;&#x503C;&#xFF0C;&#x5B57;&#x7B26;UTF-8&#x7DE8;&#x78BC;&#x5F8C;&#x7684;&#x9577;&#x5EA6;&#xFF0C;&#x548C;&#x4E00;&#x500B;&#x932F;&#x8AA4;&#x503C;&#x3002;&#x6211;&#x5011;&#x53EF;&#x9810;&#x671F;&#x7684;&#x932F;&#x8AA4;&#x503C;&#x96BB;&#x6709;&#x5C0D;&#x61C9;&#x6587;&#x4EF6;&#x7D50;&#x5C3E;&#x7684;io.EOF&#x3002;&#x5982;&#x679C;&#x8F38;&#x5165;&#x7684;&#x662F;&#x7121;&#x6548;&#x7684;UTF-8&#x7DE8;&#x78BC;&#x7684;&#x5B57;&#x7B26;&#xFF0C;&#x8FD4;&#x8FF4;&#x7684;&#x5C07;&#x662F;unicode.ReplacementChar&#x7121;&#x6548;&#x5B57;&#x7B26;&#xFF0C;&#x4F75;&#x4E14;&#x7DE8;&#x78BC;&#x9577;&#x5EA6;&#x662F;1&#x3002;</p>
<p>charcount&#x7A0B;&#x5E8F;&#x540C;&#x6642;&#x6253;&#x5370;&#x4E0D;&#x540C;UTF-8&#x7DE8;&#x78BC;&#x9577;&#x5EA6;&#x7684;&#x5B57;&#x7B26;&#x6578;&#x76EE;&#x3002;&#x5C0D;&#x6B64;&#xFF0C;map&#x4F75;&#x4E0D;&#x662F;&#x4E00;&#x500B;&#x5408;&#x9069;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#xFF1B;&#x56E0;&#x7232;UTF-8&#x7DE8;&#x78BC;&#x7684;&#x9577;&#x5EA6;&#x7E3D;&#x662F;&#x5F9E;1&#x5230;utf8.UTFMax&#xFF08;&#x6700;&#x5927;&#x662F;4&#x500B;&#x5B57;&#x7BC0;&#xFF09;&#xFF0C;&#x4F7F;&#x7528;&#x6578;&#x7D44;&#x5C07;&#x66F4;&#x6709;&#x6548;&#x3002;</p>
<p>&#x4F5C;&#x7232;&#x4E00;&#x500B;&#x5BE6;&#x9A57;&#xFF0C;&#x6211;&#x5011;&#x7528;charcount&#x7A0B;&#x5E8F;&#x5C0D;&#x672C;&#x8EAB;&#x7684;&#x5B57;&#x7B26;&#x9032;&#x884C;&#x4E86;&#x7D71;&#x8A08;&#x3002;&#x96D6;&#x7136;&#x5927;&#x90E8;&#x5206;&#x662F;&#x82F1;&#x8A9E;&#xFF0C;&#x4F46;&#x662F;&#x4E5F;&#x6709;&#x4E00;&#x4E9B;&#x975E;ASCII&#x5B57;&#x7B26;&#x3002;&#x4E0B;&#x9762;&#x662F;&#x6392;&#x540D;&#x524D;10&#x7684;&#x975E;ASCII&#x5B57;&#x7B26;&#xFF1A;</p>
<p><img src="../images/ch4-xx-01.png" alt=""></p>
<p>&#x4E0B;&#x9762;&#x662F;&#x4E0D;&#x540C;UTF-8&#x7DE8;&#x78BC;&#x9577;&#x5EA6;&#x7684;&#x5B57;&#x7B26;&#x7684;&#x6578;&#x76EE;&#xFF1A;</p>
<pre><code>len count
1 765391
2 60
3 70
4 0
</code></pre><p>Map&#x7684;value&#x985E;&#x578B;&#x4E5F;&#x53EF;&#x4EE5;&#x662F;&#x4E00;&#x500B;&#x805A;&#x5408;&#x985E;&#x578B;&#xFF0C;&#x6BD4;&#x5982;&#x662F;&#x4E00;&#x500B;map&#x6216;slice&#x3002;&#x5728;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x4E2D;&#xFF0C;&#x5716;graph&#x7684;key&#x985E;&#x578B;&#x662F;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;value&#x985E;&#x578B;map[string]bool&#x4EE3;&#x8868;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x96C6;&#x5408;&#x3002;&#x5F9E;&#x6982;&#x5FF5;&#x4E0A;&#x5C07;&#xFF0C;graph&#x5C07;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#x7684;key&#x6620;&#x5C04;&#x5230;&#x4E00;&#x7D44;&#x76F8;&#x95DC;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x96C6;&#x5408;&#xFF0C;&#x5B83;&#x5011;&#x6307;&#x5411;&#x65B0;&#x7684;graph&#x7684;key&#x3002;</p>
<pre><code class="lang-Go">gopl.io/ch4/graph
<span class="hljs-keyword">var</span> graph = <span class="hljs-built_in">make</span>(<span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">bool</span>)
<span class="hljs-keyword">func</span> addEdge(from, to <span class="hljs-typename">string</span>) {
edges := graph[from]
<span class="hljs-keyword">if</span> edges == <span class="hljs-constant">nil</span> {
edges = <span class="hljs-built_in">make</span>(<span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-typename">bool</span>)
graph[from] = edges
}
edges[to] = <span class="hljs-constant">true</span>
}
<span class="hljs-keyword">func</span> hasEdge(from, to <span class="hljs-typename">string</span>) <span class="hljs-typename">bool</span> {
<span class="hljs-keyword">return</span> graph[from][to]
}
</code></pre>
<p>&#x5176;&#x4E2D;addEdge&#x51FD;&#x6578;&#x60F0;&#x6027;&#x521D;&#x59CB;&#x5316;map&#x662F;&#x4E00;&#x500B;&#x6163;&#x7528;&#x65B9;&#x5F0F;&#xFF0C;&#x4E5F;&#x5C31;&#x662F;&#x8AAC;&#x5728;&#x6BCF;&#x500B;&#x503C;&#x9996;&#x6B21;&#x4F5C;&#x7232;key&#x662F;&#x624D;&#x521D;&#x59CB;&#x5316;&#x3002;addEdge&#x51FD;&#x6578;&#x986F;&#x793A;&#x4E86;&#x5982;&#x4F55;&#x8B93;map&#x7684;&#x96F6;&#x503C;&#x4E5F;&#x80FD;&#x6B63;&#x5E38;&#x5DE5;&#x4F5C;&#xFF1B;&#x537D;&#x4F7F;from&#x5230;to&#x7684;&#x908A;&#x4E0D;&#x5B58;&#x5728;&#xFF0C;graph[from][to]&#x4F9D;&#x7136;&#x53EF;&#x4EE5;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x6709;&#x610F;&#x7FA9;&#x7684;&#x7D50;&#x679C;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 4.8&#xFF1A;</strong> &#x8129;&#x6539;charcount&#x7A0B;&#x5E8F;&#xFF0C;&#x4F7F;&#x7528;unicode.IsLetter&#x7B49;&#x76F8;&#x95DC;&#x7684;&#x51FD;&#x6578;&#xFF0C;&#x7D71;&#x8A08;&#x5B57;&#x6BCD;&#x3001;&#x6578;&#x5B57;&#x7B49;Unicode&#x4E2D;&#x4E0D;&#x540C;&#x7684;&#x5B57;&#x7B26;&#x985E;&#x522B;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 4.9&#xFF1A;</strong> &#x7DE8;&#x5BEB;&#x4E00;&#x500B;&#x7A0B;&#x5E8F;wordfreq&#x7A0B;&#x5E8F;&#xFF0C;&#x5831;&#x544A;&#x8F38;&#x5165;&#x6587;&#x672C;&#x4E2D;&#x6BCF;&#x500B;&#x55AE;&#x8A5E;&#x51FA;&#x73FE;&#x7684;&#x983B;&#x7387;&#x3002;&#x5728;&#x7B2C;&#x4E00;&#x6B21;&#x8ABF;&#x7528;Scan&#x524D;&#x5148;&#x8ABF;&#x7528;input.Split(bufio.ScanWords)&#x51FD;&#x6578;&#xFF0C;&#x9019;&#x6A23;&#x53EF;&#x4EE5;&#x6309;&#x55AE;&#x8A5E;&#x800C;&#x4E0D;&#x662F;&#x6309;&#x884C;&#x8F38;&#x5165;&#x3002;</p>
</section> </section>
@@ -2035,7 +2240,7 @@
</div> </div>
<a href="../ch4/ch4-02.html" class="navigation navigation-prev " aria-label="Previous page: 切片"><i class="fa fa-angle-left"></i></a> <a href="../ch4/ch4-02.html" class="navigation navigation-prev " aria-label="Previous page: Slice"><i class="fa fa-angle-left"></i></a>
<a href="../ch4/ch4-04.html" class="navigation navigation-next " aria-label="Next page: 結構體"><i class="fa fa-angle-right"></i></a> <a href="../ch4/ch4-04.html" class="navigation navigation-next " aria-label="Next page: 結構體"><i class="fa fa-angle-right"></i></a>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>結構體 | Go编程语言</title> <title>結構體 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="4.4" data-chapter-title="結構體" data-filepath="ch4/ch4-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="4.4" data-chapter-title="結構體" data-filepath="ch4/ch4-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>
@@ -2024,13 +2024,265 @@
<section class="normal" id="section-"> <section class="normal" id="section-">
<h2 id="44-&#x7D50;&#x69CB;&#x9AD4;">4.4. &#x7D50;&#x69CB;&#x9AD4;</h2> <h2 id="44-&#x7D50;&#x69CB;&#x9AD4;">4.4. &#x7D50;&#x69CB;&#x9AD4;</h2>
<p>TODO</p> <p>&#x7D50;&#x69CB;&#x9AD4;&#x662F;&#x4E00;&#x7A2E;&#x805A;&#x5408;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;&#xFF0C;&#x7531;&#x96F6;&#x500B;&#x6216;&#x591A;&#x500B;&#x4EFB;&#x610F;&#x985E;&#x578B;&#x7684;&#x503C;&#x805A;&#x5408;&#x6210;&#x7684;&#x5BE6;&#x9AD4;&#x3002;&#x6BCF;&#x500B;&#x503C;&#x7A31;&#x7232;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6210;&#x54E1;&#x3002;&#x662F;&#x7528;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x7D93;&#x5178;&#x6848;&#x4F8B;&#x8655;&#x7406;&#x516C;&#x53F8;&#x7684;&#x54E1;&#x5DE5;&#x4FE1;&#x606F;&#xFF0C;&#x6BCF;&#x500B;&#x54E1;&#x5DE5;&#x4FE1;&#x606F;&#x5305;&#x542B;&#x4E00;&#x500B;&#x552F;&#x4E00;&#x7684;&#x54E1;&#x5DE5;&#x7DE8;&#x865F;&#x3001;&#x54E1;&#x5DE5;&#x7684;&#x540D;&#x5B57;&#x3001;&#x5BB6;&#x5EAD;&#x4F4F;&#x5740;&#x3001;&#x51FA;&#x751F;&#x65E5;&#x671F;&#x3001;&#x5DE5;&#x4F5C;&#x5D17;&#x4F4D;&#x3001;&#x85AA;&#x8CC7;&#x3001;&#x4E0A;&#x7D1A;&#x9818;&#x5C0E;&#x7B49;&#x7B49;&#x3002;&#x6240;&#x6709;&#x7684;&#x9019;&#x4E9B;&#x6210;&#x54E1;&#x90FD;&#x9700;&#x8981;&#x7D81;&#x5B9A;&#x5230;&#x4E00;&#x500B;&#x5BE6;&#x9AD4;&#xFF0C;&#x53EF;&#x4EE5;&#x4F5C;&#x7232;&#x4E00;&#x500B;&#x6574;&#x9AD4;&#x55AE;&#x5143;&#x88AB;&#x8907;&#x88FD;&#xFF0C;&#x4F5C;&#x7232;&#x51FD;&#x6578;&#x7684;&#x53C3;&#x6578;&#x6216;&#x8FD4;&#x8FF4;&#x503C;&#xFF0C;&#x6216;&#x8005;&#x662F;&#x88AB;&#x5B58;&#x5132;&#x5230;&#x6578;&#x7D44;&#x4E2D;&#xFF0C;&#x7B49;&#x7B49;&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x5169;&#x500B;&#x8A9E;&#x53E5;&#x5206;&#x522B;&#x8072;&#x660E;&#x4E86;&#x4E00;&#x500B;&#x53EB;Employee&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#xFF0C;&#x4F75;&#x4E14;&#x8072;&#x660E;&#x4E86;&#x4E00;&#x500B;Employee&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;dilbert&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> Employee <span class="hljs-keyword">struct</span> {
ID <span class="hljs-typename">int</span>
Name <span class="hljs-typename">string</span>
Address <span class="hljs-typename">string</span>
DoB time.Time
Position <span class="hljs-typename">string</span>
Salary <span class="hljs-typename">int</span>
ManagerID <span class="hljs-typename">int</span>
}
<span class="hljs-keyword">var</span> dilbert Employee
</code></pre>
<p>dilbert&#x7D50;&#x69CB;&#x9AD4;&#x8B8A;&#x91CF;&#x7684;&#x6210;&#x54E1;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x9EDE;&#x64CD;&#x4F5C;&#x7B26;&#x8A2A;&#x554F;&#xFF0C;&#x6BD4;&#x5982;dilbert.Name&#x548C;dilbert.DoB&#x3002;&#x56E0;&#x7232;dilbert&#x662F;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#xFF0C;&#x5B83;&#x6240;&#x6709;&#x7684;&#x6210;&#x54E1;&#x4E5F;&#x540C;&#x6A23;&#x662F;&#x8B8A;&#x91CF;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x5C0D;&#x6BCF;&#x500B;&#x6210;&#x54E1;&#x8CE6;&#x503C;&#xFF1A;</p>
<pre><code class="lang-Go">dilbert.Salary -= <span class="hljs-number">5000</span> <span class="hljs-comment">// demoted, for writing too few lines of code</span>
</code></pre>
<p>&#x6216;&#x8005;&#x662F;&#x5C0D;&#x6210;&#x54E1;&#x53D6;&#x5730;&#x5740;&#xFF0C;&#x7136;&#x5F8C;&#x901A;&#x904E;&#x6307;&#x91DD;&#x8A2A;&#x554F;&#xFF1A;</p>
<pre><code class="lang-Go">position := &amp;dilbert.Position
*position = <span class="hljs-string">&quot;Senior &quot;</span> + *position <span class="hljs-comment">// promoted, for outsourcing to Elbonia</span>
</code></pre>
<p>&#x9EDE;&#x64CD;&#x4F5C;&#x7B26;&#x4E5F;&#x53EF;&#x4EE5;&#x548C;&#x6307;&#x5411;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6307;&#x91DD;&#x4E00;&#x8D77;&#x5DE5;&#x4F5C;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> employeeOfTheMonth *Employee = &amp;dilbert
employeeOfTheMonth.Position += <span class="hljs-string">&quot; (proactive team player)&quot;</span>
</code></pre>
<p>&#x76F8;&#x7576;&#x65BC;&#x4E0B;&#x9762;&#x8A9E;&#x53E5;</p>
<pre><code class="lang-Go">(*employeeOfTheMonth).Position += <span class="hljs-string">&quot; (proactive team player)&quot;</span>
</code></pre>
<p>EmployeeByID&#x51FD;&#x6578;&#x5C07;&#x6839;&#x64DA;&#x7D66;&#x5B9A;&#x7684;&#x54E1;&#x5DE5;ID&#x8FD4;&#x8FF4;&#x5C0D;&#x61C9;&#x7684;&#x54E1;&#x5DE5;&#x4FE1;&#x606F;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6307;&#x91DD;&#x3002;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x9EDE;&#x64CD;&#x4F5C;&#x7B26;&#x4F86;&#x8A2A;&#x554F;&#x5B83;&#x91CC;&#x9762;&#x7684;&#x6210;&#x54E1;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> EmployeeByID(id <span class="hljs-typename">int</span>) *Employee { <span class="hljs-comment">/* ... */</span> }
fmt.Println(EmployeeByID(dilbert.ManagerID).Position) <span class="hljs-comment">// &quot;Pointy-haired boss&quot;</span>
id := dilbert.ID
EmployeeByID(id).Salary = <span class="hljs-number">0</span> <span class="hljs-comment">// fired for... no real reason</span>
</code></pre>
<p>&#x5F8C;&#x9762;&#x7684;&#x8A9E;&#x53E5;&#x901A;&#x904E;EmployeeByID&#x8FD4;&#x8FF4;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x6307;&#x91DD;&#x66F4;&#x65B0;&#x4E86;Employee&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6210;&#x54E1;&#x3002;&#x5982;&#x679C;&#x5C07;EmployeeByID&#x51FD;&#x6578;&#x7684;&#x8FD4;&#x8FF4;&#x503C;&#x5F9E;<code>*Employee</code>&#x6307;&#x91DD;&#x985E;&#x578B;&#x6539;&#x7232;Employee&#x503C;&#x985E;&#x578B;&#xFF0C;&#x90A3;&#x9EBD;&#x66F4;&#x65B0;&#x8A9E;&#x53E5;&#x5C07;&#x4E0D;&#x80FD;&#x7DE8;&#x8B6F;&#x901A;&#x904E;&#xFF0C;&#x56E0;&#x7232;&#x5728;&#x8CE6;&#x503C;&#x8A9E;&#x53E5;&#x7684;&#x5DE6;&#x908A;&#x4F75;&#x4E0D;&#x78BA;&#x5B9A;&#x662F;&#x4E00;&#x500B;&#x8B8A;&#x91CF;&#x3002;</p>
<p>&#x901A;&#x5E38;&#x4E00;&#x884C;&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#xFF0C;&#x6210;&#x54E1;&#x7684;&#x540D;&#x5B57;&#x5728;&#x524D;&#x985E;&#x578B;&#x5728;&#x5F8C;&#xFF0C;&#x4E0D;&#x904E;&#x5982;&#x679C;&#x76F8;&#x9130;&#x7684;&#x6210;&#x54E1;&#x985E;&#x578B;&#x5982;&#x679C;&#x76F8;&#x540C;&#x7684;&#x8A71;&#x53EF;&#x4EE5;&#x88AB;&#x5408;&#x4F75;&#x5230;&#x4E00;&#x884C;&#xFF0C;&#x5C31;&#x50CF;&#x4E0B;&#x9762;&#x7684;Name&#x548C;Address&#x6210;&#x54E1;&#x90A3;&#x6A23;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> Employee <span class="hljs-keyword">struct</span> {
ID <span class="hljs-typename">int</span>
Name, Address <span class="hljs-typename">string</span>
DoB time.Time
Position <span class="hljs-typename">string</span>
Salary <span class="hljs-typename">int</span>
ManagerID <span class="hljs-typename">int</span>
}
</code></pre>
<p>&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#x7684;&#x8F38;&#x5165;&#x9806;&#x5E8F;&#x4E5F;&#x6709;&#x91CD;&#x8981;&#x7684;&#x610F;&#x7FA9;&#x3002;&#x6211;&#x5011;&#x4E5F;&#x53EF;&#x4EE5;&#x5C07;Position&#x6210;&#x54E1;&#x5408;&#x4F75;&#xFF08;&#x56E0;&#x7232;&#x4E5F;&#x662F;&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#xFF09;&#xFF0C;&#x6216;&#x8005;&#x662F;&#x4EA4;&#x63DB;Name&#x548C;Address&#x51FA;&#x73FE;&#x7684;&#x5148;&#x5F8C;&#x9806;&#x5E8F;&#xFF0C;&#x90A3;&#x6A23;&#x7684;&#x8A71;&#x5C31;&#x662F;&#x5B9A;&#x7FA9;&#x4E86;&#x4E0D;&#x540C;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#x3002;&#x901A;&#x5E38;&#xFF0C;&#x6211;&#x5011;&#x96BB;&#x662F;&#x5C07;&#x76F8;&#x95DC;&#x7684;&#x6210;&#x54E1;&#x5408;&#x4F75;&#x5230;&#x4E00;&#x8D77;&#x3002;</p>
<p>&#x5982;&#x679C;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#x540D;&#x5B57;&#x662F;&#x4EE5;&#x5927;&#x5BEB;&#x5B57;&#x6BCD;&#x958B;&#x982D;&#x7684;&#xFF0C;&#x90A3;&#x9EBD;&#x8A72;&#x6210;&#x54E1;&#x5C31;&#x662F;&#x5C0E;&#x51FA;&#x7684;&#xFF1B;&#x9019;&#x662F;Go&#x8A9E;&#x8A00;&#x5C0E;&#x51FA;&#x898F;&#x5247;&#x6C7A;&#x5B9A;&#x7684;&#x3002;&#x4E00;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x53EF;&#x80FD;&#x540C;&#x6642;&#x5305;&#x542B;&#x5C0E;&#x51FA;&#x548C;&#x672A;&#x5C0E;&#x51FA;&#x7684;&#x6210;&#x54E1;&#x3002;</p>
<p>&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#x5F80;&#x5F80;&#x662F;&#x5197;&#x9577;&#x7684;&#xFF0C;&#x56E0;&#x7232;&#x5B83;&#x7684;&#x6BCF;&#x500B;&#x6210;&#x54E1;&#x53EF;&#x80FD;&#x90FD;&#x6703;&#x5360;&#x4E00;&#x884C;&#x3002;&#x96D6;&#x7136;&#x6211;&#x5011;&#x6BCF;&#x6B21;&#x90FD;&#x53EF;&#x4EE5;&#x91CD;&#x5BEB;&#x6574;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#xFF0C;&#x4F46;&#x662F;&#x91CD;&#x8907;&#x6703;&#x4EE4;&#x4EBA;&#x53AD;&#x7169;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x5B8C;&#x6574;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x5BEB;&#x6CD5;&#x901A;&#x5E38;&#x96BB;&#x5728;&#x985E;&#x578B;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x7684;&#x5730;&#x65B9;&#x51FA;&#x73FE;&#xFF0C;&#x5C31;&#x50CF;Employee&#x985E;&#x578B;&#x8072;&#x660E;&#x8A9E;&#x53E5;&#x90A3;&#x6A23;&#x3002;</p>
<p>&#x4E00;&#x500B;&#x547D;&#x540D;&#x7232;S&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#x5C07;&#x4E0D;&#x80FD;&#x518D;&#x5305;&#x542B;S&#x985E;&#x578B;&#x7684;&#x6210;&#x54E1;&#xFF1A;&#x4E00;&#x500B;&#x805A;&#x5408;&#x7684;&#x503C;&#x4E0D;&#x80FD;&#x5305;&#x542B;&#x5B83;&#x81EA;&#x8EAB;&#x3002;&#xFF08;&#x8A72;&#x9650;&#x88FD;&#x540C;&#x6A23;&#x9069;&#x61C9;&#x65BC;&#x6578;&#x7D44;&#x3002;&#xFF09;&#x4F46;&#x662F;S&#x985E;&#x578B;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x53EF;&#x4EE5;&#x5305;&#x542B;<code>*S</code>&#x6307;&#x91DD;&#x985E;&#x578B;&#x7684;&#x6210;&#x54E1;&#xFF0C;&#x9019;&#x53EF;&#x4EE5;&#x8B93;&#x6211;&#x5011;&#x5275;&#x5EFA;&#x905E;&#x6B78;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#xFF0C;&#x6BD4;&#x5982;&#x93C8;&#x8868;&#x548C;&#x6A39;&#x7D50;&#x69CB;&#x7B49;&#x3002;&#x5728;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x4F7F;&#x7528;&#x4E00;&#x500B;&#x4E8C;&#x53C9;&#x6A39;&#x4F86;&#x5BE6;&#x73FE;&#x4E00;&#x500B;&#x63D2;&#x5165;&#x6392;&#x5E8F;&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch4/treesort
<span class="hljs-keyword">type</span> tree <span class="hljs-keyword">struct</span> {
value <span class="hljs-typename">int</span>
left, right *tree
}
<span class="hljs-comment">// Sort sorts values in place.</span>
<span class="hljs-keyword">func</span> Sort(values []<span class="hljs-typename">int</span>) {
<span class="hljs-keyword">var</span> root *tree
<span class="hljs-keyword">for</span> _, v := <span class="hljs-keyword">range</span> values {
root = add(root, v)
}
appendValues(values[:<span class="hljs-number">0</span>], root)
}
<span class="hljs-comment">// appendValues appends the elements of t to values in order</span>
<span class="hljs-comment">// and returns the resulting slice.</span>
<span class="hljs-keyword">func</span> appendValues(values []<span class="hljs-typename">int</span>, t *tree) []<span class="hljs-typename">int</span> {
<span class="hljs-keyword">if</span> t != <span class="hljs-constant">nil</span> {
values = appendValues(values, t.left)
values = <span class="hljs-built_in">append</span>(values, t.value)
values = appendValues(values, t.right)
}
<span class="hljs-keyword">return</span> values
}
<span class="hljs-keyword">func</span> add(t *tree, value <span class="hljs-typename">int</span>) *tree {
<span class="hljs-keyword">if</span> t == <span class="hljs-constant">nil</span> {
<span class="hljs-comment">// Equivalent to return &amp;tree{value: value}.</span>
t = <span class="hljs-built_in">new</span>(tree)
t.value = value
<span class="hljs-keyword">return</span> t
}
<span class="hljs-keyword">if</span> value &lt; t.value {
t.left = add(t.left, value)
} <span class="hljs-keyword">else</span> {
t.right = add(t.right, value)
}
<span class="hljs-keyword">return</span> t
}
</code></pre>
<p>&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#x7684;&#x96F6;&#x503C;&#x662F;&#x6BCF;&#x500B;&#x6210;&#x54E1;&#x90FD;&#x5C0D;&#x662F;&#x96F6;&#x503C;&#x3002;&#x901A;&#x5E38;&#x6703;&#x5C07;&#x96F6;&#x503C;&#x4F5C;&#x7232;&#x6700;&#x5408;&#x7406;&#x7684;&#x9ED8;&#x8A8D;&#x503C;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x5728;bytes.Buffer&#x985E;&#x578B;&#xFF0C;&#x7D50;&#x69CB;&#x9AD4;&#x521D;&#x59CB;&#x503C;&#x5C31;&#x662F;&#x4E00;&#x500B;&#x96A8;&#x6642;&#x53EF;&#x7528;&#x7684;&#x7A7A;&#x7DE9;&#x5B58;&#xFF0C;&#x9084;&#x6709;&#x5728;&#x7B2C;9&#x7AE0;&#x5C07;&#x6703;&#x8B1B;&#x5230;&#x7684;sync.Mutex&#x7684;&#x96F6;&#x503C;&#x4E5F;&#x662F;&#x6709;&#x6548;&#x7684;&#x672A;&#x9396;&#x72C0;&#x614B;&#x3002;&#x6709;&#x6642;&#x5019;&#x9019;&#x7A2E;&#x96F6;&#x503C;&#x53EF;&#x7528;&#x7684;&#x7279;&#x6027;&#x662F;&#x81EA;&#x7136;&#x7372;&#x5F97;&#x7684;&#xFF0C;&#x4F46;&#x662F;&#x4E5F;&#x6709;&#x4E9B;&#x985E;&#x578B;&#x9700;&#x8981;&#x4E00;&#x4E9B;&#x984D;&#x5916;&#x7684;&#x5DE5;&#x4F5C;&#x3002;</p>
<p>&#x5982;&#x679C;&#x7D50;&#x69CB;&#x9AD4;&#x6C92;&#x6709;&#x4EFB;&#x4F55;&#x6210;&#x54E1;&#x7684;&#x8A71;&#x5C31;&#x662F;&#x7A7A;&#x7D50;&#x69CB;&#x9AD4;&#xFF0C;&#x5BEB;&#x4F5C;struct{}&#x3002;&#x5B83;&#x7684;&#x5927;&#x5C0F;&#x7232;0&#xFF0C;&#x4E5F;&#x4E0D;&#x5305;&#x542B;&#x4EFB;&#x4F55;&#x4FE1;&#x606F;&#xFF0C;&#x4F46;&#x662F;&#x6709;&#x6642;&#x5019;&#x4F9D;&#x7136;&#x662F;&#x6709;&#x50F9;&#x503C;&#x7684;&#x3002;&#x6709;&#x4E9B;Go&#x8A9E;&#x8A00;&#x7A0B;&#x5E8F;&#x54E1;&#x7528;map&#x5E36;&#x6A21;&#x64EC;set&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x6642;&#xFF0C;&#x7528;&#x5B83;&#x4F86;&#x4EE3;&#x66FF;map&#x4E2D;&#x5E03;&#x723E;&#x985E;&#x578B;&#x7684;value&#xFF0C;&#x96BB;&#x662F;&#x5F37;&#x8ABF;key&#x7684;&#x91CD;&#x8981;&#x6027;&#xFF0C;&#x4F46;&#x662F;&#x56E0;&#x7232;&#x7BC0;&#x7D04;&#x7684;&#x7A7A;&#x9593;&#x6709;&#x9650;&#xFF0C;&#x800C;&#x4E14;&#x8A9E;&#x6CD5;&#x6BD4;&#x8F03;&#x8907;&#x96DC;&#xFF0C;&#x6240;&#x6709;&#x6211;&#x5011;&#x901A;&#x5E38;&#x907F;&#x514D;&#x907F;&#x514D;&#x9019;&#x6A23;&#x7684;&#x7528;&#x6CD5;&#x3002;</p>
<pre><code class="lang-Go">seen := <span class="hljs-built_in">make</span>(<span class="hljs-keyword">map</span>[<span class="hljs-typename">string</span>]<span class="hljs-keyword">struct</span>{}) <span class="hljs-comment">// set of strings</span>
<span class="hljs-comment">// ...</span>
<span class="hljs-keyword">if</span> _, ok := seen[s]; !ok {
seen[s] = <span class="hljs-keyword">struct</span>{}{}
<span class="hljs-comment">// ...first time seeing s...</span>
}
</code></pre>
<h3 id="441-&#x7D50;&#x69CB;&#x9AD4;&#x9762;&#x503C;">4.4.1. &#x7D50;&#x69CB;&#x9AD4;&#x9762;&#x503C;</h3> <h3 id="441-&#x7D50;&#x69CB;&#x9AD4;&#x9762;&#x503C;">4.4.1. &#x7D50;&#x69CB;&#x9AD4;&#x9762;&#x503C;</h3>
<p>TODO</p> <p>&#x7D50;&#x69CB;&#x9AD4;&#x503C;&#x53EF;&#x4EE5;&#x7528;&#x7D50;&#x69CB;&#x9AD4;&#x9762;&#x503C;&#x8868;&#x793A;&#xFF0C;&#x7D50;&#x69CB;&#x9AD4;&#x9762;&#x503C;&#x53EF;&#x4EE5;&#x6307;&#x5B9A;&#x6BCF;&#x500B;&#x6210;&#x54E1;&#x7684;&#x503C;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> Point <span class="hljs-keyword">struct</span>{ X, Y <span class="hljs-typename">int</span> }
p := Point{<span class="hljs-number">1</span>, <span class="hljs-number">2</span>}
</code></pre>
<p>&#x9019;&#x91CC;&#x6709;&#x5169;&#x7A2E;&#x5F62;&#x5F0F;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x9762;&#x503C;&#x8A9E;&#x6CD5;&#xFF0C;&#x4E0A;&#x9762;&#x7684;&#x662F;&#x7B2C;&#x4E00;&#x7A2E;&#x5BEB;&#x6CD5;&#xFF0C;&#x8981;&#x6C42;&#x4EE5;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#x5B9A;&#x7FA9;&#x7684;&#x9806;&#x5E8F;&#x7232;&#x6BCF;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#x6307;&#x5B9A;&#x4E00;&#x500B;&#x9762;&#x503C;&#x3002;&#x5B83;&#x8981;&#x6C42;&#x5BEB;&#x4EE3;&#x78BC;&#x548C;&#x8B80;&#x4EE3;&#x78BC;&#x7684;&#x4EBA;&#x8981;&#x8A18;&#x4F4F;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6BCF;&#x500B;&#x6210;&#x54E1;&#x7684;&#x985E;&#x578B;&#x548C;&#x9806;&#x5E8F;&#xFF0C;&#x4F75;&#x4E14;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#x6709;&#x7D30;&#x5FAE;&#x7684;&#x8ABF;&#x6574;&#x5C31;&#x53EF;&#x80FD;&#x5C0E;&#x81F4;&#x4E0A;&#x8FF0;&#x4EE3;&#x78BC;&#x4E0D;&#x80FD;&#x7DE8;&#x8B6F;&#x3002;&#x56E0;&#x6B64;&#xFF0C;&#x4E0A;&#x8FF0;&#x7684;&#x8A9E;&#x6CD5;&#x4E00;&#x822C;&#x96BB;&#x5728;&#x5B9A;&#x7FA9;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x5305;&#x5167;&#x90E8;&#x4F7F;&#x7528;&#xFF0C;&#x6216;&#x8005;&#x662F;&#x5728;&#x8F03;&#x5C0F;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x4E2D;&#x4F7F;&#x7528;&#xFF0C;&#x9019;&#x4E9B;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6210;&#x54E1;&#x6392;&#x5217;&#x6BD4;&#x8F03;&#x898F;&#x5247;&#xFF0C;&#x6BD4;&#x5982;image.Point{x, y}&#x6216;color.RGBA{red, green, blue, alpha}&#x3002;</p>
<p>&#x5176;&#x5BE6;&#x66F4;&#x5E38;&#x7528;&#x7684;&#x662F;&#x7B2C;&#x4E8C;&#x7A2E;&#x5BEB;&#x6CD5;&#xFF0C;&#x4EE5;&#x6210;&#x54E1;&#x540D;&#x5B57;&#x548C;&#x76F8;&#x61C9;&#x7684;&#x503C;&#x4F86;&#x521D;&#x59CB;&#x5316;&#xFF0C;&#x53EF;&#x4EE5;&#x5305;&#x542B;&#x90E8;&#x5206;&#x6216;&#x5168;&#x90E8;&#x7684;&#x6210;&#x54E1;&#xFF0C;&#x5982;1.4&#x7BC0;&#x7684;Lissajous&#x7A0B;&#x5E8F;&#x7684;&#x5BEB;&#x6CD5;&#xFF1A;</p>
<pre><code class="lang-Go">anim := gif.GIF{LoopCount: nframes}
</code></pre>
<p>&#x5728;&#x9019;&#x7A2E;&#x5F62;&#x5F0F;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x9762;&#x503C;&#x5BEB;&#x6CD5;&#x4E2D;&#xFF0C;&#x5982;&#x679C;&#x6210;&#x54E1;&#x88AB;&#x5FFD;&#x7565;&#x7684;&#x8A71;&#x5C07;&#x9ED8;&#x8A8D;&#x7528;&#x96F6;&#x503C;&#x3002;&#x56E0;&#x7232;&#xFF0C;&#x63D0;&#x4F9B;&#x4E86;&#x6210;&#x54E1;&#x7684;&#x540D;&#x5B57;&#xFF0C;&#x6240;&#x6709;&#x6210;&#x54E1;&#x51FA;&#x73FE;&#x7684;&#x9806;&#x5E8F;&#x4F75;&#x4E0D;&#x91CD;&#x8981;&#x3002;</p>
<p>&#x5169;&#x7A2E;&#x4E0D;&#x540C;&#x5F62;&#x5F0F;&#x7684;&#x5BEB;&#x6CD5;&#x4E0D;&#x80FD;&#x6DF7;&#x5408;&#x4F7F;&#x7528;&#x3002;&#x800C;&#x4E14;&#xFF0C;&#x4F60;&#x4E0D;&#x80FD;&#x4F01;&#x5716;&#x5728;&#x5916;&#x90E8;&#x5305;&#x4E2D;&#x7528;&#x7B2C;&#x4E00;&#x7A2E;&#x9806;&#x5E8F;&#x8CE6;&#x503C;&#x7684;&#x6280;&#x5DE7;&#x4F86;&#x5077;&#x5077;&#x5730;&#x521D;&#x59CB;&#x5316;&#x7D50;&#x69CB;&#x9AD4;&#x4E2D;&#x672A;&#x5C0E;&#x51FA;&#x7684;&#x6210;&#x54E1;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">package</span> p
<span class="hljs-keyword">type</span> T <span class="hljs-keyword">struct</span>{ a, b <span class="hljs-typename">int</span> } <span class="hljs-comment">// a and b are not exported</span>
<span class="hljs-keyword">package</span> q
<span class="hljs-keyword">import</span> <span class="hljs-string">&quot;p&quot;</span>
<span class="hljs-keyword">var</span> _ = p.T{a: <span class="hljs-number">1</span>, b: <span class="hljs-number">2</span>} <span class="hljs-comment">// compile error: can&apos;t reference a, b</span>
<span class="hljs-keyword">var</span> _ = p.T{<span class="hljs-number">1</span>, <span class="hljs-number">2</span>} <span class="hljs-comment">// compile error: can&apos;t reference a, b</span>
</code></pre>
<p>&#x96D6;&#x7136;&#x4E0A;&#x9762;&#x6700;&#x5F8C;&#x4E00;&#x884C;&#x4EE3;&#x78BC;&#x7684;&#x7DE8;&#x8B6F;&#x932F;&#x8AA4;&#x4FE1;&#x606F;&#x4E2D;&#x4F75;&#x6C92;&#x6709;&#x986F;&#x5F0F;&#x63D0;&#x5230;&#x672A;&#x5C0E;&#x51FA;&#x7684;&#x6210;&#x54E1;&#xFF0C;&#x4F46;&#x662F;&#x9019;&#x6A23;&#x4F01;&#x5716;&#x96B1;&#x5F0F;&#x4F7F;&#x7528;&#x672A;&#x5C0E;&#x51FA;&#x6210;&#x54E1;&#x7684;&#x884C;&#x7232;&#x4E5F;&#x662F;&#x4E0D;&#x5141;&#x8A31;&#x7684;&#x3002;</p>
<p>&#x7D50;&#x69CB;&#x9AD4;&#x53EF;&#x4EE5;&#x4F5C;&#x7232;&#x51FD;&#x6578;&#x7684;&#x53C3;&#x6578;&#x548C;&#x8FD4;&#x8FF4;&#x503C;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x9019;&#x500B;Scale&#x51FD;&#x6578;&#x5C07;Point&#x985E;&#x578B;&#x7684;&#x503C;&#x7E2E;&#x653E;&#x5F8C;&#x8FD4;&#x8FF4;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> Scale(p Point, factor <span class="hljs-typename">int</span>) Point {
<span class="hljs-keyword">return</span> Point{p.X * factor, p.Y * factor}
}
fmt.Println(Scale(Point{<span class="hljs-number">1</span>, <span class="hljs-number">2</span>}, <span class="hljs-number">5</span>)) <span class="hljs-comment">// &quot;{5 10}&quot;</span>
</code></pre>
<p>&#x5982;&#x679C;&#x8003;&#x616E;&#x6548;&#x7387;&#x7684;&#x8A71;&#xFF0C;&#x8F03;&#x5927;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x901A;&#x5E38;&#x6703;&#x7528;&#x6307;&#x91DD;&#x7684;&#x65B9;&#x5F0F;&#x50B3;&#x5165;&#x548C;&#x8FD4;&#x8FF4;&#xFF0C;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> Bonus(e *Employee, percent <span class="hljs-typename">int</span>) <span class="hljs-typename">int</span> {
<span class="hljs-keyword">return</span> e.Salary * percent / <span class="hljs-number">100</span>
}
</code></pre>
<p>&#x5982;&#x679C;&#x8981;&#x5728;&#x51FD;&#x6578;&#x5167;&#x90E8;&#x8129;&#x6539;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#x7684;&#x8A71;&#xFF0C;&#x7528;&#x6307;&#x91DD;&#x50B3;&#x5165;&#x662F;&#x5FC5;&#x9B1A;&#x7684;&#xFF1B;&#x56E0;&#x7232;&#x5728;Go&#x8A9E;&#x8A00;&#x4E2D;&#xFF0C;&#x6240;&#x6709;&#x7684;&#x51FD;&#x6578;&#x53C3;&#x6578;&#x90FD;&#x662F;&#x503C;&#x62F7;&#x8C9D;&#x51FA;&#x5165;&#x7684;&#xFF0C;&#x51FD;&#x6578;&#x53C3;&#x6578;&#x5C07;&#x4E0D;&#x518D;&#x662F;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x6642;&#x7684;&#x539F;&#x59CB;&#x8B8A;&#x91CF;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> AwardAnnualRaise(e *Employee) {
e.Salary = e.Salary * <span class="hljs-number">105</span> / <span class="hljs-number">100</span>
}
</code></pre>
<p>&#x56E0;&#x7232;&#x7D50;&#x69CB;&#x9AD4;&#x901A;&#x5E38;&#x901A;&#x904E;&#x6307;&#x91DD;&#x8655;&#x7406;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x4E0B;&#x9762;&#x7684;&#x5BEB;&#x6CD5;&#x4F86;&#x5275;&#x5EFA;&#x4F75;&#x521D;&#x59CB;&#x5316;&#x4E00;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x8B8A;&#x91CF;&#xFF0C;&#x4F75;&#x8FD4;&#x8FF4;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x5730;&#x5740;&#xFF1A;</p>
<pre><code class="lang-Go">pp := &amp;Point{<span class="hljs-number">1</span>, <span class="hljs-number">2</span>}
</code></pre>
<p>&#x5B83;&#x662F;&#x4E0B;&#x9762;&#x7684;&#x8A9E;&#x53E5;&#x662F;&#x7B49;&#x50F9;&#x7684;</p>
<pre><code class="lang-Go">pp := <span class="hljs-built_in">new</span>(Point)
*pp = Point{<span class="hljs-number">1</span>, <span class="hljs-number">2</span>}
</code></pre>
<p>&#x4E0D;&#x904E;&amp;Point{1, 2}&#x5BEB;&#x6CD5;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x5728;&#x8868;&#x9054;&#x5F0F;&#x4E2D;&#x4F7F;&#x7528;&#xFF0C;&#x6BD4;&#x5982;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x8ABF;&#x7528;&#x3002;</p>
<h3 id="442-&#x7D50;&#x69CB;&#x9AD4;&#x6BD4;&#x8F03;">4.4.2. &#x7D50;&#x69CB;&#x9AD4;&#x6BD4;&#x8F03;</h3> <h3 id="442-&#x7D50;&#x69CB;&#x9AD4;&#x6BD4;&#x8F03;">4.4.2. &#x7D50;&#x69CB;&#x9AD4;&#x6BD4;&#x8F03;</h3>
<p>TODO</p> <p>&#x5982;&#x679C;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x5168;&#x90E8;&#x6210;&#x54E1;&#x90FD;&#x662F;&#x53EF;&#x4EE5;&#x6BD4;&#x8F03;&#x7684;&#xFF0C;&#x90A3;&#x9EBD;&#x7D50;&#x69CB;&#x9AD4;&#x4E5F;&#x662F;&#x53EF;&#x4EE5;&#x6BD4;&#x8F03;&#x7684;&#xFF0C;&#x90A3;&#x6A23;&#x7684;&#x8A71;&#x5169;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x5C07;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;==&#x6216;!=&#x904B;&#x7B97;&#x7B26;&#x9032;&#x884C;&#x6BD4;&#x8F03;&#x3002;&#x76F8;&#x7B49;&#x6BD4;&#x8F03;&#x904B;&#x7B97;&#x7B26;==&#x5C07;&#x6BD4;&#x8F03;&#x5169;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6BCF;&#x500B;&#x6210;&#x54E1;&#xFF0C;&#x56E0;&#x6B64;&#x4E0B;&#x9762;&#x5169;&#x500B;&#x6BD4;&#x8F03;&#x7684;&#x8868;&#x9054;&#x5F0F;&#x662F;&#x7B49;&#x50F9;&#x7684;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> Point <span class="hljs-keyword">struct</span>{ X, Y <span class="hljs-typename">int</span> }
p := Point{<span class="hljs-number">1</span>, <span class="hljs-number">2</span>}
q := Point{<span class="hljs-number">2</span>, <span class="hljs-number">1</span>}
fmt.Println(p.X == q.X &amp;&amp; p.Y == q.Y) <span class="hljs-comment">// &quot;false&quot;</span>
fmt.Println(p == q) <span class="hljs-comment">// &quot;false&quot;</span>
</code></pre>
<p>&#x53EF;&#x6BD4;&#x8F03;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#x548C;&#x5176;&#x4ED6;&#x53EF;&#x6BD4;&#x8F03;&#x7684;&#x985E;&#x578B;&#x4E00;&#x6A23;&#xFF0C;&#x53EF;&#x4EE5;&#x7528;&#x65BC;map&#x7684;key&#x985E;&#x578B;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> address <span class="hljs-keyword">struct</span> {
hostname <span class="hljs-typename">string</span>
port <span class="hljs-typename">int</span>
}
hits := <span class="hljs-built_in">make</span>(<span class="hljs-keyword">map</span>[address]<span class="hljs-typename">int</span>)
hits[address{<span class="hljs-string">&quot;golang.org&quot;</span>, <span class="hljs-number">443</span>}]++
</code></pre>
<h3 id="443-&#x7D50;&#x69CB;&#x9AD4;&#x5D4C;&#x5165;&#x548C;&#x533F;&#x540D;&#x6210;&#x54E1;">4.4.3. &#x7D50;&#x69CB;&#x9AD4;&#x5D4C;&#x5165;&#x548C;&#x533F;&#x540D;&#x6210;&#x54E1;</h3> <h3 id="443-&#x7D50;&#x69CB;&#x9AD4;&#x5D4C;&#x5165;&#x548C;&#x533F;&#x540D;&#x6210;&#x54E1;">4.4.3. &#x7D50;&#x69CB;&#x9AD4;&#x5D4C;&#x5165;&#x548C;&#x533F;&#x540D;&#x6210;&#x54E1;</h3>
<p>TODO</p> <p>&#x5728;&#x672C;&#x7BC0;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x770B;&#x5230;&#x5982;&#x679C;&#x4F7F;&#x7528;Go&#x8A9E;&#x8A00;&#x63D0;&#x4F9B;&#x7684;&#x4E0D;&#x540C;&#x5C0B;&#x5E38;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x5D4C;&#x5165;&#x6A5F;&#x88FD;&#x8B93;&#x4E00;&#x500B;&#x547D;&#x540D;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x5305;&#x542B;&#x53E6;&#x4E00;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#x7684;&#x533F;&#x540D;&#x6210;&#x54E1;&#xFF0C;&#x9019;&#x6A23;&#x5C31;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x7C21;&#x55AE;&#x7684;&#x9EDE;&#x904B;&#x7B97;&#x7B26;x.f&#x4F86;&#x8A2A;&#x554F;&#x533F;&#x540D;&#x6210;&#x54E1;&#x93C8;&#x4E2D;&#x5D4C;&#x5957;&#x7684;x.d.e.f&#x6210;&#x54E1;&#x3002;</p>
<p>&#x8003;&#x616E;&#x4E00;&#x500B;&#x4E8C;&#x7DAD;&#x7684;&#x7E6A;&#x5716;&#x7A0B;&#x5E8F;&#xFF0C;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x500B;&#x5404;&#x7A2E;&#x5716;&#x5F62;&#x7684;&#x5EAB;&#xFF0C;&#x4F8B;&#x5982;&#x77E9;&#x5F62;&#x3001;&#x6A62;&#x5713;&#x5F62;&#x3001;&#x661F;&#x5F62;&#x548C;&#x8F2A;&#x5F62;&#x7B49;&#x5E7E;&#x4F55;&#x5F62;&#x72C0;&#x3002;&#x9019;&#x91CC;&#x662F;&#x5176;&#x4E2D;&#x5169;&#x500B;&#x7684;&#x5B9A;&#x7FA9;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> Circle <span class="hljs-keyword">struct</span> {
X, Y, Radius <span class="hljs-typename">int</span>
}
<span class="hljs-keyword">type</span> Wheel <span class="hljs-keyword">struct</span> {
X, Y, Radius, Spokes <span class="hljs-typename">int</span>
}
</code></pre>
<p>&#x4E00;&#x500B;Circle&#x4EE3;&#x8868;&#x7684;&#x5713;&#x5F62;&#x985E;&#x578B;&#x5305;&#x542B;&#x4E86;&#x6A19;&#x6E96;&#x5713;&#x5FC3;&#x7684;X&#x548C;Y&#x5750;&#x6A19;&#x4FE1;&#x606F;&#xFF0C;&#x548C;&#x4E00;&#x500B;Radius&#x8868;&#x793A;&#x7684;&#x534A;&#x5F91;&#x4FE1;&#x606F;&#x3002;&#x4E00;&#x500B;Wheel&#x8F2A;&#x5F62;&#x9664;&#x4E86;&#x5305;&#x542B;Circle&#x985E;&#x578B;&#x6240;&#x6709;&#x7684;&#x5168;&#x90E8;&#x6210;&#x54E1;&#x5916;&#xFF0C;&#x9084;&#x589E;&#x52A0;&#x4E86;Spokes&#x8868;&#x793A;&#x5F91;&#x5411;&#x8F3B;&#x689D;&#x7684;&#x6578;&#x91CF;&#x3002;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x9019;&#x6A23;&#x5275;&#x5EFA;&#x4E00;&#x500B;wheel&#x8B8A;&#x91CF;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> w Wheel
w.X = <span class="hljs-number">8</span>
w.Y = <span class="hljs-number">8</span>
w.Radius = <span class="hljs-number">5</span>
w.Spokes = <span class="hljs-number">20</span>
</code></pre>
<p>&#x96A8;&#x7740;&#x5EAB;&#x4E2D;&#x5E7E;&#x4F55;&#x5F62;&#x72C0;&#x6578;&#x91CF;&#x7684;&#x589E;&#x591A;&#xFF0C;&#x6211;&#x5011;&#x4E00;&#x5B9A;&#x6703;&#x8A3B;&#x610F;&#x5230;&#x5B83;&#x5011;&#x4E4B;&#x9593;&#x7684;&#x76F8;&#x4F3C;&#x548C;&#x91CD;&#x8907;&#x4E4B;&#x8655;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x5011;&#x53EF;&#x80FD;&#x7232;&#x4E86;&#x4FBF;&#x65BC;&#x7DAD;&#x8B77;&#x800C;&#x5C07;&#x76F8;&#x540C;&#x7684;&#x5C6C;&#x6027;&#x7368;&#x7ACB;&#x51FA;&#x4F86;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> Point <span class="hljs-keyword">struct</span> {
X, Y <span class="hljs-typename">int</span>
}
<span class="hljs-keyword">type</span> Circle <span class="hljs-keyword">struct</span> {
Center Point
Radius <span class="hljs-typename">int</span>
}
<span class="hljs-keyword">type</span> Wheel <span class="hljs-keyword">struct</span> {
Circle Circle
Spokes <span class="hljs-typename">int</span>
}
</code></pre>
<p>&#x9019;&#x6A23;&#x6539;&#x52D5;&#x4E4B;&#x5F8C;&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#x8B8A;&#x7684;&#x6E05;&#x6670;&#x4E86;&#xFF0C;&#x4F46;&#x662F;&#x9019;&#x7A2E;&#x8129;&#x6539;&#x540C;&#x6642;&#x4E5F;&#x5C0E;&#x81F4;&#x4E86;&#x8A2A;&#x554F;&#x6BCF;&#x500B;&#x6210;&#x54E1;&#x8B8A;&#x5F97;&#x7E41;&#x7463;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> w Wheel
w.Circle.Center.X = <span class="hljs-number">8</span>
w.Circle.Center.Y = <span class="hljs-number">8</span>
w.Circle.Radius = <span class="hljs-number">5</span>
w.Spokes = <span class="hljs-number">20</span>
</code></pre>
<p>Go&#x8A9E;&#x8A00;&#x6709;&#x4E00;&#x500B;&#x7279;&#x6027;&#x8B93;&#x6211;&#x5011;&#x96BB;&#x8072;&#x660E;&#x4E00;&#x500B;&#x6210;&#x54E1;&#x5C0D;&#x61C9;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;&#x800C;&#x4E0D;&#x6307;&#x540D;&#x6210;&#x54E1;&#x7684;&#x540D;&#x5B57;&#xFF1B;&#x9019;&#x985E;&#x6210;&#x54E1;&#x5C31;&#x53EB;&#x533F;&#x540D;&#x6210;&#x54E1;&#x3002;&#x533F;&#x540D;&#x6210;&#x54E1;&#x7684;&#x6578;&#x64DA;&#x985E;&#x578B;&#x5FC5;&#x9B1A;&#x662F;&#x547D;&#x540D;&#x7684;&#x985E;&#x578B;&#x6216;&#x6307;&#x5411;&#x4E00;&#x500B;&#x547D;&#x540D;&#x7684;&#x985E;&#x578B;&#x7684;&#x6307;&#x91DD;&#x3002;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x4E2D;&#xFF0C;Circle&#x548C;Wheel&#x5404;&#x81EA;&#x90FD;&#x6709;&#x4E00;&#x500B;&#x533F;&#x540D;&#x6210;&#x54E1;&#x3002;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x8AAC;Point&#x985E;&#x578B;&#x88AB;&#x5D4C;&#x5165;&#x4E86;Circle&#x7D50;&#x69CB;&#x9AD4;&#xFF0C;&#x540C;&#x6642;Circle&#x985E;&#x578B;&#x88AB;&#x5D4C;&#x5165;&#x4E86;Wheel&#x7D50;&#x69CB;&#x9AD4;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">type</span> Circle <span class="hljs-keyword">struct</span> {
Point
Radius <span class="hljs-typename">int</span>
}
<span class="hljs-keyword">type</span> Wheel <span class="hljs-keyword">struct</span> {
Circle
Spokes <span class="hljs-typename">int</span>
}
</code></pre>
<p>&#x5F97;&#x610F;&#x65BC;&#x533F;&#x540D;&#x5D4C;&#x5165;&#x7684;&#x7279;&#x6027;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x8A2A;&#x554F;&#x8449;&#x5B50;&#x5C6C;&#x6027;&#x800C;&#x4E0D;&#x9700;&#x8981;&#x7D66;&#x51FA;&#x5B8C;&#x6574;&#x7684;&#x8DEF;&#x5F91;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> w Wheel
w.X = <span class="hljs-number">8</span> <span class="hljs-comment">// equivalent to w.Circle.Point.X = 8</span>
w.Y = <span class="hljs-number">8</span> <span class="hljs-comment">// equivalent to w.Circle.Point.Y = 8</span>
w.Radius = <span class="hljs-number">5</span> <span class="hljs-comment">// equivalent to w.Circle.Radius = 5</span>
w.Spokes = <span class="hljs-number">20</span>
</code></pre>
<p>&#x5728;&#x53F3;&#x908A;&#x7684;&#x8A3B;&#x91CB;&#x4E2D;&#x7D66;&#x51FA;&#x7684;&#x986F;&#x5F0F;&#x5F62;&#x5F0F;&#x8A2A;&#x554F;&#x9019;&#x4E9B;&#x8449;&#x5B50;&#x6210;&#x54E1;&#x7684;&#x8A9E;&#x6CD5;&#x4F9D;&#x7136;&#x6709;&#x6548;&#xFF0C;&#x56E0;&#x6B64;&#x533F;&#x540D;&#x6210;&#x54E1;&#x4F75;&#x4E0D;&#x662F;&#x771E;&#x7684;&#x7121;&#x6CD5;&#x8A2A;&#x554F;&#x4E86;&#x3002;&#x5176;&#x4E2D;&#x533F;&#x540D;&#x6210;&#x54E1;Circle&#x548C;Point&#x90FD;&#x6709;&#x81EA;&#x5DF1;&#x7684;&#x540D;&#x5B57;&#x2014;&#x2014;&#x5C31;&#x662F;&#x547D;&#x540D;&#x7684;&#x985E;&#x578B;&#x540D;&#x5B57;&#x2014;&#x2014;&#x4F46;&#x662F;&#x9019;&#x4E9B;&#x540D;&#x5B57;&#x5728;&#x9EDE;&#x64CD;&#x4F5C;&#x7B26;&#x4E2D;&#x662F;&#x53EF;&#x9078;&#x7684;&#x3002;&#x6211;&#x5011;&#x5728;&#x8A2A;&#x554F;&#x5B50;&#x6210;&#x54E1;&#x7684;&#x6642;&#x5019;&#x53EF;&#x4EE5;&#x5FFD;&#x7565;&#x4EFB;&#x4F55;&#x533F;&#x540D;&#x6210;&#x54E1;&#x90E8;&#x5206;&#x3002;</p>
<p>&#x4E0D;&#x5E78;&#x7684;&#x662F;&#xFF0C;&#x7D50;&#x69CB;&#x9AD4;&#x5B57;&#x9762;&#x503C;&#x4F75;&#x6C92;&#x6709;&#x7C21;&#x77ED;&#x8868;&#x793A;&#x533F;&#x540D;&#x6210;&#x54E1;&#x7684;&#x8A9E;&#x6CD5;&#xFF0C; &#x56E0;&#x6B64;&#x4E0B;&#x9762;&#x7684;&#x8A9E;&#x53E5;&#x90FD;&#x4E0D;&#x80FD;&#x7DE8;&#x8B6F;&#x901A;&#x904E;&#xFF1A;</p>
<pre><code class="lang-Go">w = Wheel{<span class="hljs-number">8</span>, <span class="hljs-number">8</span>, <span class="hljs-number">5</span>, <span class="hljs-number">20</span>} <span class="hljs-comment">// compile error: unknown fields</span>
w = Wheel{X: <span class="hljs-number">8</span>, Y: <span class="hljs-number">8</span>, Radius: <span class="hljs-number">5</span>, Spokes: <span class="hljs-number">20</span>} <span class="hljs-comment">// compile error: unknown fields</span>
</code></pre>
<p>&#x7D50;&#x69CB;&#x9AD4;&#x5B57;&#x9762;&#x503C;&#x5FC5;&#x9B1A;&#x9075;&#x5FAA;&#x5F62;&#x72C0;&#x985E;&#x578B;&#x8072;&#x660E;&#x6642;&#x7684;&#x7D50;&#x69CB;&#xFF0C;&#x6240;&#x4EE5;&#x6211;&#x5011;&#x96BB;&#x80FD;&#x7528;&#x4E0B;&#x9762;&#x7684;&#x5169;&#x7A2E;&#x8A9E;&#x6CD5;&#xFF0C;&#x5B83;&#x5011;&#x5F7C;&#x6B64;&#x662F;&#x7B49;&#x50F9;&#x7684;&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch4/embed
w = Wheel{Circle{Point{<span class="hljs-number">8</span>, <span class="hljs-number">8</span>}, <span class="hljs-number">5</span>}, <span class="hljs-number">20</span>}
w = Wheel{
Circle: Circle{
Point: Point{X: <span class="hljs-number">8</span>, Y: <span class="hljs-number">8</span>},
Radius: <span class="hljs-number">5</span>,
},
Spokes: <span class="hljs-number">20</span>, <span class="hljs-comment">// <span class="hljs-doctag">NOTE:</span> trailing comma necessary here (and at Radius)</span>
}
fmt.Printf(<span class="hljs-string">&quot;%#v\n&quot;</span>, w)
<span class="hljs-comment">// Output:</span>
<span class="hljs-comment">// Wheel{Circle:Circle{Point:Point{X:8, Y:8}, Radius:5}, Spokes:20}</span>
w.X = <span class="hljs-number">42</span>
fmt.Printf(<span class="hljs-string">&quot;%#v\n&quot;</span>, w)
<span class="hljs-comment">// Output:</span>
<span class="hljs-comment">// Wheel{Circle:Circle{Point:Point{X:42, Y:8}, Radius:5}, Spokes:20}</span>
</code></pre>
<p>&#x9700;&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;Printf&#x51FD;&#x6578;&#x4E2D;%v&#x53C3;&#x6578;&#x5305;&#x542B;&#x7684;#&#x526F;&#x8A5E;&#xFF0C;&#x5B83;&#x8868;&#x793A;&#x7528;&#x548C;Go&#x8A9E;&#x8A00;&#x985E;&#x4F3C;&#x7684;&#x8A9E;&#x6CD5;&#x6253;&#x5370;&#x503C;&#x3002;&#x5C0D;&#x65BC;&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#x4F86;&#x8AAC;&#xFF0C;&#x5C07;&#x5305;&#x542B;&#x6BCF;&#x500B;&#x6210;&#x54E1;&#x7684;&#x540D;&#x5B57;&#x3002;</p>
<p>&#x56E0;&#x7232;&#x533F;&#x540D;&#x6210;&#x54E1;&#x4E5F;&#x6709;&#x4E00;&#x500B;&#x96B1;&#x5F0F;&#x7684;&#x540D;&#x5B57;&#xFF0C;&#x56E0;&#x6B64;&#x4E0D;&#x80FD;&#x540C;&#x6642;&#x5305;&#x542B;&#x5169;&#x500B;&#x985E;&#x578B;&#x76F8;&#x540C;&#x7684;&#x533F;&#x540D;&#x6210;&#x54E1;&#xFF0C;&#x9019;&#x6703;&#x5C0E;&#x81F4;&#x540D;&#x5B57;&#x885D;&#x7A81;&#x3002;&#x540C;&#x6642;&#xFF0C;&#x56E0;&#x7232;&#x6210;&#x54E1;&#x7684;&#x540D;&#x5B57;&#x662F;&#x7531;&#x5176;&#x985E;&#x578B;&#x96B1;&#x5F0F;&#x5730;&#x6C7A;&#x5B9A;&#x7684;&#xFF0C;&#x6240;&#x6709;&#x533F;&#x540D;&#x6210;&#x54E1;&#x4E5F;&#x6709;&#x53EF;&#x898B;&#x6027;&#x7684;&#x898F;&#x5247;&#x7D04;&#x675F;&#x3002;&#x5728;&#x4E0A;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;Point&#x548C;Circle&#x533F;&#x540D;&#x6210;&#x54E1;&#x90FD;&#x662F;&#x5C0E;&#x51FA;&#x7684;&#x3002;&#x537D;&#x4F7F;&#x5B83;&#x5011;&#x4E0D;&#x5C0E;&#x51FA;&#xFF08;&#x6BD4;&#x5982;&#x6539;&#x6210;&#x5C0F;&#x5BEB;&#x5B57;&#x6BCD;&#x958B;&#x982D;&#x7684;point&#x548C;circle&#xFF09;&#xFF0C;&#x6211;&#x5011;&#x4F9D;&#x7136;&#x53EF;&#x4EE5;&#x7528;&#x7C21;&#x77ED;&#x5F62;&#x5F0F;&#x8A2A;&#x554F;&#x533F;&#x540D;&#x6210;&#x54E1;&#x5D4C;&#x5957;&#x7684;&#x6210;&#x54E1;</p>
<pre><code class="lang-Go">w.X = <span class="hljs-number">8</span> <span class="hljs-comment">// equivalent to w.circle.point.X = 8</span>
</code></pre>
<p>&#x4F46;&#x662F;&#x5728;&#x5305;&#x5916;&#x90E8;&#xFF0C;&#x56E0;&#x7232;circle&#x548C;point&#x6C92;&#x6709;&#x5C0E;&#x51FA;&#x4E0D;&#x80FD;&#x8A2A;&#x554F;&#x5B83;&#x5011;&#x7684;&#x6210;&#x54E1;&#xFF0C;&#x56E0;&#x6B64;&#x7C21;&#x77ED;&#x8A9E;&#x6CD5;&#x4E5F;&#x662F;&#x7981;&#x6B62;&#x7684;&#x3002;</p>
<p>&#x5230;&#x76EE;&#x524D;&#x672A;&#x77E5;&#xFF0C;&#x6211;&#x5011;&#x770B;&#x5230;&#x533F;&#x540D;&#x6210;&#x54E1;&#x7279;&#x6027;&#x96BB;&#x662F;&#x5C0D;&#x8A2A;&#x554F;&#x5D4C;&#x5957;&#x6210;&#x54E1;&#x7684;&#x9EDE;&#x904B;&#x7B97;&#x7B26;&#x63D0;&#x4F9B;&#x4E86;&#x7C21;&#x77ED;&#x7684;&#x8A9E;&#x6CD5;&#x91A3;&#x3002;&#x7A0D;&#x5F8C;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x6703;&#x770B;&#x5230;&#x533F;&#x540D;&#x6210;&#x54E1;&#x4F75;&#x4E0D;&#x8981;&#x6C42;&#x662F;&#x7D50;&#x69CB;&#x9AD4;&#x985E;&#x578B;&#xFF1B;&#x5176;&#x5BE6;&#x4EFB;&#x4F55;&#x547D;&#x4EE4;&#x7684;&#x985E;&#x578B;&#x90FD;&#x53EF;&#x4EE5;&#x4F5C;&#x7232;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x533F;&#x540D;&#x6210;&#x54E1;&#x3002;&#x4F46;&#x662F;&#x7232;&#x4EC0;&#x9EBD;&#x8981;&#x5D4C;&#x5165;&#x4E00;&#x500B;&#x6C92;&#x6709;&#x4EFB;&#x4F55;&#x5B50;&#x6210;&#x54E1;&#x985E;&#x578B;&#x7684;&#x533F;&#x540D;&#x6210;&#x54E1;&#x985E;&#x578B;&#x5462;&#xFF1F;</p>
<p>&#x7B54;&#x6848;&#x662F;&#x533F;&#x540D;&#x985E;&#x578B;&#x7684;&#x65B9;&#x6CD5;&#x96C6;&#x3002;&#x7C21;&#x77ED;&#x7684;&#x9EDE;&#x904B;&#x7B97;&#x7B26;&#x8A9E;&#x6CD5;&#x53EF;&#x4EE5;&#x7528;&#x65BC;&#x9078;&#x64C7;&#x533F;&#x540D;&#x6210;&#x54E1;&#x5D4C;&#x5957;&#x7684;&#x6210;&#x54E1;&#xFF0C;&#x4E5F;&#x53EF;&#x4EE5;&#x7528;&#x65BC;&#x8A2A;&#x554F;&#x5B83;&#x5011;&#x7684;&#x65B9;&#x6CD5;&#x3002;&#x5BE6;&#x969B;&#x4E0A;&#xFF0C;&#x5916;&#x5C64;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x4E0D;&#x50C5;&#x50C5;&#x662F;&#x7372;&#x5F97;&#x4E86;&#x533F;&#x540D;&#x6210;&#x54E1;&#x985E;&#x578B;&#x7684;&#x6240;&#x6709;&#x6210;&#x54E1;&#xFF0C;&#x800C;&#x4E14;&#x4E5F;&#x7372;&#x5F97;&#x4E86;&#x8A72;&#x985E;&#x578B;&#x5C0E;&#x51FA;&#x7684;&#x5168;&#x90E8;&#x7684;&#x65B9;&#x6CD5;&#x3002;&#x9019;&#x500B;&#x6A5F;&#x88FD;&#x53EF;&#x4EE5;&#x7528;&#x65BC;&#x5C07;&#x4E00;&#x500B;&#x6709;&#x7C21;&#x55AE;&#x884C;&#x7232;&#x7684;&#x5C0D;&#x8C61;&#x7D44;&#x5408;&#x6210;&#x6709;&#x8907;&#x96DC;&#x884C;&#x7232;&#x7684;&#x5C0D;&#x8C61;&#x3002;&#x7D44;&#x5408;&#x662F;Go&#x8A9E;&#x8A00;&#x4E2D;&#x9762;&#x5411;&#x5C0D;&#x8C61;&#x7DE8;&#x7A0B;&#x7684;&#x8988;&#x5FC3;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x5728;6.3&#x7BC0;&#x4E2D;&#x5C08;&#x9580;&#x8A0E;&#x8AD6;&#x3002;</p>
</section> </section>
@@ -2041,7 +2293,7 @@
</div> </div>
<a href="../ch4/ch4-03.html" class="navigation navigation-prev " aria-label="Previous page: 字典"><i class="fa fa-angle-left"></i></a> <a href="../ch4/ch4-03.html" class="navigation navigation-prev " aria-label="Previous page: Map"><i class="fa fa-angle-left"></i></a>
<a href="../ch4/ch4-05.html" class="navigation navigation-next " aria-label="Next page: JSON"><i class="fa fa-angle-right"></i></a> <a href="../ch4/ch4-05.html" class="navigation navigation-next " aria-label="Next page: JSON"><i class="fa fa-angle-right"></i></a>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>JSON | Go编程语言</title> <title>JSON | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="4.5" data-chapter-title="JSON" data-filepath="ch4/ch4-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="4.5" data-chapter-title="JSON" data-filepath="ch4/ch4-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>
@@ -2024,7 +2024,214 @@
<section class="normal" id="section-"> <section class="normal" id="section-">
<h2 id="45-json">4.5. JSON</h2> <h2 id="45-json">4.5. JSON</h2>
<p>TODO</p> <p>JavaScript&#x5C0D;&#x8C61;&#x8868;&#x793A;&#x6CD5;&#xFF08;JSON&#xFF09;&#x662F;&#x4E00;&#x7A2E;&#x7528;&#x65BC;&#x767C;&#x9001;&#x548C;&#x63A5;&#x6536;&#x7D50;&#x69CB;&#x5316;&#x4FE1;&#x606F;&#x7684;&#x6A19;&#x6E96;&#x5354;&#x8B70;&#x3002;JSON&#x4F75;&#x4E0D;&#x662F;&#x552F;&#x4E00;&#x6A19;&#x6E96;&#x5354;&#x8B70;&#x3002; XML&#xFF08;&#xA7;7.14&#xFF09;&#x3001;ASN.1&#x548C;Google&#x7684;Protocol Buffers&#x90FD;&#x662F;&#x985E;&#x4F3C;&#x7684;&#x5354;&#x8B70;&#xFF0C;&#x4F75;&#x4E14;&#x6709;&#x5404;&#x81EA;&#x7684;&#x7279;&#x8272;&#xFF0C;&#x4F46;&#x662F;&#x7531;&#x65BC;&#x7C21;&#x6F54;&#x6027;&#x3001;&#x53EF;&#x8B80;&#x6027;&#x548C;&#x6D41;&#x884C;&#x7A0B;&#x5EA6;&#x7B49;&#x539F;&#x56E0;&#xFF0C;JSON&#x662F;&#x61C9;&#x7528;&#x6700;&#x5EE3;&#x6CDB;&#x7684;&#x4E00;&#x500B;&#x3002;</p>
<p>Go&#x8A9E;&#x8A00;&#x5C0D;&#x65BC;&#x9019;&#x4E9B;&#x6A19;&#x6E96;&#x683C;&#x5F0F;&#x7684;&#x7DE8;&#x78BC;&#x548C;&#x89E3;&#x78BC;&#x90FD;&#x6709;&#x826F;&#x597D;&#x7684;&#x652F;&#x6301;&#xFF0C;&#x7531;&#x6A19;&#x6E96;&#x5EAB;&#x4E2D;&#x7684;encoding/json&#x3001;encoding/xml&#x3001;encoding/asn1&#x7B49;&#x5305;&#x63D0;&#x4F9B;&#xFF08;&#x8B6F;&#x8A3B;&#xFF1A;Protocol Buffers&#x7684;&#x652F;&#x6301;&#x7531; github.com/golang/protobuf &#x5305;&#x63D0;&#x4F9B;&#xFF09;&#xFF0C;&#x4F75;&#x4E14;&#x9019;&#x985E;&#x5305;&#x90FD;&#x6709;&#x7740;&#x76F8;&#x4F3C;&#x7684;API&#x63A5;&#x53E3;&#x3002;&#x672C;&#x7BC0;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x5C0D;&#x91CD;&#x8981;&#x7684;encoding/json&#x5305;&#x7684;&#x7528;&#x6CD5;&#x505A;&#x500B;&#x6982;&#x8FF0;&#x3002;</p>
<p>JSON&#x662F;&#x5C0D;JavaScript&#x4E2D;&#x5404;&#x7A2E;&#x503C;&#x2014;&#x2014;&#x5B57;&#x7B26;&#x4E32;&#x3001;&#x6578;&#x5B57;&#x3001;&#x5E03;&#x723E;&#x503C;&#x548C;&#x5C0D;&#x8C61;&#x2014;&#x2014;Unicode&#x672C;&#x6587;&#x7DE8;&#x78BC;&#x3002;&#x5B83;&#x53EF;&#x4EE5;&#x7528;&#x6709;&#x6548;&#x53EF;&#x8B80;&#x7684;&#x65B9;&#x5F0F;&#x8868;&#x793A;&#x7B2C;&#x4E09;&#x7AE0;&#x7684;&#x57FA;&#x790E;&#x6578;&#x64DA;&#x985E;&#x578B;&#x548C;&#x672C;&#x7AE0;&#x7684;&#x6578;&#x7D44;&#x3001;slice&#x3001;&#x7D50;&#x69CB;&#x9AD4;&#x548C;map&#x7B49;&#x805A;&#x5408;&#x6578;&#x64DA;&#x985E;&#x578B;&#x3002;</p>
<p>&#x57FA;&#x672C;&#x7684;JSON&#x985E;&#x578B;&#x6709;&#x6578;&#x5B57;&#xFF08;&#x5341;&#x9032;&#x88FD;&#x6216;&#x79D1;&#x5B78;&#x8A18;&#x6578;&#x6CD5;&#xFF09;&#x3001;&#x5E03;&#x723E;&#x503C;&#xFF08;true&#x6216;false&#xFF09;&#x3001;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x5176;&#x4E2D;&#x5B57;&#x7B26;&#x4E32;&#x662F;&#x4EE5;&#x96D9;&#x5F15;&#x865F;&#x5305;&#x542B;&#x7684;Unicode&#x5B57;&#x7B26;&#x5E8F;&#x5217;&#xFF0C;&#x652F;&#x6301;&#x548C;Go&#x8A9E;&#x8A00;&#x985E;&#x4F3C;&#x7684;&#x53CD;&#x659C;&#x69D3;&#x8F49;&#x7FA9;&#x7279;&#x6027;&#xFF0C;&#x4E0D;&#x904E;JSON&#x4F7F;&#x7528;&#x7684;&#x662F;\Uhhhh&#x8F49;&#x7FA9;&#x6578;&#x5B57;&#x4F86;&#x8868;&#x793A;&#x4E00;&#x500B;UTF-16&#x7DE8;&#x78BC;&#xFF0C;&#x800C;&#x4E0D;&#x662F;Go&#x8A9E;&#x8A00;&#x7684;rune&#x985E;&#x578B;&#x3002;</p>
<p>&#x9019;&#x4E9B;&#x57FA;&#x790E;&#x985E;&#x578B;&#x53EF;&#x4EE5;&#x901A;&#x904E;JSON&#x7684;&#x6578;&#x7D44;&#x548C;&#x5C0D;&#x8C61;&#x985E;&#x578B;&#x9032;&#x884C;&#x905E;&#x6B78;&#x7D44;&#x5408;&#x3002;&#x4E00;&#x500B;JSON&#x6578;&#x7D44;&#x662F;&#x4E00;&#x500B;&#x6709;&#x5E8F;&#x7684;&#x503C;&#x5E8F;&#x5217;&#xFF0C;&#x5BEB;&#x5728;&#x4E00;&#x500B;&#x65B9;&#x62EC;&#x865F;&#x4E2D;&#x4F75;&#x4EE5;&#x9017;&#x865F;&#x5206;&#x9694;&#xFF1B;&#x4E00;&#x500B;JSON&#x6578;&#x7D44;&#x53EF;&#x4EE5;&#x7528;&#x65BC;&#x7DE8;&#x78BC;Go&#x8A9E;&#x8A00;&#x7684;&#x6578;&#x7D44;&#x548C;slice&#x3002;&#x4E00;&#x500B;JSON&#x5C0D;&#x8C61;&#x662F;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x5230;&#x503C;&#x7684;&#x6620;&#x5C04;&#xFF0C;&#x5BEB;&#x6210;&#x4EE5;&#x7E6B;&#x5217;&#x7684;name:value&#x5C0D;&#x5F62;&#x5F0F;&#xFF0C;&#x7528;&#x82B1;&#x62EC;&#x865F;&#x5305;&#x542B;&#x4F75;&#x4EE5;&#x9017;&#x865F;&#x5206;&#x9694;&#xFF1B;JSON&#x7684;&#x5C0D;&#x8C61;&#x985E;&#x578B;&#x53EF;&#x4EE5;&#x7528;&#x65BC;&#x7DE8;&#x78BC;Go&#x8A9E;&#x8A00;&#x7684;map&#x985E;&#x578B;&#xFF08;key&#x985E;&#x578B;&#x662F;&#x5B57;&#x7B26;&#x4E32;&#xFF09;&#x548C;&#x7D50;&#x69CB;&#x9AD4;&#x3002;&#x4F8B;&#x5982;&#xFF1A;</p>
<pre><code>boolean true
number -273.15
string &quot;She said \&quot;Hello, BF\&quot;&quot;
array [&quot;gold&quot;, &quot;silver&quot;, &quot;bronze&quot;]
object {&quot;year&quot;: 1980,
&quot;event&quot;: &quot;archery&quot;,
&quot;medals&quot;: [&quot;gold&quot;, &quot;silver&quot;, &quot;bronze&quot;]}
</code></pre><p>&#x8003;&#x616E;&#x4E00;&#x500B;&#x61C9;&#x7528;&#x7A0B;&#x5E8F;&#xFF0C;&#x8A72;&#x7A0B;&#x5E8F;&#x8CA0;&#x8CAC;&#x6536;&#x96C6;&#x5404;&#x7A2E;&#x96FB;&#x5F71;&#x8A55;&#x8AD6;&#x4F75;&#x63D0;&#x4F9B;&#x53CD;&#x994B;&#x529F;&#x80FD;&#x3002;&#x5B83;&#x7684;Movie&#x6578;&#x64DA;&#x985E;&#x578B;&#x548C;&#x4E00;&#x500B;&#x5178;&#x578B;&#x7684;&#x8868;&#x793A;&#x96FB;&#x5F71;&#x7684;&#x503C;&#x5217;&#x8868;&#x5982;&#x4E0B;&#x6240;&#x793A;&#x3002;&#xFF08;&#x5176;&#x4E2D;&#x7D50;&#x69CB;&#x9AD4;&#x8072;&#x660E;&#x4E2D;&#xFF0C;Year&#x548C;Color&#x6210;&#x54E1;&#x5F8C;&#x9762;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x9762;&#x503C;&#x662F;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;Tag&#xFF1B;&#x6211;&#x5011;&#x7A0D;&#x5F8C;&#x6703;&#x89E3;&#x91CB;&#x5B83;&#x7684;&#x4F5C;&#x7528;&#x3002;&#xFF09;</p>
<pre><code class="lang-Go">gopl.io/ch4/movie
<span class="hljs-keyword">type</span> Movie <span class="hljs-keyword">struct</span> {
Title <span class="hljs-typename">string</span>
Year <span class="hljs-typename">int</span> <span class="hljs-string">`json:&quot;released&quot;`</span>
Color <span class="hljs-typename">bool</span> <span class="hljs-string">`json:&quot;color,omitempty&quot;`</span>
Actors []<span class="hljs-typename">string</span>
}
<span class="hljs-keyword">var</span> movies = []Movie{
{Title: <span class="hljs-string">&quot;Casablanca&quot;</span>, Year: <span class="hljs-number">1942</span>, Color: <span class="hljs-constant">false</span>,
Actors: []<span class="hljs-typename">string</span>{<span class="hljs-string">&quot;Humphrey Bogart&quot;</span>, <span class="hljs-string">&quot;Ingrid Bergman&quot;</span>}},
{Title: <span class="hljs-string">&quot;Cool Hand Luke&quot;</span>, Year: <span class="hljs-number">1967</span>, Color: <span class="hljs-constant">true</span>,
Actors: []<span class="hljs-typename">string</span>{<span class="hljs-string">&quot;Paul Newman&quot;</span>}},
{Title: <span class="hljs-string">&quot;Bullitt&quot;</span>, Year: <span class="hljs-number">1968</span>, Color: <span class="hljs-constant">true</span>,
Actors: []<span class="hljs-typename">string</span>{<span class="hljs-string">&quot;Steve McQueen&quot;</span>, <span class="hljs-string">&quot;Jacqueline Bisset&quot;</span>}},
<span class="hljs-comment">// ...</span>
}
</code></pre>
<p>&#x9019;&#x6A23;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#x7279;&#x522B;&#x9069;&#x5408;JSON&#x683C;&#x5F0F;&#xFF0C;&#x4F75;&#x4E14;&#x5728;&#x5169;&#x7A2E;&#x4E4B;&#x9593;&#x76F8;&#x4E92;&#x8F49;&#x63DB;&#x4E5F;&#x5F88;&#x5BB9;&#x6613;&#x3002;&#x5C07;&#x4E00;&#x500B;Go&#x8A9E;&#x8A00;&#x4E2D;&#x985E;&#x4F3C;movies&#x7684;&#x7D50;&#x69CB;&#x9AD4;slice&#x8F49;&#x7232;JSON&#x7684;&#x904E;&#x7A0B;&#x53EB;&#x7DE8;&#x7D44;&#xFF08;marshaling&#xFF09;&#x3002;&#x7DE8;&#x7D44;&#x901A;&#x904E;&#x8ABF;&#x7528;json.Marshal&#x51FD;&#x6578;&#x5B8C;&#x6210;&#xFF1A;</p>
<pre><code class="lang-Go">data, err := json.Marshal(movies)
<span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> {
log.Fatalf(<span class="hljs-string">&quot;JSON marshaling failed: %s&quot;</span>, err)
}
fmt.Printf(<span class="hljs-string">&quot;%s\n&quot;</span>, data)
</code></pre>
<p>Marshal&#x51FD;&#x6578;&#x751F;&#x6210;&#x4E00;&#x500B;&#x5B57;&#x7BC0;slice&#xFF0C;&#x5305;&#x542B;&#x5F88;&#x9577;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;&#x4F75;&#x4E14;&#x6C92;&#x6709;&#x7A7A;&#x767D;&#x7E2E;&#x9032;&#xFF1B;&#x6211;&#x5011;&#x5C07;&#x5B83;&#x647A;&#x884C;&#x4EE5;&#x4FBF;&#x65BC;&#x986F;&#x793A;&#xFF1A;</p>
<pre><code>[{&quot;Title&quot;:&quot;Casablanca&quot;,&quot;released&quot;:1942,&quot;Actors&quot;:[&quot;Humphrey Bogart&quot;,&quot;Ingr
id Bergman&quot;]},{&quot;Title&quot;:&quot;Cool Hand Luke&quot;,&quot;released&quot;:1967,&quot;color&quot;:true,&quot;Ac
tors&quot;:[&quot;Paul Newman&quot;]},{&quot;Title&quot;:&quot;Bullitt&quot;,&quot;released&quot;:1968,&quot;color&quot;:true,&quot;
Actors&quot;:[&quot;Steve McQueen&quot;,&quot;Jacqueline Bisset&quot;]}]
</code></pre><p>&#x9019;&#x7A2E;&#x7DCA;&#x6E4A;&#x7684;&#x8868;&#x793A;&#x5F62;&#x5F0F;&#x96D6;&#x7136;&#x5305;&#x542B;&#x4E86;&#x5168;&#x90E8;&#x7684;&#x4FE1;&#x606F;&#xFF0C;&#x4F46;&#x662F;&#x5F88;&#x96E3;&#x95B2;&#x8B80;&#x3002;&#x7232;&#x4E86;&#x751F;&#x6210;&#x4FBF;&#x65BC;&#x95B2;&#x8B80;&#x7684;&#x683C;&#x5F0F;&#xFF0C;&#x53E6;&#x4E00;&#x500B;json.MarshalIndent&#x51FD;&#x6578;&#x5C07;&#x7523;&#x751F;&#x6574;&#x9F4A;&#x7E2E;&#x9032;&#x7684;&#x8F38;&#x51FA;&#x3002;&#x6709;&#x5169;&#x500B;&#x984D;&#x5916;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x53C3;&#x6578;&#x7528;&#x65BC;&#x8868;&#x793A;&#x6BCF;&#x4E00;&#x884C;&#x8F38;&#x51FA;&#x7684;&#x524D;&#x7DB4;&#x548C;&#x6BCF;&#x4E00;&#x500B;&#x5C64;&#x7D1A;&#x7684;&#x7E2E;&#x9032;&#xFF1A;</p>
<pre><code class="lang-Go">data, err := json.MarshalIndent(movies, <span class="hljs-string">&quot;&quot;</span>, <span class="hljs-string">&quot; &quot;</span>)
<span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> {
log.Fatalf(<span class="hljs-string">&quot;JSON marshaling failed: %s&quot;</span>, err)
}
fmt.Printf(<span class="hljs-string">&quot;%s\n&quot;</span>, data)
</code></pre>
<p>&#x4E0A;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x5C07;&#x7523;&#x751F;&#x9019;&#x6A23;&#x7684;&#x8F38;&#x51FA;&#xFF1A;</p>
<pre><code class="lang-Json">[
{
<span class="hljs-string">&quot;Title&quot;</span>: <span class="hljs-string">&quot;Casablanca&quot;</span>,
<span class="hljs-string">&quot;released&quot;</span>: <span class="hljs-number">1942</span>,
<span class="hljs-string">&quot;Actors&quot;</span>: [
<span class="hljs-string">&quot;Humphrey Bogart&quot;</span>,
<span class="hljs-string">&quot;Ingrid Bergman&quot;</span>
]
},
{
<span class="hljs-string">&quot;Title&quot;</span>: <span class="hljs-string">&quot;Cool Hand Luke&quot;</span>,
<span class="hljs-string">&quot;released&quot;</span>: <span class="hljs-number">1967</span>,
<span class="hljs-string">&quot;color&quot;</span>: <span class="hljs-literal">true</span>,
<span class="hljs-string">&quot;Actors&quot;</span>: [
<span class="hljs-string">&quot;Paul Newman&quot;</span>
]
},
{
<span class="hljs-string">&quot;Title&quot;</span>: <span class="hljs-string">&quot;Bullitt&quot;</span>,
<span class="hljs-string">&quot;released&quot;</span>: <span class="hljs-number">1968</span>,
<span class="hljs-string">&quot;color&quot;</span>: <span class="hljs-literal">true</span>,
<span class="hljs-string">&quot;Actors&quot;</span>: [
<span class="hljs-string">&quot;Steve McQueen&quot;</span>,
<span class="hljs-string">&quot;Jacqueline Bisset&quot;</span>
]
}
]
</code></pre>
<p>&#x5728;&#x7DE8;&#x78BC;&#x6642;&#xFF0C;&#x9ED8;&#x8A8D;&#x4F7F;&#x7528;Go&#x8A9E;&#x8A00;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6210;&#x54E1;&#x540D;&#x5B57;&#x4F5C;&#x7232;JSON&#x7684;&#x5C0D;&#x8C61;&#xFF08;&#x901A;&#x904E;reflect&#x53CD;&#x5C04;&#x6280;&#x8853;&#xFF0C;&#x6211;&#x5011;&#x5C07;&#x5728;12.6&#x7BC0;&#x8A0E;&#x8AD6;&#xFF09;&#x3002;&#x96BB;&#x6709;&#x5C0E;&#x51FA;&#x7684;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#x624D;&#x6703;&#x88AB;&#x7DE8;&#x78BC;&#xFF0C;&#x9019;&#x4E5F;&#x5C31;&#x662F;&#x6211;&#x5011;&#x7232;&#x4EC0;&#x9EBD;&#x9078;&#x64C7;&#x7528;&#x5927;&#x5BEB;&#x5B57;&#x6BCD;&#x958B;&#x982D;&#x7684;&#x6210;&#x54E1;&#x540D;&#x7A31;&#x3002;</p>
<p>&#x7D30;&#x5FC3;&#x7684;&#x8B80;&#x8005;&#x53EF;&#x80FD;&#x5DF2;&#x7D93;&#x8A3B;&#x610F;&#x5230;&#xFF0C;&#x5176;&#x4E2D;Year&#x540D;&#x5B57;&#x7684;&#x6210;&#x54E1;&#x5728;&#x7DE8;&#x78BC;&#x5F8C;&#x8B8A;&#x6210;&#x4E86;released&#xFF0C;&#x9084;&#x6709;Color&#x9577;&#x9060;&#x7DE8;&#x78BC;&#x5F8C;&#x8B8A;&#x6210;&#x4E86;&#x5C0F;&#x5BEB;&#x5B57;&#x6BCD;&#x958B;&#x982D;&#x7684;color&#x3002;&#x9019;&#x662F;&#x56E0;&#x7232;&#x69CB;&#x9AD4;&#x6210;&#x54E1;Tag&#x6240;&#x5C0E;&#x81F4;&#x7684;&#x3002;&#x4E00;&#x500B;&#x69CB;&#x9AD4;&#x6210;&#x54E1;Tag&#x662F;&#x548C;&#x5728;&#x7DE8;&#x8B6F;&#x968E;&#x6BB5;&#x95DC;&#x806F;&#x5230;&#x8A72;&#x6210;&#x54E1;&#x7684;&#x5143;&#x4FE1;&#x606F;&#x5B57;&#x7B26;&#x4E32;&#xFF1A;</p>
<pre><code>Year int `json:&quot;released&quot;`
Color bool `json:&quot;color,omitempty&quot;`
</code></pre><p>&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6210;&#x54E1;Tag&#x53EF;&#x4EE5;&#x662F;&#x4EFB;&#x610F;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x9762;&#x503C;&#xFF0C;&#x4F46;&#x662F;&#x901A;&#x5E38;&#x662F;&#x4E00;&#x7E6B;&#x5217;&#x7528;&#x7A7A;&#x683C;&#x5206;&#x9694;&#x7684;key:&quot;value&quot;&#x9375;&#x503C;&#x5C0D;&#x5E8F;&#x5217;&#xFF1B;&#x56E0;&#x7232;&#x503C;&#x4E2D;&#x542B;&#x7FA9;&#x96D9;&#x5F15;&#x865F;&#x5B57;&#x7B26;&#xFF0C;&#x56E0;&#x6B64;&#x6210;&#x54E1;Tag&#x4E00;&#x822C;&#x7528;&#x539F;&#x751F;&#x5B57;&#x7B26;&#x4E32;&#x9762;&#x503C;&#x7684;&#x5F62;&#x5F0F;&#x66F8;&#x5BEB;&#x3002;json&#x958B;&#x982D;&#x9375;&#x5C0D;&#x61C9;&#x7684;&#x503C;&#x7528;&#x65BC;&#x63A7;&#x88FD;encoding/json&#x5305;&#x7684;&#x7DE8;&#x78BC;&#x548C;&#x89E3;&#x78BC;&#x7684;&#x884C;&#x7232;&#xFF0C;&#x4F75;&#x4E14;encoding/...&#x4E0B;&#x9762;&#x5176;&#x5B83;&#x7684;&#x5305;&#x4E5F;&#x9075;&#x5FAA;&#x9019;&#x500B;&#x7D04;&#x5B9A;&#x3002;&#x6210;&#x54E1;Tag&#x4E2D;json&#x5C0D;&#x61C9;&#x503C;&#x7684;&#x7B2C;&#x4E00;&#x90E8;&#x5206;&#x7528;&#x65BC;&#x6307;&#x5B9A;JSON&#x5C0D;&#x8C61;&#x7684;&#x540D;&#x5B57;&#xFF0C;&#x6BD4;&#x5982;&#x5C07;Go&#x8A9E;&#x8A00;&#x4E2D;&#x7684;TotalCount&#x6210;&#x54E1;&#x5C0D;&#x61C9;&#x5230;JSON&#x4E2D;&#x7684;total_count&#x5C0D;&#x8C61;&#x3002;Color&#x6210;&#x54E1;&#x7684;Tag&#x9084;&#x5E36;&#x4E86;&#x4E00;&#x500B;&#x984D;&#x5916;&#x7684;omitempty&#x9078;&#x9805;&#xFF0C;&#x8868;&#x793A;&#x7576;Go&#x8A9E;&#x8A00;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#x7232;&#x7A7A;&#x6216;&#x96F6;&#x503C;&#x6642;&#x4E0D;&#x751F;&#x6210;JSON&#x5C0D;&#x8C61;&#xFF08;&#x9019;&#x91CC;false&#x7232;&#x96F6;&#x503C;&#xFF09;&#x3002;&#x679C;&#x7136;&#xFF0C;Casablanca&#x662F;&#x4E00;&#x500B;&#x9ED1;&#x767D;&#x96FB;&#x5F71;&#xFF0C;&#x4F75;&#x6C92;&#x6709;&#x8F38;&#x51FA;Color&#x6210;&#x54E1;&#x3002;</p>
<p>&#x7DE8;&#x78BC;&#x7684;&#x9006;&#x64CD;&#x4F5C;&#x662F;&#x89E3;&#x78BC;&#xFF0C;&#x5C0D;&#x61C9;&#x5C07;JSON&#x6578;&#x64DA;&#x89E3;&#x78BC;&#x7232;GO&#x8A9E;&#x8A00;&#x7684;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#xFF0C;Go&#x8A9E;&#x8A00;&#x4E2D;&#x4E00;&#x822C;&#x53EB;unmarshaling&#xFF0C;&#x901A;&#x904E;json.Unmarshal&#x51FD;&#x6578;&#x5B8C;&#x6210;&#x3002;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x5C07;JSON&#x683C;&#x5F0F;&#x7684;&#x96FB;&#x5F71;&#x6578;&#x64DA;&#x89E3;&#x78BC;&#x7232;&#x4E00;&#x500B;&#x7D50;&#x69CB;&#x9AD4;slice&#xFF0C;&#x7D50;&#x69CB;&#x9AD4;&#x4E2D;&#x96BB;&#x6709;Title&#x6210;&#x54E1;&#x3002;&#x901A;&#x904E;&#x5B9A;&#x7FA9;&#x5408;&#x9069;&#x7684;Go&#x8A9E;&#x8A00;&#x6578;&#x64DA;&#x7D50;&#x69CB;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x9078;&#x64C7;&#x6027;&#x5730;&#x89E3;&#x78BC;JSON&#x4E2D;&#x611F;&#x8208;&#x8DA3;&#x7684;&#x6210;&#x54E1;&#x3002;&#x7576;Unmarshal&#x8FD4;&#x8FF4;&#xFF0C;slice&#x5C07;&#x88AB;&#x96BB;&#x542B;&#x6709;Title&#x4FE1;&#x606F;&#x503C;&#x586B;&#x5145;&#xFF0C;&#x5176;&#x5B83;JSON&#x6210;&#x54E1;&#x5C07;&#x88AB;&#x5FFD;&#x7565;&#x3002;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> titles []<span class="hljs-keyword">struct</span>{ Title <span class="hljs-typename">string</span> }
<span class="hljs-keyword">if</span> err := json.Unmarshal(data, &amp;titles); err != <span class="hljs-constant">nil</span> {
log.Fatalf(<span class="hljs-string">&quot;JSON unmarshaling failed: %s&quot;</span>, err)
}
fmt.Println(titles) <span class="hljs-comment">// &quot;[{Casablanca} {Cool Hand Luke} {Bullitt}]&quot;</span>
</code></pre>
<p>&#x8A31;&#x591A;web&#x670D;&#x52D9;&#x90FD;&#x63D0;&#x4F9B;JSON&#x63A5;&#x53E3;&#xFF0C;&#x901A;&#x904E;HTTP&#x63A5;&#x53E3;&#x767C;&#x9001;JSON&#x683C;&#x5F0F;&#x8ACB;&#x6C42;&#x4F75;&#x8FD4;&#x8FF4;JSON&#x683C;&#x5F0F;&#x7684;&#x4FE1;&#x606F;&#x3002;&#x7232;&#x4E86;&#x8AAC;&#x660E;&#x9019;&#x4E00;&#x9EDE;&#xFF0C;&#x6211;&#x5011;&#x901A;&#x904E;Github&#x7684;issue&#x67FB;&#x8A62;&#x670D;&#x52D9;&#x3002;&#x9996;&#x5148;&#xFF0C;&#x6211;&#x5011;&#x8981;&#x5B9A;&#x7FA9;&#x5408;&#x9069;&#x7684;&#x985E;&#x578B;&#x548C;&#x5E38;&#x91CF;&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch4/github
<span class="hljs-comment">// Package github provides a Go API for the GitHub issue tracker.</span>
<span class="hljs-comment">// See https://developer.github.com/v3/search/#search-issues.</span>
<span class="hljs-keyword">package</span> github
<span class="hljs-keyword">import</span> <span class="hljs-string">&quot;time&quot;</span>
<span class="hljs-keyword">const</span> IssuesURL = <span class="hljs-string">&quot;https://api.github.com/search/issues&quot;</span>
<span class="hljs-keyword">type</span> IssuesSearchResult <span class="hljs-keyword">struct</span> {
TotalCount <span class="hljs-typename">int</span> <span class="hljs-string">`json:&quot;total_count&quot;`</span>
Items []*Issue
}
<span class="hljs-keyword">type</span> Issue <span class="hljs-keyword">struct</span> {
Number <span class="hljs-typename">int</span>
HTMLURL <span class="hljs-typename">string</span> <span class="hljs-string">`json:&quot;html_url&quot;`</span>
Title <span class="hljs-typename">string</span>
State <span class="hljs-typename">string</span>
User *User
CreatedAt time.Time <span class="hljs-string">`json:&quot;created_at&quot;`</span>
Body <span class="hljs-typename">string</span> <span class="hljs-comment">// in Markdown format</span>
}
<span class="hljs-keyword">type</span> User <span class="hljs-keyword">struct</span> {
Login <span class="hljs-typename">string</span>
HTMLURL <span class="hljs-typename">string</span> <span class="hljs-string">`json:&quot;html_url&quot;`</span>
}
</code></pre>
<p>&#x548C;&#x524D;&#x9762;&#x4E00;&#x6A23;&#xFF0C;&#x537D;&#x4F7F;&#x5C0D;&#x61C9;&#x7684;JSON&#x5C0D;&#x8C61;&#x540D;&#x662F;&#x5C0F;&#x5BEB;&#x5B57;&#x6BCD;&#xFF0C;&#x6BCF;&#x500B;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6210;&#x54E1;&#x540D;&#x4E5F;&#x662F;&#x8072;&#x660E;&#x7232;&#x5927;&#x5C0F;&#x5B57;&#x6BCD;&#x958B;&#x982D;&#x7684;&#x3002;&#x56E0;&#x7232;&#x6709;&#x4E9B;JSON&#x6210;&#x54E1;&#x540D;&#x5B57;&#x548C;Go&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;&#x540D;&#x5B57;&#x4F75;&#x4E0D;&#x76F8;&#x540C;&#xFF0C;&#x56E0;&#x6B64;&#x9700;&#x8981;Go&#x8A9E;&#x8A00;&#x7D50;&#x69CB;&#x9AD4;&#x6210;&#x54E1;Tag&#x4F86;&#x6307;&#x5B9A;&#x5C0D;&#x61C9;&#x7684;JSON&#x540D;&#x5B57;&#x3002;&#x540C;&#x6A23;&#xFF0C;&#x5728;&#x89E3;&#x78BC;&#x7684;&#x6642;&#x5019;&#x4E5F;&#x9700;&#x8981;&#x505A;&#x540C;&#x6A23;&#x7684;&#x8655;&#x7406;&#xFF0C;GitHub&#x670D;&#x52D9;&#x8FD4;&#x8FF4;&#x7684;&#x4FE1;&#x606F;&#x6BD4;&#x6211;&#x5011;&#x5B9A;&#x7FA9;&#x7684;&#x8981;&#x591A;&#x5F88;&#x591A;&#x3002;</p>
<p>SearchIssues&#x51FD;&#x6578;&#x767C;&#x51FA;&#x4E00;&#x500B;HTTP&#x8ACB;&#x6C42;&#xFF0C;&#x7136;&#x5F8C;&#x89E3;&#x78BC;&#x8FD4;&#x8FF4;&#x7684;JSON&#x683C;&#x5F0F;&#x7684;&#x7D50;&#x679C;&#x3002;&#x56E0;&#x7232;&#x7528;&#x6236;&#x63D0;&#x4F9B;&#x7684;&#x67FB;&#x8A62;&#x689D;&#x4EF6;&#x53EF;&#x80FD;&#x5305;&#x542B;&#x985E;&#x4F3C;<code>?</code>&#x548C;<code>&amp;</code>&#x4E4B;&#x985E;&#x7684;&#x7279;&#x6B8A;&#x5B57;&#x7B26;&#xFF0C;&#x7232;&#x4E86;&#x907F;&#x514D;&#x5C0D;URL&#x9020;&#x6210;&#x885D;&#x7A81;&#xFF0C;&#x6211;&#x5011;&#x7528;url.QueryEscape&#x4F86;&#x5C0D;&#x67FB;&#x8A62;&#x4E2D;&#x7684;&#x7279;&#x6B8A;&#x5B57;&#x7B26;&#x9032;&#x884C;&#x8F49;&#x7FA9;&#x64CD;&#x4F5C;&#x3002;</p>
<pre><code class="lang-Go">gopl.io/ch4/github
<span class="hljs-keyword">package</span> github
<span class="hljs-keyword">import</span> (
<span class="hljs-string">&quot;encoding/json&quot;</span>
<span class="hljs-string">&quot;fmt&quot;</span>
<span class="hljs-string">&quot;net/http&quot;</span>
<span class="hljs-string">&quot;net/url&quot;</span>
<span class="hljs-string">&quot;strings&quot;</span>
)
<span class="hljs-comment">// SearchIssues queries the GitHub issue tracker.</span>
<span class="hljs-keyword">func</span> SearchIssues(terms []<span class="hljs-typename">string</span>) (*IssuesSearchResult, error) {
q := url.QueryEscape(strings.Join(terms, <span class="hljs-string">&quot; &quot;</span>))
resp, err := http.Get(IssuesURL + <span class="hljs-string">&quot;?q=&quot;</span> + q)
<span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> {
<span class="hljs-keyword">return</span> <span class="hljs-constant">nil</span>, err
}
<span class="hljs-comment">// We must close resp.Body on all execution paths.</span>
<span class="hljs-comment">// (Chapter 5 presents &apos;defer&apos;, which makes this simpler.)</span>
<span class="hljs-keyword">if</span> resp.StatusCode != http.StatusOK {
resp.Body.Close()
<span class="hljs-keyword">return</span> <span class="hljs-constant">nil</span>, fmt.Errorf(<span class="hljs-string">&quot;search query failed: %s&quot;</span>, resp.Status)
}
<span class="hljs-keyword">var</span> result IssuesSearchResult
<span class="hljs-keyword">if</span> err := json.NewDecoder(resp.Body).Decode(&amp;result); err != <span class="hljs-constant">nil</span> {
resp.Body.Close()
<span class="hljs-keyword">return</span> <span class="hljs-constant">nil</span>, err
}
resp.Body.Close()
<span class="hljs-keyword">return</span> &amp;result, <span class="hljs-constant">nil</span>
}
</code></pre>
<p>&#x5728;&#x65E9;&#x4E9B;&#x7684;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x4F7F;&#x7528;&#x4E86;json.Unmarshal&#x51FD;&#x6578;&#x4F86;&#x5C07;JSON&#x683C;&#x5F0F;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x89E3;&#x78BC;&#x7232;&#x5B57;&#x7BC0;slice&#x3002;&#x4F46;&#x662F;&#x9019;&#x500B;&#x4F8B;&#x5B50;&#x4E2D;&#xFF0C;&#x6211;&#x5011;&#x4F7F;&#x7528;&#x4E86;&#x57FA;&#x65BC;&#x6D41;&#x5F0F;&#x7684;&#x89E3;&#x78BC;&#x5668;json.Decoder&#xFF0C;&#x5B83;&#x53EF;&#x4EE5;&#x5F9E;&#x4E00;&#x500B;&#x6D41;&#x89E3;&#x78BC;JSON&#x6578;&#x64DA;&#xFF0C;&#x76E1;&#x7BA1;&#x9019;&#x4E0D;&#x662F;&#x5FC5;&#x9B1A;&#x7684;&#x3002;&#x5982;&#x60A8;&#x6240;&#x6599;&#xFF0C;&#x9084;&#x6709;&#x4E00;&#x500B;&#x91DD;&#x5C0D;&#x8F38;&#x51FA;&#x6D41;&#x7684;json.Encoder&#x7DE8;&#x78BC;&#x5C0D;&#x8C61;&#x3002;</p>
<p>&#x6211;&#x5011;&#x8ABF;&#x7528;Decode&#x65B9;&#x6CD5;&#x4F86;&#x586B;&#x5145;&#x8B8A;&#x91CF;&#x3002;&#x9019;&#x91CC;&#x6709;&#x591A;&#x7A2E;&#x65B9;&#x6CD5;&#x53EF;&#x4EE5;&#x683C;&#x5F0F;&#x5316;&#x7D50;&#x69CB;&#x3002;&#x4E0B;&#x9762;&#x662F;&#x6700;&#x7C21;&#x55AE;&#x7684;&#x4E00;&#x7A2E;&#xFF0C;&#x4EE5;&#x4E00;&#x500B;&#x56FA;&#x5B9A;&#x5BEC;&#x5EA6;&#x6253;&#x5370;&#x6BCF;&#x500B;issue&#xFF0C;&#x4F46;&#x662F;&#x5728;&#x4E0B;&#x4E00;&#x7BC0;&#x6211;&#x5011;&#x5C07;&#x770B;&#x5230;&#x5982;&#x679C;&#x5229;&#x7528;&#x6A21;&#x95C6;&#x4F86;&#x8F38;&#x51FA;&#x8907;&#x96DC;&#x7684;&#x683C;&#x5F0F;&#x3002;</p>
<pre><code class="lang-Go">gopl.io/ch4/issues
<span class="hljs-comment">// Issues prints a table of GitHub issues matching the search terms.</span>
<span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> (
<span class="hljs-string">&quot;fmt&quot;</span>
<span class="hljs-string">&quot;log&quot;</span>
<span class="hljs-string">&quot;os&quot;</span>
<span class="hljs-string">&quot;gopl.io/ch4/github&quot;</span>
)
<span class="hljs-keyword">func</span> main() {
result, err := github.SearchIssues(os.Args[<span class="hljs-number">1</span>:])
<span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> {
log.Fatal(err)
}
fmt.Printf(<span class="hljs-string">&quot;%d issues:\n&quot;</span>, result.TotalCount)
<span class="hljs-keyword">for</span> _, item := <span class="hljs-keyword">range</span> result.Items {
fmt.Printf(<span class="hljs-string">&quot;#%-5d %9.9s %.55s\n&quot;</span>,
item.Number, item.User.Login, item.Title)
}
}
</code></pre>
<p>&#x901A;&#x904E;&#x547D;&#x4EE4;&#x884C;&#x53C3;&#x6578;&#x6307;&#x5B9A;&#x6AA2;&#x7D22;&#x689D;&#x4EF6;&#x3002;&#x4E0B;&#x9762;&#x7684;&#x547D;&#x4EE4;&#x662F;&#x67FB;&#x8A62;Go&#x8A9E;&#x8A00;&#x9805;&#x76EE;&#x4E2D;&#x548C;JSON&#x89E3;&#x78BC;&#x76F8;&#x95DC;&#x7684;&#x554F;&#x984C;&#xFF0C;&#x9084;&#x6709;&#x67FB;&#x8A62;&#x8FD4;&#x8FF4;&#x7684;&#x7D50;&#x679C;&#xFF1A;</p>
<pre><code>$ go build gopl.io/ch4/issues
$ ./issues repo:golang/go is:open json decoder
13 issues:
#5680 eaigner encoding/json: set key converter on en/decoder
#6050 gopherbot encoding/json: provide tokenizer
#8658 gopherbot encoding/json: use bufio
#8462 kortschak encoding/json: UnmarshalText confuses json.Unmarshal
#5901 rsc encoding/json: allow override type marshaling
#9812 klauspost encoding/json: string tag not symmetric
#7872 extempora encoding/json: Encoder internally buffers full output
#9650 cespare encoding/json: Decoding gives errPhase when unmarshalin
#6716 gopherbot encoding/json: include field name in unmarshal error me
#6901 lukescott encoding/json, encoding/xml: option to treat unknown fi
#6384 joeshaw encoding/json: encode precise floating point integers u
#6647 btracey x/tools/cmd/godoc: display type kind of each named type
#4237 gjemiller encoding/base64: URLEncoding padding is optional
</code></pre><p>GitHub&#x7684;Web&#x670D;&#x52D9;&#x63A5;&#x53E3; <a href="https://developer.github.com/v3/" target="_blank">https://developer.github.com/v3/</a> &#x5305;&#x542B;&#x4E86;&#x66F4;&#x591A;&#x7684;&#x7279;&#x6027;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 4.10&#xFF1A;</strong> &#x8129;&#x6539;issues&#x7A0B;&#x5E8F;&#xFF0C;&#x6839;&#x64DA;&#x554F;&#x984C;&#x7684;&#x6642;&#x9593;&#x9032;&#x884C;&#x5206;&#x985E;&#xFF0C;&#x6BD4;&#x5982;&#x4E0D;&#x5230;&#x4E00;&#x500B;&#x6708;&#x7684;&#x3001;&#x4E0D;&#x5230;&#x4E00;&#x5E74;&#x7684;&#x3001;&#x8D85;&#x904E;&#x4E00;&#x5E74;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 4.11&#xFF1A;</strong> &#x7DE8;&#x5BEB;&#x4E00;&#x500B;&#x5DE5;&#x5177;&#xFF0C;&#x5141;&#x8A31;&#x7528;&#x6236;&#x5728;&#x547D;&#x4EE4;&#x884C;&#x5275;&#x5EFA;&#x3001;&#x8B80;&#x53D6;&#x3001;&#x66F4;&#x65B0;&#x548C;&#x522A;&#x9664;GitHub&#x4E0A;&#x7684;issue&#xFF0C;&#x7576;&#x5FC5;&#x8981;&#x7684;&#x6642;&#x5019;&#x81EA;&#x52D5;&#x6253;&#x958B;&#x7528;&#x6236;&#x9ED8;&#x8A8D;&#x7684;&#x7DE8;&#x8F2F;&#x5668;&#x7528;&#x65BC;&#x8F38;&#x5165;&#x6587;&#x672C;&#x4FE1;&#x606F;&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 4.12&#xFF1A;</strong> &#x6D41;&#x884C;&#x7684;web&#x6F2B;&#x7575;&#x670D;&#x52D9;xkcd&#x4E5F;&#x63D0;&#x4F9B;&#x4E86;JSON&#x63A5;&#x53E3;&#x3002;&#x4F8B;&#x5982;&#xFF0C;&#x4E00;&#x500B; <a href="https://xkcd.com/571/info.0.json" target="_blank">https://xkcd.com/571/info.0.json</a> &#x8ACB;&#x6C42;&#x5C07;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x5F88;&#x591A;&#x4EBA;&#x559C;&#x611B;&#x7684;571&#x7DE8;&#x865F;&#x7684;&#x8A73;&#x7D30;&#x63CF;&#x8FF0;&#x3002;&#x4E0B;&#x8F09;&#x6BCF;&#x500B;&#x93C8;&#x63A5;&#xFF08;&#x96BB;&#x4E0B;&#x8F09;&#x4E00;&#x6B21;&#xFF09;&#x7136;&#x5F8C;&#x5275;&#x5EFA;&#x4E00;&#x500B;&#x96E2;&#x7DDA;&#x7D22;&#x5F15;&#x3002;&#x7DE8;&#x5BEB;&#x4E00;&#x500B;xkcd&#x5DE5;&#x5177;&#xFF0C;&#x4F7F;&#x7528;&#x9019;&#x4E9B;&#x96E2;&#x7DDA;&#x7D22;&#x5F15;&#xFF0C;&#x6253;&#x5370;&#x548C;&#x547D;&#x4EE4;&#x884C;&#x8F38;&#x5165;&#x7684;&#x6AA2;&#x7D22;&#x8A5E;&#x76F8;&#x5339;&#x914D;&#x7684;&#x6F2B;&#x7575;&#x7684;URL&#x3002;</p>
<p><strong>&#x7DF4;&#x7FD2; 4.13&#xFF1A;</strong> &#x4F7F;&#x7528;&#x958B;&#x653E;&#x96FB;&#x5F71;&#x6578;&#x64DA;&#x5EAB;&#x7684;JSON&#x670D;&#x52D9;&#x63A5;&#x53E3;&#xFF0C;&#x5141;&#x8A31;&#x4F60;&#x6AA2;&#x7D22;&#x548C;&#x4E0B;&#x8F09; <a href="https://omdbapi.com/" target="_blank">https://omdbapi.com/</a> &#x4E0A;&#x96FB;&#x5F71;&#x7684;&#x540D;&#x5B57;&#x548C;&#x5C0D;&#x61C9;&#x7684;&#x6D77;&#x5831;&#x5716;&#x50CF;&#x3002;&#x7DE8;&#x5BEB;&#x4E00;&#x500B;poster&#x5DE5;&#x5177;&#xFF0C;&#x901A;&#x904E;&#x547D;&#x4EE4;&#x884C;&#x8F38;&#x5165;&#x7684;&#x96FB;&#x5F71;&#x540D;&#x5B57;&#xFF0C;&#x4E0B;&#x8F09;&#x5C0D;&#x61C9;&#x7684;&#x6D77;&#x5831;&#x3002;</p>
</section> </section>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>文本和HTML模闆 | Go编程语言</title> <title>文本和HTML模闆 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="4.6" data-chapter-title="文本和HTML模闆" data-filepath="ch4/ch4-06.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="4.6" data-chapter-title="文本和HTML模闆" data-filepath="ch4/ch4-06.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>
@@ -2024,7 +2024,124 @@
<section class="normal" id="section-"> <section class="normal" id="section-">
<h2 id="46-&#x6587;&#x672C;&#x548C;html&#x6A21;&#x95C6;">4.6. &#x6587;&#x672C;&#x548C;HTML&#x6A21;&#x95C6;</h2> <h2 id="46-&#x6587;&#x672C;&#x548C;html&#x6A21;&#x95C6;">4.6. &#x6587;&#x672C;&#x548C;HTML&#x6A21;&#x95C6;</h2>
<p>TODO</p> <p>&#x524D;&#x9762;&#x7684;&#x4F8B;&#x5B50;&#xFF0C;&#x96BB;&#x662F;&#x6700;&#x7C21;&#x55AE;&#x7684;&#x683C;&#x5F0F;&#xFF0C;&#x4F7F;&#x7528;Printf&#x662F;&#x5B8C;&#x5168;&#x8DB3;&#x5920;&#x7684;&#x3002;&#x4F46;&#x662F;&#x6709;&#x6642;&#x5019;&#x6703;&#x9700;&#x8981;&#x8907;&#x96DC;&#x7684;&#x6253;&#x5370;&#x683C;&#x5F0F;&#xFF0C;&#x9019;&#x6642;&#x5019;&#x4E00;&#x822C;&#x9700;&#x8981;&#x5C07;&#x683C;&#x5F0F;&#x5316;&#x4EE3;&#x78BC;&#x5206;&#x96E2;&#x51FA;&#x4F86;&#x4EE5;&#x4FBF;&#x66F4;&#x5B89;&#x5168;&#x5730;&#x8129;&#x6539;&#x3002;&#x9019;&#x5BEB;&#x529F;&#x80FD;&#x662F;&#x7531;text/template&#x548C;html/template&#x7B49;&#x6A21;&#x95C6;&#x5305;&#x63D0;&#x4F9B;&#x7684;&#xFF0C;&#x5B83;&#x5011;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x500B;&#x7528;&#x8B8A;&#x91CF;&#x503C;&#x586B;&#x5145;&#x5230;&#x4E00;&#x500B;&#x6587;&#x672C;&#x6216;HTML&#x683C;&#x5F0F;&#x7684;&#x6A21;&#x95C6;&#x7684;&#x6A5F;&#x88FD;&#x3002;</p>
<p>&#x4E00;&#x500B;&#x6A21;&#x95C6;&#x662F;&#x4E00;&#x500B;&#x5B57;&#x7B26;&#x4E32;&#x6216;&#x4E00;&#x500B;&#x6587;&#x4EF6;&#xFF0C;&#x91CC;&#x9762;&#x5305;&#x542B;&#x4E86;&#x4E00;&#x500B;&#x6216;&#x591A;&#x500B;&#x7531;&#x96D9;&#x82B1;&#x62EC;&#x865F;&#x5305;&#x542B;&#x7684;action&#x5C0D;&#x8C61;&#x3002;&#x5927;&#x90E8;&#x5206;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x96BB;&#x662F;&#x6309;&#x9762;&#x503C;&#x6253;&#x5370;&#xFF0C;&#x4F46;&#x662F;&#x5C0D;&#x65BC;actions&#x90E8;&#x5206;&#x5C07;&#x89F8;&#x767C;&#x5176;&#x5B83;&#x7684;&#x884C;&#x7232;&#x3002;&#x8CB7;&#x500B;actions&#x5305;&#x597D;&#x4E86;&#x4E00;&#x500B;&#x7528;&#x6A21;&#x95C6;&#x8A9E;&#x8A00;&#x66F8;&#x5BEB;&#x7684;&#x8868;&#x9054;&#x5F0F;&#xFF0C;&#x4E00;&#x500B;&#x96D6;&#x7136;&#x7C21;&#x77ED;&#x4F46;&#x662F;&#x53EF;&#x4EE5;&#x8F38;&#x51FA;&#x8907;&#x96DC;&#x7684;&#x6253;&#x5370;&#x503C;&#xFF0C;&#x6A21;&#x95C6;&#x8A9E;&#x8A00;&#x5305;&#x542B;&#x901A;&#x904E;&#x9078;&#x64C7;&#x7D50;&#x69CB;&#x9AD4;&#x7684;&#x6210;&#x54E1;&#x3001;&#x8ABF;&#x7528;&#x51FD;&#x6578;&#x6216;&#x65B9;&#x6CD5;&#x3001;&#x8868;&#x9054;&#x5F0F;&#x63A7;&#x88FD;&#x6D41;if-else&#x8A9E;&#x53E5;&#x548C;range&#x5FAA;&#x74B0;&#x8A9E;&#x53E5;&#xFF0C;&#x9084;&#x6709;&#x5176;&#x5B83;&#x5BE6;&#x4F8B;&#x5316;&#x6A21;&#x95C6;&#x7B49;&#x8AF8;&#x591A;&#x7279;&#x6027;&#x3002;&#x4E0B;&#x9762;&#x662F;&#x4E00;&#x500B;&#x7C21;&#x55AE;&#x7684;&#x6A21;&#x95C6;&#x5B57;&#x7B26;&#x4E32;&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch4/issuesreport
<span class="hljs-keyword">const</span> templ = <span class="hljs-string">`{{.TotalCount}} issues:
{{range .Items}}----------------------------------------
Number: {{.Number}}
User: {{.User.Login}}
Title: {{.Title | printf &quot;%.64s&quot;}}
Age: {{.CreatedAt | daysAgo}} days
{{end}}`</span>
</code></pre>
<p>&#x9019;&#x500B;&#x6A21;&#x95C6;&#x5148;&#x6253;&#x5370;&#x5339;&#x914D;&#x5230;&#x7684;issue&#x7E3D;&#x6578;&#xFF0C;&#x7136;&#x5F8C;&#x6253;&#x5370;&#x6BCF;&#x500B;issue&#x7684;&#x7DE8;&#x865F;&#x3001;&#x5275;&#x5EFA;&#x7528;&#x6236;&#x3001;&#x6A19;&#x984C;&#x9084;&#x6709;&#x5B58;&#x5728;&#x7684;&#x6642;&#x9593;&#x3002;&#x6BCF;&#x4E00;&#x500B;action&#xFF0C;&#x90FD;&#x6709;&#x4E00;&#x500B;&#x7576;&#x524D;&#x503C;&#x7684;&#x6982;&#x5FF5;&#xFF0C;&#x5C0D;&#x61C9;&#x9EDE;&#x64CD;&#x4F5C;&#x7B26;&#xFF0C;&#x5BEB;&#x4F5C;&#x201C;.&#x201D;&#x3002;&#x7576;&#x524D;&#x503C;&#x201C;.&#x201D;&#x6700;&#x521D;&#x88AB;&#x521D;&#x59CB;&#x5316;&#x7232;&#x8ABF;&#x7528;&#x6A21;&#x95C6;&#x662F;&#x7684;&#x53C3;&#x6578;&#xFF0C;&#x5728;&#x7576;&#x524D;&#x4F8B;&#x5B50;&#x4E2D;&#x5C0D;&#x61C9;github.IssuesSearchResult&#x985E;&#x578B;&#x7684;&#x8B8A;&#x91CF;&#x3002;&#x6A21;&#x95C6;&#x4E2D;<code>{{.TotalCount}}</code>&#x5C0D;&#x61C9;action&#x5C07;&#x5C55;&#x958B;&#x7232;&#x7D50;&#x69CB;&#x9AD4;&#x4E2D;TotalCount&#x6210;&#x54E1;&#x4EE5;&#x9ED8;&#x8A8D;&#x7684;&#x65B9;&#x5F0F;&#x6253;&#x5370;&#x7684;&#x503C;&#x3002;&#x6A21;&#x95C6;&#x4E2D;<code>{{range .Items}}</code>&#x548C;<code>{{end}}</code>&#x5C0D;&#x61C9;&#x4E00;&#x500B;&#x5FAA;&#x74B0;action&#xFF0C;&#x56E0;&#x6B64;&#x5B83;&#x5011;&#x76F4;&#x63A5;&#x7684;&#x5167;&#x5BB9;&#x53EF;&#x80FD;&#x6703;&#x88AB;&#x5C55;&#x958B;&#x591A;&#x6B21;&#xFF0C;&#x5FAA;&#x74B0;&#x6BCF;&#x6B21;&#x8FED;&#x4EE3;&#x7684;&#x7576;&#x524D;&#x503C;&#x5C0D;&#x61C9;&#x7576;&#x524D;&#x7684;Items&#x5143;&#x7D20;&#x7684;&#x503C;&#x3002;</p>
<p>&#x5728;&#x4E00;&#x500B;action&#x4E2D;&#xFF0C;<code>|</code>&#x64CD;&#x4F5C;&#x7B26;&#x8868;&#x793A;&#x5C07;&#x524D;&#x4E00;&#x500B;&#x8868;&#x9054;&#x5F0F;&#x7684;&#x7D50;&#x679C;&#x4F5C;&#x7232;&#x5F8C;&#x4E00;&#x500B;&#x51FD;&#x6578;&#x7684;&#x8F38;&#x5165;&#xFF0C;&#x985E;&#x4F3C;&#x65BC;UNIX&#x4E2D;&#x7BA1;&#x9053;&#x7684;&#x6982;&#x5FF5;&#x3002;&#x5728;Title&#x9019;&#x4E00;&#x884C;&#x7684;action&#x4E2D;&#xFF0C;&#x7B2C;&#x4E8C;&#x500B;&#x64CD;&#x4F5C;&#x662F;&#x4E00;&#x500B;printf&#x51FD;&#x6578;&#xFF0C;&#x662F;&#x4E00;&#x500B;&#x57FA;&#x65BC;fmt.Sprintf&#x5BE6;&#x73FE;&#x7684;&#x5167;&#x7F6E;&#x51FD;&#x6578;&#xFF0C;&#x6240;&#x6709;&#x6A21;&#x95C6;&#x90FD;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x4F7F;&#x7528;&#x3002;&#x5C0D;&#x65BC;Age&#x90E8;&#x5206;&#xFF0C;&#x7B2C;&#x4E8C;&#x500B;&#x52D5;&#x4F5C;&#x662F;&#x4E00;&#x500B;&#x53EB;daysAgo&#x7684;&#x51FD;&#x6578;&#xFF0C;&#x901A;&#x904E;time.Since&#x51FD;&#x6578;&#x5C07;CreatedAt&#x6210;&#x54E1;&#x8F49;&#x63DB;&#x7232;&#x904E;&#x53BB;&#x7684;&#x6642;&#x9593;&#x9577;&#x5EA6;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">func</span> daysAgo(t time.Time) <span class="hljs-typename">int</span> {
<span class="hljs-keyword">return</span> <span class="hljs-typename">int</span>(time.Since(t).Hours() / <span class="hljs-number">24</span>)
}
</code></pre>
<p>&#x9700;&#x8981;&#x8A3B;&#x610F;&#x7684;&#x662F;CreatedAt&#x7684;&#x53C3;&#x6578;&#x985E;&#x578B;&#x662F;time.Time&#xFF0C;&#x4F75;&#x4E0D;&#x662F;&#x5B57;&#x7B26;&#x4E32;&#x3002;&#x4EE5;&#x540C;&#x6A23;&#x7684;&#x65B9;&#x5F0F;&#xFF0C;&#x6211;&#x5011;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x5B9A;&#x7FA9;&#x4E00;&#x4E9B;&#x65B9;&#x6CD5;&#x4F86;&#x63A7;&#x88FD;&#x5B57;&#x7B26;&#x4E32;&#x7684;&#x683C;&#x5F0F;&#x5316;&#xFF08;&#xA7;2.5&#xFF09;&#xFF0C;&#x4E00;&#x500B;&#x985E;&#x578B;&#x540C;&#x6A23;&#x53EF;&#x4EE5;&#x5B9A;&#x88FD;&#x81EA;&#x5DF1;&#x7684;JSON&#x7DE8;&#x78BC;&#x548C;&#x89E3;&#x78BC;&#x884C;&#x7232;&#x3002;time.Time&#x985E;&#x578B;&#x5C0D;&#x61C9;&#x7684;JSON&#x503C;&#x662F;&#x4E00;&#x500B;&#x6A19;&#x6E96;&#x6642;&#x9593;&#x683C;&#x5F0F;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x3002;</p>
<p>&#x751F;&#x6210;&#x6A21;&#x95C6;&#x7684;&#x8F38;&#x51FA;&#x9700;&#x8981;&#x5169;&#x500B;&#x8655;&#x7406;&#x6B65;&#x9A5F;&#x3002;&#x7B2C;&#x4E00;&#x6B65;&#x662F;&#x8981;&#x5206;&#x6790;&#x6A21;&#x95C6;&#x4F75;&#x8F49;&#x7232;&#x5167;&#x90E8;&#x8868;&#x793A;&#xFF0C;&#x7136;&#x5F8C;&#x57FA;&#x65BC;&#x6307;&#x5B9A;&#x7684;&#x8F38;&#x5165;&#x57F7;&#x884C;&#x6A21;&#x95C6;&#x3002;&#x5206;&#x6790;&#x6A21;&#x95C6;&#x90E8;&#x5206;&#x4E00;&#x822C;&#x96BB;&#x9700;&#x8981;&#x57F7;&#x884C;&#x4E00;&#x6B21;&#x3002;&#x4E0B;&#x9762;&#x7684;&#x4EE3;&#x78BC;&#x5275;&#x5EFA;&#x4F75;&#x5206;&#x6790;&#x4E0A;&#x9762;&#x5B9A;&#x7FA9;&#x7684;&#x6A21;&#x95C6;templ&#x3002;&#x8A3B;&#x610F;&#x65B9;&#x6CD5;&#x8ABF;&#x7528;&#x93C8;&#x7684;&#x9806;&#x5E8F;&#xFF1A;template.New&#x5148;&#x5275;&#x5EFA;&#x4F75;&#x8FD4;&#x8FF4;&#x4E00;&#x500B;&#x6A21;&#x95C6;&#xFF1B;Funcs&#x65B9;&#x6CD5;&#x5C07;daysAgo&#x7B49;&#x81EA;&#x5B9A;&#x7FA9;&#x51FD;&#x6578;&#x8A3B;&#x518A;&#x5230;&#x6A21;&#x95C6;&#x4E2D;&#xFF0C;&#x4F75;&#x8FD4;&#x8FF4;&#x6A21;&#x95C6;&#xFF1B;&#x6700;&#x5F8C;&#x8ABF;&#x7528;Parse&#x51FD;&#x6578;&#x5206;&#x6790;&#x6A21;&#x95C6;&#x3002;</p>
<pre><code class="lang-Go">report, err := template.New(<span class="hljs-string">&quot;report&quot;</span>).
Funcs(template.FuncMap{<span class="hljs-string">&quot;daysAgo&quot;</span>: daysAgo}).
Parse(templ)
<span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> {
log.Fatal(err)
}
</code></pre>
<p>&#x56E0;&#x7232;&#x6A21;&#x95C6;&#x901A;&#x5E38;&#x5728;&#x7DE8;&#x8B6F;&#x6642;&#x5C31;&#x6E2C;&#x8A66;&#x597D;&#x4E86;&#xFF0C;&#x5982;&#x679C;&#x6A21;&#x95C6;&#x89E3;&#x6790;&#x5931;&#x6557;&#x5C07;&#x662F;&#x4E00;&#x500B;&#x81F4;&#x547D;&#x7684;&#x932F;&#x8AA4;&#x3002;template.Must&#x8F14;&#x52A9;&#x51FD;&#x6578;&#x53EF;&#x4EE5;&#x7C21;&#x5316;&#x9019;&#x500B;&#x81F4;&#x547D;&#x932F;&#x8AA4;&#x7684;&#x8655;&#x7406;&#xFF1A;&#x5B83;&#x63A5;&#x53D7;&#x4E00;&#x500B;&#x6A21;&#x95C6;&#x548C;&#x4E00;&#x500B;error&#x985E;&#x578B;&#x7684;&#x53C3;&#x6578;&#xFF0C;&#x6AA2;&#x6E2C;error&#x662F;&#x5426;&#x7232;nil&#xFF08;&#x5982;&#x679C;&#x4E0D;&#x662F;&#x5247;&#x767C;&#x51FA;panic&#x7570;&#x5E38;&#xFF09;&#xFF0C;&#x7136;&#x5F8C;&#x8FD4;&#x8FF4;&#x50B3;&#x5165;&#x7684;&#x6A21;&#x95C6;&#x3002;&#x6211;&#x5011;&#x5C07;&#x5728;5.9&#x7BC0;&#x518D;&#x8A0E;&#x8AD6;&#x9019;&#x500B;&#x8A71;&#x984C;&#x3002;</p>
<p>&#x4E00;&#x65E6;&#x6A21;&#x95C6;&#x5DF2;&#x7D93;&#x5275;&#x5EFA;&#x3001;&#x8A3B;&#x518A;&#x4E86;daysAgo&#x51FD;&#x6578;&#x3001;&#x4F75;&#x901A;&#x904E;&#x5206;&#x6790;&#x548C;&#x6AA2;&#x6E2C;&#xFF0C;&#x6211;&#x5011;&#x5C31;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;github.IssuesSearchResult&#x4F5C;&#x7232;&#x8F38;&#x5165;&#x6E90;&#x3001;os.Stdout&#x4F5C;&#x7232;&#x8F38;&#x51FA;&#x6E90;&#x4F86;&#x57F7;&#x884C;&#x6A21;&#x95C6;&#xFF1A;</p>
<pre><code class="lang-Go"><span class="hljs-keyword">var</span> report = template.Must(template.New(<span class="hljs-string">&quot;issuelist&quot;</span>).
Funcs(template.FuncMap{<span class="hljs-string">&quot;daysAgo&quot;</span>: daysAgo}).
Parse(templ))
<span class="hljs-keyword">func</span> main() {
result, err := github.SearchIssues(os.Args[<span class="hljs-number">1</span>:])
<span class="hljs-keyword">if</span> err != <span class="hljs-constant">nil</span> {
log.Fatal(err)
}
<span class="hljs-keyword">if</span> err := report.Execute(os.Stdout, result); err != <span class="hljs-constant">nil</span> {
log.Fatal(err)
}
}
</code></pre>
<p>&#x7A0B;&#x5E8F;&#x8F38;&#x51FA;&#x4E00;&#x500B;&#x7D14;&#x6587;&#x672C;&#x5831;&#x544A;&#xFF1A;</p>
<pre><code>$ go build gopl.io/ch4/issuesreport
$ ./issuesreport repo:golang/go is:open json decoder
13 issues:
----------------------------------------
Number: 5680
User: eaigner
Title: encoding/json: set key converter on en/decoder
Age: 750 days
----------------------------------------
Number: 6050
User: gopherbot
Title: encoding/json: provide tokenizer
Age: 695 days
----------------------------------------
...
</code></pre><p>&#x73FE;&#x5728;&#x8B93;&#x6211;&#x5011;&#x8F49;&#x5230;html/template&#x6A21;&#x95C6;&#x5305;&#x3002;&#x5B83;&#x4F7F;&#x7528;&#x548C;text/template&#x5305;&#x76F8;&#x540C;&#x7684;API&#x548C;&#x6A21;&#x95C6;&#x8A9E;&#x8A00;&#xFF0C;&#x4F46;&#x662F;&#x589E;&#x52A0;&#x4E86;&#x4E00;&#x500B;&#x5C07;&#x5B57;&#x7B26;&#x4E32;&#x81EA;&#x52D5;&#x8F49;&#x7FA9;&#xFF0C;&#x4EE5;&#x907F;&#x514D;&#x8F38;&#x5165;&#x5B57;&#x7B26;&#x4E32;&#x548C;HTML&#x3001;JavaScript&#x3001;CSS&#x6216;URL&#x8A9E;&#x6CD5;&#x7523;&#x751F;&#x885D;&#x7A81;&#x7684;&#x554F;&#x984C;&#x3002;&#x9019;&#x500B;&#x7279;&#x6027;&#x53EF;&#x4EE5;&#x907F;&#x514D;&#x4E00;&#x4E9B;&#x9577;&#x671F;&#x5B58;&#x5728;&#x7684;&#x5B89;&#x5168;&#x554F;&#x984C;&#xFF0C;&#x6BD4;&#x5982;&#x901A;&#x904E;&#x751F;&#x6210;HTML&#x8A3B;&#x5165;&#x653B;&#x64CA;&#xFF0C;&#x901A;&#x904E;&#x69CB;&#x9020;&#x4E00;&#x500B;&#x542B;&#x6709;&#x60E1;&#x610F;&#x4EE3;&#x78BC;&#x7684;&#x554F;&#x984C;&#x6A19;&#x984C;&#xFF0C;&#x9019;&#x4E9B;&#x90FD;&#x53EF;&#x80FD;&#x8B93;&#x6A21;&#x95C6;&#x8F38;&#x51FA;&#x932F;&#x8AA4;&#x7684;&#x8F38;&#x51FA;&#xFF0C;&#x5F9E;&#x800C;&#x8B93;&#x4ED6;&#x5011;&#x63A7;&#x88FD;&#x9801;&#x9762;&#x3002;</p>
<p>&#x4E0B;&#x9762;&#x7684;&#x6A21;&#x95C6;&#x4EE5;HTML&#x683C;&#x5F0F;&#x8F38;&#x51FA;issue&#x5217;&#x8868;&#x3002;&#x8A3B;&#x610F;import&#x8A9E;&#x53E5;&#x7684;&#x4E0D;&#x540C;&#xFF1A;</p>
<pre><code class="lang-Go">gopl.io/ch4/issueshtml
<span class="hljs-keyword">import</span> <span class="hljs-string">&quot;html/template&quot;</span>
<span class="hljs-keyword">var</span> issueList = template.Must(template.New(<span class="hljs-string">&quot;issuelist&quot;</span>).Parse(<span class="hljs-string">`
&lt;h1&gt;{{.TotalCount}} issues&lt;/h1&gt;
&lt;table&gt;
&lt;tr style=&apos;text-align: left&apos;&gt;
&lt;th&gt;#&lt;/th&gt;
&lt;th&gt;State&lt;/th&gt;
&lt;th&gt;User&lt;/th&gt;
&lt;th&gt;Title&lt;/th&gt;
&lt;/tr&gt;
{{range .Items}}
&lt;tr&gt;
&lt;td&gt;&lt;a href=&apos;{{.HTMLURL}}&apos;&gt;{{.Number}}&lt;/td&gt;
&lt;td&gt;{{.State}}&lt;/td&gt;
&lt;td&gt;&lt;a href=&apos;{{.User.HTMLURL}}&apos;&gt;{{.User.Login}}&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href=&apos;{{.HTMLURL}}&apos;&gt;{{.Title}}&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
{{end}}
&lt;/table&gt;
`</span>))
</code></pre>
<p>&#x4E0B;&#x9762;&#x7684;&#x547D;&#x4EE4;&#x5C07;&#x5728;&#x65B0;&#x7684;&#x6A21;&#x95C6;&#x4E0A;&#x57F7;&#x884C;&#x4E00;&#x500B;&#x7A0D;&#x5FAE;&#x4E0D;&#x540C;&#x7684;&#x67FB;&#x8A62;&#xFF1A;</p>
<pre><code class="lang-Go">$ <span class="hljs-keyword">go</span> build gopl.io/ch4/issueshtml
$ ./issueshtml repo:golang/<span class="hljs-keyword">go</span> commenter:gopherbot json encoder &gt;issues.html
</code></pre>
<p>&#x5716;4.4&#x986F;&#x793A;&#x4E86;&#x5728;web&#x700F;&#x89BD;&#x5668;&#x4E2D;&#x7684;&#x6548;&#x679C;&#x5716;&#x3002;&#x6BCF;&#x500B;issue&#x5305;&#x542B;&#x5230;Github&#x5C0D;&#x61C9;&#x9801;&#x9762;&#x7684;&#x93C8;&#x63A5;&#x3002;</p>
<p><img src="../images/ch4-04.png" alt=""></p>
<p>&#x5716;4.4&#x4E2D;&#x7684;&#x6C92;&#x6709;&#x554F;&#x984C;&#x6703;&#x5C0D;HTML&#x683C;&#x5F0F;&#x7523;&#x751F;&#x885D;&#x7A81;&#xFF0C;&#x4F46;&#x662F;&#x6211;&#x5011;&#x99AC;&#x4E0A;&#x5C07;&#x770B;&#x5230;&#x6A19;&#x984C;&#x4E2D;&#x542B;&#x6709;<code>&amp;</code>&#x548C;<code>&lt;</code>&#x5B57;&#x7B26;&#x7684;issue&#x3002;&#x4E0B;&#x9762;&#x7684;&#x547D;&#x4EE4;&#x9078;&#x64C7;&#x4E86;&#x5169;&#x500B;&#x9019;&#x6A23;&#x7684;issue&#xFF1A;</p>
<pre><code>$ ./issueshtml repo:golang/go 3133 10535 &gt;issues2.html
</code></pre><p>&#x5716;4.5&#x986F;&#x793A;&#x4E86;&#x8A72;&#x67FB;&#x8A62;&#x7684;&#x7D50;&#x679C;&#x3002;&#x8A3B;&#x610F;&#xFF0C;html/template&#x5305;&#x5DF2;&#x7D93;&#x81EA;&#x52D5;&#x5C07;&#x7279;&#x6B8A;&#x5B57;&#x7B26;&#x8F49;&#x7FA9;&#xFF0C;&#x6211;&#x5011;&#x4F9D;&#x7136;&#x53EF;&#x4EE5;&#x770B;&#x5230;&#x6B63;&#x78BA;&#x7684;&#x5B57;&#x9762;&#x503C;&#x3002;&#x5982;&#x679C;&#x6211;&#x5011;&#x4F7F;&#x7528;text/template&#x5305;&#x7684;&#x8A71;&#xFF0C;&#x9019;2&#x500B;issue&#x5C07;&#x6703;&#x7523;&#x751F;&#x932F;&#x8AA4;&#xFF0C;&#x5176;&#x4E2D;&#x201C;&lt;&#x201D;&#x56DB;&#x500B;&#x5B57;&#x7B26;&#x5C07;&#x6703;&#x88AB;&#x7576;&#x4F5C;&#x5C0F;&#x65BC;&#x5B57;&#x7B26;&#x201C;&lt;&#x201D;&#x8655;&#x7406;&#xFF0C;&#x540C;&#x6642;&#x201C;<link>&#x201D;&#x5B57;&#x7B26;&#x4E32;&#x5C07;&#x6703;&#x88AB;&#x7576;&#x4F5C;&#x4E00;&#x500B;&#x93C8;&#x63A5;&#x5143;&#x7D20;&#x8655;&#x7406;&#xFF0C;&#x5B83;&#x5011;&#x90FD;&#x6703;&#x5C0E;&#x81F4;HTML&#x6587;&#x6A94;&#x7D50;&#x69CB;&#x7684;&#x6539;&#x8B8A;&#xFF0C;&#x5F9E;&#x800C;&#x5C0E;&#x81F4;&#x6709;&#x672A;&#x77E5;&#x7684;&#x98A8;&#x96AA;&#x3002;</p>
<p>&#x6211;&#x5011;&#x4E5F;&#x53EF;&#x4EE5;&#x901A;&#x904E;&#x5C0D;&#x4FE1;&#x4EFB;&#x7684;HTML&#x5B57;&#x7B26;&#x4E32;&#x4F7F;&#x7528;template.HTML&#x985E;&#x578B;&#x4F86;&#x6291;&#x88FD;&#x9019;&#x7A2E;&#x81EA;&#x52D5;&#x8F49;&#x7FA9;&#x7684;&#x884C;&#x7232;&#x3002;&#x9084;&#x6709;&#x5F88;&#x591A;&#x91C7;&#x7528;&#x985E;&#x578B;&#x547D;&#x540D;&#x7684;&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#x5C0D;&#x61C9;&#x4FE1;&#x4EFB;&#x7684;JavaScript&#x3001;CSS&#x548C;URL&#x3002;&#x4E0B;&#x9762;&#x7684;&#x7A0B;&#x5E8F;&#x6F14;&#x793A;&#x4E86;&#x5169;&#x500B;&#x4F7F;&#x7528;&#x4E0D;&#x540C;&#x985E;&#x578B;&#x7684;&#x76F8;&#x540C;&#x5B57;&#x7B26;&#x4E32;&#x7523;&#x751F;&#x7684;&#x4E0D;&#x540C;&#x7D50;&#x679C;&#xFF1A;A&#x662F;&#x4E00;&#x500B;&#x666E;&#x901A;&#x5B57;&#x7B26;&#x4E32;&#xFF0C;B&#x662F;&#x4E00;&#x500B;&#x4FE1;&#x4EFB;&#x7684;template.HTML&#x5B57;&#x7B26;&#x4E32;&#x985E;&#x578B;&#x3002;</p>
<p><img src="../images/ch4-05.png" alt=""></p>
<pre><code class="lang-Go">gopl.io/ch4/autoescape
<span class="hljs-keyword">func</span> main() {
<span class="hljs-keyword">const</span> templ = <span class="hljs-string">`&lt;p&gt;A: {{.A}}&lt;/p&gt;&lt;p&gt;B: {{.B}}&lt;/p&gt;`</span>
t := template.Must(template.New(<span class="hljs-string">&quot;escape&quot;</span>).Parse(templ))
<span class="hljs-keyword">var</span> data <span class="hljs-keyword">struct</span> {
A <span class="hljs-typename">string</span> <span class="hljs-comment">// untrusted plain text</span>
B template.HTML <span class="hljs-comment">// trusted HTML</span>
}
data.A = <span class="hljs-string">&quot;&lt;b&gt;Hello!&lt;/b&gt;&quot;</span>
data.B = <span class="hljs-string">&quot;&lt;b&gt;Hello!&lt;/b&gt;&quot;</span>
<span class="hljs-keyword">if</span> err := t.Execute(os.Stdout, data); err != <span class="hljs-constant">nil</span> {
log.Fatal(err)
}
}
</code></pre>
<p>&#x5716;4.6&#x986F;&#x793A;&#x4E86;&#x51FA;&#x73FE;&#x5728;&#x700F;&#x89BD;&#x5668;&#x4E2D;&#x7684;&#x6A21;&#x95C6;&#x8F38;&#x51FA;&#x3002;&#x6211;&#x5011;&#x770B;&#x5230;A&#x7684;&#x9ED1;&#x9AD4;&#x6A19;&#x8A18;&#x88AB;&#x8F49;&#x7FA9;&#x5931;&#x6548;&#x4E86;&#xFF0C;&#x4F46;&#x662F;B&#x6C92;&#x6709;&#x3002;</p>
<p><img src="../images/ch4-06.png" alt=""></p>
<p>&#x6211;&#x5011;&#x9019;&#x91CC;&#x96BB;&#x8B1B;&#x8FF0;&#x4E86;&#x6A21;&#x95C6;&#x7E6B;&#x7D71;&#x4E2D;&#x6700;&#x57FA;&#x672C;&#x7684;&#x7279;&#x6027;&#x3002;&#x4E00;&#x5982;&#x65E3;&#x5F80;&#xFF0C;&#x5982;&#x679C;&#x60F3;&#x4E86;&#x89E3;&#x66F4;&#x591A;&#x7684;&#x4FE1;&#x606F;&#xFF0C;&#x8ACB;&#x81EA;&#x5DF1;&#x67FB;&#x770B;&#x5305;&#x6587;&#x6A94;&#xFF1A;</p>
<pre><code>$ go doc text/template
$ go doc html/template
</code></pre><p><strong>&#x7DF4;&#x7FD2; 4.14&#xFF1A;</strong> &#x5275;&#x5EFA;&#x4E00;&#x500B;web&#x670D;&#x52D9;&#x5668;&#xFF0C;&#x67FB;&#x8A62;&#x4E00;&#x6B21;GitHub&#xFF0C;&#x7136;&#x5F8C;&#x751F;&#x6210;BUG&#x5831;&#x544A;&#x3001;&#x91CC;&#x7A0B;&#x7891;&#x548C;&#x5C0D;&#x61C9;&#x7684;&#x7528;&#x6236;&#x4FE1;&#x606F;&#x3002;</p>
</section> </section>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>複合數據類型 | Go编程语言</title> <title>複合數據類型 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="4" data-chapter-title="複合數據類型" data-filepath="ch4/ch4.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="4" data-chapter-title="複合數據類型" data-filepath="ch4/ch4.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>函數聲明 | Go编程语言</title> <title>函數聲明 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5.1" data-chapter-title="函數聲明" data-filepath="ch5/ch5-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5.1" data-chapter-title="函數聲明" data-filepath="ch5/ch5-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>遞歸 | Go编程语言</title> <title>遞歸 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5.2" data-chapter-title="遞歸" data-filepath="ch5/ch5-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5.2" data-chapter-title="遞歸" data-filepath="ch5/ch5-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>多返迴值 | Go编程语言</title> <title>多返迴值 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5.3" data-chapter-title="多返迴值" data-filepath="ch5/ch5-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5.3" data-chapter-title="多返迴值" data-filepath="ch5/ch5-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>錯誤 | Go编程语言</title> <title>錯誤 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5.4" data-chapter-title="錯誤" data-filepath="ch5/ch5-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5.4" data-chapter-title="錯誤" data-filepath="ch5/ch5-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>函數值 | Go编程语言</title> <title>函數值 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5.5" data-chapter-title="函數值" data-filepath="ch5/ch5-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5.5" data-chapter-title="函數值" data-filepath="ch5/ch5-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>匿名函數 | Go编程语言</title> <title>匿名函數 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5.6" data-chapter-title="匿名函數" data-filepath="ch5/ch5-06.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5.6" data-chapter-title="匿名函數" data-filepath="ch5/ch5-06.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>可變參數 | Go编程语言</title> <title>可變參數 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5.7" data-chapter-title="可變參數" data-filepath="ch5/ch5-07.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5.7" data-chapter-title="可變參數" data-filepath="ch5/ch5-07.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Deferred函數 | Go编程语言</title> <title>Deferred函數 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5.8" data-chapter-title="Deferred函數" data-filepath="ch5/ch5-08.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5.8" data-chapter-title="Deferred函數" data-filepath="ch5/ch5-08.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Panic異常 | Go编程语言</title> <title>Panic異常 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5.9" data-chapter-title="Panic異常" data-filepath="ch5/ch5-09.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5.9" data-chapter-title="Panic異常" data-filepath="ch5/ch5-09.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>Recover捕獲異常 | Go编程语言</title> <title>Recover捕獲異常 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5.10" data-chapter-title="Recover捕獲異常" data-filepath="ch5/ch5-10.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5.10" data-chapter-title="Recover捕獲異常" data-filepath="ch5/ch5-10.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>函數 | Go编程语言</title> <title>函數 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="5" data-chapter-title="函數" data-filepath="ch5/ch5.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="5" data-chapter-title="函數" data-filepath="ch5/ch5.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>方法聲明 | Go编程语言</title> <title>方法聲明 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="6.1" data-chapter-title="方法聲明" data-filepath="ch6/ch6-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="6.1" data-chapter-title="方法聲明" data-filepath="ch6/ch6-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>基於指針對象的方法 | Go编程语言</title> <title>基於指針對象的方法 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="6.2" data-chapter-title="基於指針對象的方法" data-filepath="ch6/ch6-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="6.2" data-chapter-title="基於指針對象的方法" data-filepath="ch6/ch6-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>通過嵌入結構體來擴展類型 | Go编程语言</title> <title>通過嵌入結構體來擴展類型 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="6.3" data-chapter-title="通過嵌入結構體來擴展類型" data-filepath="ch6/ch6-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="6.3" data-chapter-title="通過嵌入結構體來擴展類型" data-filepath="ch6/ch6-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>方法值和方法表達式 | Go编程语言</title> <title>方法值和方法表達式 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="6.4" data-chapter-title="方法值和方法表達式" data-filepath="ch6/ch6-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="6.4" data-chapter-title="方法值和方法表達式" data-filepath="ch6/ch6-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>示例: Bit數組 | Go编程语言</title> <title>示例: Bit數組 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="6.5" data-chapter-title="示例: Bit數組" data-filepath="ch6/ch6-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="6.5" data-chapter-title="示例: Bit數組" data-filepath="ch6/ch6-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>封裝 | Go编程语言</title> <title>封裝 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="6.6" data-chapter-title="封裝" data-filepath="ch6/ch6-06.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="6.6" data-chapter-title="封裝" data-filepath="ch6/ch6-06.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>方法 | Go编程语言</title> <title>方法 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="6" data-chapter-title="方法" data-filepath="ch6/ch6.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="6" data-chapter-title="方法" data-filepath="ch6/ch6.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>接口是合約 | Go编程语言</title> <title>接口是合約 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.1" data-chapter-title="接口是合約" data-filepath="ch7/ch7-01.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.1" data-chapter-title="接口是合約" data-filepath="ch7/ch7-01.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>接口類型 | Go编程语言</title> <title>接口類型 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.2" data-chapter-title="接口類型" data-filepath="ch7/ch7-02.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.2" data-chapter-title="接口類型" data-filepath="ch7/ch7-02.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>實現接口的條件 | Go编程语言</title> <title>實現接口的條件 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.3" data-chapter-title="實現接口的條件" data-filepath="ch7/ch7-03.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.3" data-chapter-title="實現接口的條件" data-filepath="ch7/ch7-03.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>flag.Value接口 | Go编程语言</title> <title>flag.Value接口 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.4" data-chapter-title="flag.Value接口" data-filepath="ch7/ch7-04.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.4" data-chapter-title="flag.Value接口" data-filepath="ch7/ch7-04.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>接口值 | Go编程语言</title> <title>接口值 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.5" data-chapter-title="接口值" data-filepath="ch7/ch7-05.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.5" data-chapter-title="接口值" data-filepath="ch7/ch7-05.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>sort.Interface接口 | Go编程语言</title> <title>sort.Interface接口 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.6" data-chapter-title="sort.Interface接口" data-filepath="ch7/ch7-06.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.6" data-chapter-title="sort.Interface接口" data-filepath="ch7/ch7-06.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>http.Handler接口 | Go编程语言</title> <title>http.Handler接口 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.7" data-chapter-title="http.Handler接口" data-filepath="ch7/ch7-07.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.7" data-chapter-title="http.Handler接口" data-filepath="ch7/ch7-07.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>error接口 | Go编程语言</title> <title>error接口 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.8" data-chapter-title="error接口" data-filepath="ch7/ch7-08.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.8" data-chapter-title="error接口" data-filepath="ch7/ch7-08.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>示例: 表達式求值 | Go编程语言</title> <title>示例: 表達式求值 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.9" data-chapter-title="示例: 表達式求值" data-filepath="ch7/ch7-09.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.9" data-chapter-title="示例: 表達式求值" data-filepath="ch7/ch7-09.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>類型斷言 | Go编程语言</title> <title>類型斷言 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.10" data-chapter-title="類型斷言" data-filepath="ch7/ch7-10.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.10" data-chapter-title="類型斷言" data-filepath="ch7/ch7-10.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>基於類型斷言識别錯誤類型 | Go编程语言</title> <title>基於類型斷言識别錯誤類型 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.11" data-chapter-title="基於類型斷言識别錯誤類型" data-filepath="ch7/ch7-11.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.11" data-chapter-title="基於類型斷言識别錯誤類型" data-filepath="ch7/ch7-11.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>通過類型斷言査詢接口 | Go编程语言</title> <title>通過類型斷言査詢接口 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.12" data-chapter-title="通過類型斷言査詢接口" data-filepath="ch7/ch7-12.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.12" data-chapter-title="通過類型斷言査詢接口" data-filepath="ch7/ch7-12.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

View File

@@ -5,7 +5,7 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>類型分支 | Go编程语言</title> <title>類型分支 | Go语言圣经</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content=""> <meta name="description" content="">
<meta name="generator" content="GitBook 2.5.2"> <meta name="generator" content="GitBook 2.5.2">
@@ -48,7 +48,7 @@
<body> <body>
<div class="book" data-level="7.13" data-chapter-title="類型分支" data-filepath="ch7/ch7-13.md" data-basepath=".." data-revision="Mon Dec 28 2015 16:03:52 GMT+0800 (中国标准时间)"> <div class="book" data-level="7.13" data-chapter-title="類型分支" data-filepath="ch7/ch7-13.md" data-basepath=".." data-revision="Thu Dec 31 2015 16:18:40 GMT+0800 (中国标准时间)">
<div class="book-summary"> <div class="book-summary">
@@ -575,7 +575,7 @@
<b>4.2.</b> <b>4.2.</b>
切片 Slice
</a> </a>
@@ -590,7 +590,7 @@
<b>4.3.</b> <b>4.3.</b>
字典 Map
</a> </a>
@@ -2013,7 +2013,7 @@
<!-- Title --> <!-- Title -->
<h1> <h1>
<i class="fa fa-circle-o-notch fa-spin"></i> <i class="fa fa-circle-o-notch fa-spin"></i>
<a href="../" >Go编程语言</a> <a href="../" >Go语言圣经</a>
</h1> </h1>
</div> </div>

Some files were not shown because too many files have changed in this diff Show More