mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-11-24 07:14:47 +00:00
Compare commits
2 Commits
3337171795
...
7ae51ed0e2
Author | SHA1 | Date | |
---|---|---|---|
|
7ae51ed0e2 | ||
|
b125bdbc1d |
@ -168,7 +168,7 @@
|
||||
<p>Unicode字符rune类型是和int32等价的类型,通常用于表示一个Unicode码点。这两个名称可以互换使用。同样byte也是uint8类型的等价类型,byte类型一般用于强调数值是一个原始的数据而不是一个小的整数。</p>
|
||||
<p>最后,还有一种无符号的整数类型uintptr,没有指定具体的bit大小但是足以容纳指针。uintptr类型只有在底层编程时才需要,特别是Go语言和C语言函数库或操作系统接口相交互的地方。我们将在第十三章的unsafe包相关部分看到类似的例子。</p>
|
||||
<p>不管它们的具体大小,int、uint和uintptr是不同类型的兄弟类型。其中int和int32也是不同的类型,即使int的大小也是32bit,在需要将int当作int32类型的地方需要一个显式的类型转换操作,反之亦然。</p>
|
||||
<p>其中有符号整数采用2的补码形式表示,也就是最高bit位用来表示符号位,一个n-bit的有符号数的值域是从$-2^{n-1}$到$2^{n-1}-1$。无符号整数的所有bit位都用于表示非负数,值域是0到$2^n-1$。例如,int8类型整数的值域是从-128到127,而uint8类型整数的值域是从0到255。</p>
|
||||
<p>其中有符号整数采用2的补码形式表示,也就是最高bit位用来表示符号位,一个n-bit的有符号数的值域是从-2<sup>n-1</sup>到2<sup>n-1</sup>-1。无符号整数的所有bit位都用于表示非负数,值域是0到2<sup>n</sup>-1。例如,int8类型整数的值域是从-128到127,而uint8类型整数的值域是从0到255。</p>
|
||||
<p>下面是Go语言中关于算术运算、逻辑运算和比较运算的二元运算符,它们按照优先级递减的顺序排列:</p>
|
||||
<pre><code>* / % << >> & &^
|
||||
+ - | ^
|
||||
|
@ -199,8 +199,8 @@ errorf(linenum, "undefined: %s", name) // "Line 12: undefined: co
|
||||
</code></pre>
|
||||
<p>interface{}表示函数的最后一个参数可以接收任意类型,我们会在第7章详细介绍。</p>
|
||||
<p><strong>练习5.15:</strong> 编写类似sum的可变参数函数max和min。考虑不传参时,max和min该如何处理,再编写至少接收1个参数的版本。</p>
|
||||
<p>**练习5.16:**编写多参数版本的strings.Join。</p>
|
||||
<p>**练习5.17:**编写多参数版本的ElementsByTagName,函数接收一个HTML结点树以及任意数量的标签名,返回与这些标签名匹配的所有元素。下面给出了2个例子:</p>
|
||||
<p><strong>练习5.16:</strong> 编写多参数版本的strings.Join。</p>
|
||||
<p><strong>练习5.17:</strong> 编写多参数版本的ElementsByTagName,函数接收一个HTML结点树以及任意数量的标签名,返回与这些标签名匹配的所有元素。下面给出了2个例子:</p>
|
||||
<pre><code class="language-Go">func ElementsByTagName(doc *html.Node, name...string) []*html.Node
|
||||
images := ElementsByTagName(doc, "img")
|
||||
headings := ElementsByTagName(doc, "h1", "h2", "h3", "h4")
|
||||
|
@ -1550,7 +1550,7 @@ func init() {
|
||||
<p>Unicode字符rune类型是和int32等价的类型,通常用于表示一个Unicode码点。这两个名称可以互换使用。同样byte也是uint8类型的等价类型,byte类型一般用于强调数值是一个原始的数据而不是一个小的整数。</p>
|
||||
<p>最后,还有一种无符号的整数类型uintptr,没有指定具体的bit大小但是足以容纳指针。uintptr类型只有在底层编程时才需要,特别是Go语言和C语言函数库或操作系统接口相交互的地方。我们将在第十三章的unsafe包相关部分看到类似的例子。</p>
|
||||
<p>不管它们的具体大小,int、uint和uintptr是不同类型的兄弟类型。其中int和int32也是不同的类型,即使int的大小也是32bit,在需要将int当作int32类型的地方需要一个显式的类型转换操作,反之亦然。</p>
|
||||
<p>其中有符号整数采用2的补码形式表示,也就是最高bit位用来表示符号位,一个n-bit的有符号数的值域是从$-2^{n-1}$到$2^{n-1}-1$。无符号整数的所有bit位都用于表示非负数,值域是0到$2^n-1$。例如,int8类型整数的值域是从-128到127,而uint8类型整数的值域是从0到255。</p>
|
||||
<p>其中有符号整数采用2的补码形式表示,也就是最高bit位用来表示符号位,一个n-bit的有符号数的值域是从-2<sup>n-1</sup>到2<sup>n-1</sup>-1。无符号整数的所有bit位都用于表示非负数,值域是0到2<sup>n</sup>-1。例如,int8类型整数的值域是从-128到127,而uint8类型整数的值域是从0到255。</p>
|
||||
<p>下面是Go语言中关于算术运算、逻辑运算和比较运算的二元运算符,它们按照优先级递减的顺序排列:</p>
|
||||
<pre><code>* / % << >> & &^
|
||||
+ - | ^
|
||||
@ -4235,8 +4235,8 @@ errorf(linenum, "undefined: %s", name) // "Line 12: undefined: co
|
||||
</code></pre>
|
||||
<p>interface{}表示函数的最后一个参数可以接收任意类型,我们会在第7章详细介绍。</p>
|
||||
<p><strong>练习5.15:</strong> 编写类似sum的可变参数函数max和min。考虑不传参时,max和min该如何处理,再编写至少接收1个参数的版本。</p>
|
||||
<p>**练习5.16:**编写多参数版本的strings.Join。</p>
|
||||
<p>**练习5.17:**编写多参数版本的ElementsByTagName,函数接收一个HTML结点树以及任意数量的标签名,返回与这些标签名匹配的所有元素。下面给出了2个例子:</p>
|
||||
<p><strong>练习5.16:</strong> 编写多参数版本的strings.Join。</p>
|
||||
<p><strong>练习5.17:</strong> 编写多参数版本的ElementsByTagName,函数接收一个HTML结点树以及任意数量的标签名,返回与这些标签名匹配的所有元素。下面给出了2个例子:</p>
|
||||
<pre><code class="language-Go">func ElementsByTagName(doc *html.Node, name...string) []*html.Node
|
||||
images := ElementsByTagName(doc, "img")
|
||||
headings := ElementsByTagName(doc, "h1", "h2", "h3", "h4")
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user