mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2025-12-17 19:24:19 +08:00
deploy: 56bbafbd08
This commit is contained in:
@@ -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>unsafe.Sizeof, Alignof 和 Offsetof - 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>13.1. unsafe.Sizeof, Alignof 和 Offsetof</h2>
|
||||
<p>unsafe.Sizeof函数返回操作数在内存中的字节大小,参数可以是任意类型的表达式,但是它并不会对表达式进行求值。一个Sizeof函数调用是一个对应uintptr类型的常量表达式,因此返回的结果可以用作数组类型的长度大小,或者用作计算其他的常量。</p>
|
||||
@@ -670,10 +670,10 @@ Sizeof(x.c) = 24 Alignof(x.c) = 8 Offsetof(x.c) = 8
|
||||
<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 = "ch13/ch13-01.md"
|
||||
@@ -681,7 +681,7 @@ Sizeof(x.c) = 24 Alignof(x.c) = 8 Offsetof(x.c) = 8
|
||||
|
||||
<!-- 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>
|
||||
|
||||
@@ -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>unsafe.Pointer - 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>13.2. unsafe.Pointer</h2>
|
||||
<p>大多数指针类型会写成<code>*T</code>,表示是“一个指向T类型变量的指针”。unsafe.Pointer是特别定义的一种指针类型(译注:类似C语言中的<code>void*</code>类型的指针),它可以包含任意类型变量的地址。当然,我们不可以直接通过<code>*p</code>来获取unsafe.Pointer指针指向的真实变量的值,因为我们并不知道变量的具体类型。和普通指针一样,unsafe.Pointer指针也是可以比较的,并且支持和nil常量比较判断是否为空指针。</p>
|
||||
@@ -626,10 +626,10 @@ func (Value) InterfaceData() [2]uintptr // (index 1)
|
||||
<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 = "ch13/ch13-02.md"
|
||||
@@ -637,7 +637,7 @@ func (Value) InterfaceData() [2]uintptr // (index 1)
|
||||
|
||||
<!-- 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>
|
||||
|
||||
@@ -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>13.3. 示例: 深度相等判断</h2>
|
||||
<p>来自reflect包的DeepEqual函数可以对两个值进行深度相等判断。DeepEqual函数使用内建的==比较操作符对基础类型进行相等判断,对于复合类型则递归该变量的每个基础类型然后做类似的比较判断。因为它可以工作在任意的类型上,甚至对于一些不支持==操作运算符的类型也可以工作,因此在一些测试代码中广泛地使用该函数。比如下面的代码是用DeepEqual函数比较两个字符串slice是否相等。</p>
|
||||
@@ -685,10 +685,10 @@ fmt.Println(Equal(a, c)) // "false"
|
||||
<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 = "ch13/ch13-03.md"
|
||||
@@ -696,7 +696,7 @@ fmt.Println(Equal(a, c)) // "false"
|
||||
|
||||
<!-- 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>
|
||||
|
||||
@@ -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>通过cgo调用C代码 - 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>13.4. 通过cgo调用C代码</h2>
|
||||
<p>Go程序可能会遇到要访问C语言的某些硬件驱动函数的场景,或者是从一个C++语言实现的嵌入式数据库查询记录的场景,或者是使用Fortran语言实现的一些线性代数库的场景。C语言作为一个通用语言,很多库会选择提供一个C兼容的API,然后用其他不同的编程语言实现(译者:Go语言需要也应该拥抱这些巨大的代码遗产)。</p>
|
||||
@@ -754,10 +754,10 @@ $ ./bzipper < /usr/share/dict/words | bunzip2 | sha256sum
|
||||
<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 = "ch13/ch13-04.md"
|
||||
@@ -765,7 +765,7 @@ $ ./bzipper < /usr/share/dict/words | bunzip2 | sha256sum
|
||||
|
||||
<!-- 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>
|
||||
|
||||
@@ -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>13.5. 几点忠告</h2>
|
||||
<p>我们在前一章结尾的时候,我们警告要谨慎使用reflect包。那些警告同样适用于本章的unsafe包。</p>
|
||||
@@ -587,10 +587,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 = "ch13/ch13-05.md"
|
||||
@@ -598,7 +598,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>
|
||||
|
||||
@@ -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>第13章 底层编程</h1>
|
||||
<p>Go语言的设计包含了诸多安全策略,限制了可能导致程序运行出错的用法。编译时类型检查可以发现大多数类型不匹配的操作,例如两个字符串做减法的错误。字符串、map、slice和chan等所有的内置类型,都有严格的类型转换规则。</p>
|
||||
@@ -591,10 +591,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 = "ch13/ch13.md"
|
||||
@@ -602,7 +602,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>
|
||||
|
||||
Reference in New Issue
Block a user