This commit is contained in:
github-actions[bot]
2024-08-13 00:15:53 +00:00
parent 420994d26a
commit 24eb7f8fea
159 changed files with 2739 additions and 2739 deletions

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>接口是合约 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.1. 接口约定</h2>
<p>目前为止,我们看到的类型都是具体的类型。一个具体的类型可以准确的描述它所代表的值,并且展示出对类型本身的一些操作方式:就像数字类型的算术操作,切片类型的取下标、添加元素和范围获取操作。具体的类型还可以通过它的内置方法提供额外的行为操作。总的来说,当你拿到一个具体的类型时你就知道它的本身是什么和你可以用它来做什么。</p>
@@ -649,10 +649,10 @@ type Stringer interface {
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-01.md"
@@ -660,7 +660,7 @@ type Stringer interface {
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>接口类型 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.2. 接口类型</h2>
<p>接口类型具体描述了一系列方法的集合,一个实现了这些方法的具体类型是这个接口类型的实例。</p>
@@ -620,10 +620,10 @@ type ReadWriteCloser interface {
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-02.md"
@@ -631,7 +631,7 @@ type ReadWriteCloser interface {
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>实现接口的条件 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.3. 实现接口的条件</h2>
<p>一个类型如果拥有一个接口需要的所有方法,那么这个类型就实现了这个接口。例如,<code>*os.File</code>类型实现了io.ReaderWriterCloser和ReadWriter接口。<code>*bytes.Buffer</code>实现了ReaderWriter和ReadWriter这些接口但是它没有实现Closer接口因为它不具有Close方法。Go的程序员经常会简要的把一个具体的类型描述成一个特定的接口类型。举个例子<code>*bytes.Buffer</code>是io.Writer<code>*os.Files</code>是io.ReadWriter。</p>
@@ -685,10 +685,10 @@ type Video interface {
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-03.md"
@@ -696,7 +696,7 @@ type Video interface {
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>flag.Value接口 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.4. flag.Value接口</h2>
<p>在本章我们会学到另一个标准的接口类型flag.Value是怎么帮助命令行标记定义新的符号的。思考下面这个会休眠特定时间的程序</p>
@@ -678,10 +678,10 @@ Usage of ./tempflag:
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-04.md"
@@ -689,7 +689,7 @@ Usage of ./tempflag:
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>接口值 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.5. 接口值</h2>
<p>概念上讲一个接口的值接口值由两个部分组成一个具体的类型和那个类型的值。它们被称为接口的动态类型和动态值。对于像Go语言这种静态类型的语言类型是编译期的概念因此一个类型不是一个值。在我们的概念模型中一些提供每个类型信息的值被称为类型描述符比如类型的名称和方法。在一个接口值中类型部分代表与之相关类型的描述符。</p>
@@ -681,10 +681,10 @@ f(buf) // OK
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-05.md"
@@ -692,7 +692,7 @@ f(buf) // OK
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>sort.Interface接口 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.6. sort.Interface接口</h2>
<p>排序操作和字符串格式化一样是很多程序经常使用的操作。尽管一个最短的快排程序只要15行就可以搞定但是一个健壮的实现需要更多的代码并且我们不希望每次我们需要的时候都重写或者拷贝这些代码。</p>
@@ -741,10 +741,10 @@ fmt.Println(sort.IntsAreSorted(values)) // &quot;false&quot;
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-06.md"
@@ -752,7 +752,7 @@ fmt.Println(sort.IntsAreSorted(values)) // &quot;false&quot;
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>http.Handler接口 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.7. http.Handler接口</h2>
<p>在第一章中我们粗略的了解了怎么用net/http包去实现网络客户端§1.5和服务器§1.7。在这个小节中我们会对那些基于http.Handler接口的服务器API做更进一步的学习</p>
@@ -732,10 +732,10 @@ mux.HandleFunc(&quot;/price&quot;, db.price)
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-07.md"
@@ -743,7 +743,7 @@ mux.HandleFunc(&quot;/price&quot;, db.price)
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>error接口 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.8. error接口</h2>
<p>从本书的开始我们就已经创建和使用过神秘的预定义error类型而且没有解释它究竟是什么。实际上它就是interface类型这个类型有一个返回错误信息的单一方法</p>
@@ -635,10 +635,10 @@ fmt.Println(err) // &quot;no such file or directory&quot;
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-08.md"
@@ -646,7 +646,7 @@ fmt.Println(err) // &quot;no such file or directory&quot;
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>示例: 表达式求值 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.9. 示例: 表达式求值</h2>
<p>在本节中我们会构建一个简单算术表达式的求值器。我们将使用一个接口Expr来表示Go语言中任意的表达式。现在这个接口不需要有方法但是我们后面会为它增加一些。</p>
@@ -835,10 +835,10 @@ func parseAndCheck(s string) (eval.Expr, error) {
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-09.md"
@@ -846,7 +846,7 @@ func parseAndCheck(s string) (eval.Expr, error) {
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>类型断言 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.10. 类型断言</h2>
<p>类型断言是一个使用在接口值上的操作。语法上它看起来像x.(T)被称为断言类型这里x表示一个接口的类型和T表示一个类型。一个类型断言检查它操作对象的动态类型是否和断言的类型匹配。</p>
@@ -617,10 +617,10 @@ b, ok := w.(*bytes.Buffer) // failure: !ok, b == nil
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-10.md"
@@ -628,7 +628,7 @@ b, ok := w.(*bytes.Buffer) // failure: !ok, b == nil
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>基于类型断言识别错误类型 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.11. 基于类型断言区别错误类型</h2>
<p>思考在os包中文件操作返回的错误集合。I/O可以因为任何数量的原因失败但是有三种经常的错误必须进行不同的处理文件已经存在对于创建操作找不到文件对于读取操作和权限拒绝。os包中提供了三个帮助函数来对给定的错误值表示的失败进行分类</p>
@@ -640,10 +640,10 @@ fmt.Println(os.IsNotExist(err)) // &quot;true&quot;
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-11.md"
@@ -651,7 +651,7 @@ fmt.Println(os.IsNotExist(err)) // &quot;true&quot;
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>通过类型断言查询接口 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.12. 通过类型断言询问行为</h2>
<p>下面这段逻辑和net/http包中web服务器负责写入HTTP头字段例如&quot;Content-type:text/html&quot;的部分相似。io.Writer接口类型的变量w代表HTTP响应写入它的字节最终被发送到某个人的web浏览器上。</p>
@@ -642,10 +642,10 @@ func formatOneValue(x interface{}) string {
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-12.md"
@@ -653,7 +653,7 @@ func formatOneValue(x interface{}) string {
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>类型分支 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.13. 类型分支</h2>
<p>接口被以两种不同的方式使用。在第一个方式中以io.Readerio.Writerfmt.Stringersort.Interfacehttp.Handler和error为典型一个接口的方法表达了实现这个接口的具体类型间的相似性但是隐藏了代码的细节和这些具体类型本身的操作。重点在于方法上而不是具体的类型上。</p>
@@ -651,10 +651,10 @@ default: // ...
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-13.md"
@@ -662,7 +662,7 @@ default: // ...
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>示例: 基于标记的XML解码 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.14. 示例: 基于标记的XML解码</h2>
<p>第4.5章节展示了如何使用encoding/json包中的Marshal和Unmarshal函数来将JSON文档转换成Go语言的数据结构。encoding/xml包提供了一个相似的API。当我们想构造一个文档树的表示时使用encoding/xml包会很方便但是对于很多程序并不是必须的。encoding/xml包也提供了一个更低层的基于标记的API用于XML解码。在基于标记的样式中解析器消费输入并产生一个标记流四个主要的标记类型StartElementEndElementCharData和Comment每一个都是encoding/xml包中的具体类型。每一个对(*xml.Decoder).Token的调用都返回一个标记。</p>
@@ -696,10 +696,10 @@ type Element struct {
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-14.md"
@@ -707,7 +707,7 @@ type Element struct {
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>补充几点 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h2>7.15. 一些建议</h2>
<p>当设计一个新的包时新手Go程序员总是先创建一套接口然后再定义一些满足它们的具体类型。这种方式的结果就是有很多的接口它们中的每一个仅只有一个实现。不要再这么做了。这种接口是不必要的抽象它们也有一个运行时损耗。你可以使用导出机制§6.6)来限制一个类型的方法或一个结构体的字段是否在包外可见。接口只有当有两个或两个以上的具体类型必须以相同的方式进行处理时才需要。</p>
@@ -586,10 +586,10 @@
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7-15.md"
@@ -597,7 +597,7 @@
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>

View File

@@ -1,7 +1,7 @@
<!DOCTYPE HTML>
<html lang="zh" class="sidebar-visible no-js light">
<head>
<!-- Book generated using https://github.com/wa-lang/mnbook -->
<!-- Book generated using https://github.com/wa-lang/wabook -->
<meta charset="UTF-8">
<title>接口 - Go语言圣经</title>
<!-- Custom HTML head -->
@@ -12,17 +12,17 @@
<link rel="icon" href="../favicon.svg">
<link rel="shortcut icon" href="../favicon.png">
<link rel="stylesheet" href="../static/mnbook/css/variables.css">
<link rel="stylesheet" href="../static/mnbook/css/general.css">
<link rel="stylesheet" href="../static/mnbook/css/chrome.css">
<link rel="stylesheet" href="../static/mnbook/css/print.css" media="print">
<link rel="stylesheet" href="../static/wabook/css/variables.css">
<link rel="stylesheet" href="../static/wabook/css/general.css">
<link rel="stylesheet" href="../static/wabook/css/chrome.css">
<link rel="stylesheet" href="../static/wabook/css/print.css" media="print">
<!-- Fonts -->
<link rel="stylesheet" href="../static/mnbook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/mnbook/fonts/fonts.css">
<link rel="stylesheet" href="../static/wabook/FontAwesome/css/font-awesome.css">
<link rel="stylesheet" href="../static/wabook/fonts/fonts.css">
<!-- Highlight.js Stylesheets -->
<link rel="stylesheet" href="../static/mnbook/highlight.css">
<link rel="stylesheet" href="../static/mnbook/tomorrow-night.css">
<link rel="stylesheet" href="../static/mnbook/ayu-highlight.css">
<link rel="stylesheet" href="../static/wabook/highlight.css">
<link rel="stylesheet" href="../static/wabook/tomorrow-night.css">
<link rel="stylesheet" href="../static/wabook/ayu-highlight.css">
<!-- Custom theme stylesheets -->
</head>
@@ -36,15 +36,15 @@
<!-- Work around some values being stored in localStorage wrapped in quotes -->
<script type="text/javascript">
try {
var theme = localStorage.getItem('mnbook-theme');
var sidebar = localStorage.getItem('mnbook-sidebar');
var theme = localStorage.getItem('wabook-theme');
var sidebar = localStorage.getItem('wabook-sidebar');
if (theme.startsWith('"') && theme.endsWith('"')) {
localStorage.setItem('mnbook-theme', theme.slice(1, theme.length - 1));
localStorage.setItem('wabook-theme', theme.slice(1, theme.length - 1));
}
if (sidebar.startsWith('"') && sidebar.endsWith('"')) {
localStorage.setItem('mnbook-sidebar', sidebar.slice(1, sidebar.length - 1));
localStorage.setItem('wabook-sidebar', sidebar.slice(1, sidebar.length - 1));
}
} catch (e) { }
</script>
@@ -52,7 +52,7 @@
<!-- Set the theme before any content is loaded, prevents flash -->
<script type="text/javascript">
var theme;
try { theme = localStorage.getItem('mnbook-theme'); } catch(e) { }
try { theme = localStorage.getItem('wabook-theme'); } catch(e) { }
if (theme === null || theme === undefined) { theme = default_theme; }
var html = document.querySelector('html');
html.classList.remove('no-js')
@@ -66,7 +66,7 @@
var html = document.querySelector('html');
var sidebar = 'hidden';
if (document.body.clientWidth >= 1080) {
try { sidebar = localStorage.getItem('mnbook-sidebar'); } catch(e) { }
try { sidebar = localStorage.getItem('wabook-sidebar'); } catch(e) { }
sidebar = sidebar || 'visible';
}
html.classList.remove('sidebar-visible');
@@ -528,7 +528,7 @@
<div class="sidetoc"><nav class="pagetoc"></nav></div>
<main>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>MnBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/mnbook">https://github.com/wa-lang/mnbook</a></em></li></ul><hr>
<ul dir="auto"><li><em>凹语言(Go实现, 面向WASM设计): <a href="https://github.com/wa-lang/wa">https://github.com/wa-lang/wa</a></em></li><li><em>WaBook(Go语言实现的MD电子书构建工具): <a href="https://github.com/wa-lang/wabook">https://github.com/wa-lang/wabook</a></em></li></ul><hr>
<h1>第7章 接口</h1>
<p>接口类型是对其它类型行为的抽象和概括;因为接口类型不会和特定的实现细节绑定在一起,通过这种抽象的方式我们可以让我们的函数更加灵活和更具有适应能力。</p>
@@ -585,10 +585,10 @@
<script type="text/javascript">
window.playground_copyable = true;
</script>
<script src="../static/mnbook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/mnbook/book.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/mark.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/clipboard.min.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/highlight.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/book.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
var pagePath = "ch7/ch7.md"
@@ -596,7 +596,7 @@
<!-- Custom JS scripts -->
<script src="../static/mnbook/giscus.js" type="text/javascript" charset="utf-8"></script>
<script src="../static/wabook/giscus.js" type="text/javascript" charset="utf-8"></script>
</body>