mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2024-11-28 00:58:54 +00:00
deploy: b8d7c32434
This commit is contained in:
parent
dbb890f448
commit
05241c14cf
@ -238,7 +238,7 @@ var s string
|
|||||||
var s = ""
|
var s = ""
|
||||||
var s string = ""
|
var s string = ""
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>用哪种不用哪种,为什么呢?第一种形式,是一条短变量声明,最简洁,但只能用在函数内部,而不能用于包变量。第二种形式依赖于字符串的默认初始化零值机制,被初始化为 <code>""</code>。第三种形式用得很少,除非同时声明多个变量。第四种形式显式地标明变量的类型,当变量类型与初值类型相同时,类型冗余,但如果两者类型不同,变量类型就必须了。实践中一般使用前两种形式中的某个,初始值重要的话就显式地指定变量的类型,否则使用隐式初始化。</p>
|
<p>用哪种不用哪种,为什么呢?第一种形式,是一条短变量声明,最简洁,但只能用在函数内部,而不能用于包变量。第二种形式依赖于字符串的默认初始化零值机制,被初始化为 <code>""</code>。第三种形式用得很少,除非同时声明多个变量。第四种形式显式地标明变量的类型,当变量类型与初值类型相同时,类型冗余,但如果两者类型不同,变量类型就必须了。实践中一般使用前两种形式中的某个,初始值重要的话就显式地指定变量的值,否则指定类型使用隐式初始化。</p>
|
||||||
<p>如前文所述,每次循环迭代字符串 <code>s</code> 的内容都会更新。<code>+=</code> 连接原字符串、空格和下个参数,产生新字符串,并把它赋值给 <code>s</code>。<code>s</code> 原来的内容已经不再使用,将在适当时机对它进行垃圾回收。</p>
|
<p>如前文所述,每次循环迭代字符串 <code>s</code> 的内容都会更新。<code>+=</code> 连接原字符串、空格和下个参数,产生新字符串,并把它赋值给 <code>s</code>。<code>s</code> 原来的内容已经不再使用,将在适当时机对它进行垃圾回收。</p>
|
||||||
<p>如果连接涉及的数据量很大,这种方式代价高昂。一种简单且高效的解决方案是使用 <code>strings</code> 包的 <code>Join</code> 函数:</p>
|
<p>如果连接涉及的数据量很大,这种方式代价高昂。一种简单且高效的解决方案是使用 <code>strings</code> 包的 <code>Join</code> 函数:</p>
|
||||||
<p><u><i>gopl.io/ch1/echo3</i></u></p>
|
<p><u><i>gopl.io/ch1/echo3</i></u></p>
|
||||||
|
@ -369,7 +369,7 @@ var s string
|
|||||||
var s = ""
|
var s = ""
|
||||||
var s string = ""
|
var s string = ""
|
||||||
</code></pre>
|
</code></pre>
|
||||||
<p>用哪种不用哪种,为什么呢?第一种形式,是一条短变量声明,最简洁,但只能用在函数内部,而不能用于包变量。第二种形式依赖于字符串的默认初始化零值机制,被初始化为 <code>""</code>。第三种形式用得很少,除非同时声明多个变量。第四种形式显式地标明变量的类型,当变量类型与初值类型相同时,类型冗余,但如果两者类型不同,变量类型就必须了。实践中一般使用前两种形式中的某个,初始值重要的话就显式地指定变量的类型,否则使用隐式初始化。</p>
|
<p>用哪种不用哪种,为什么呢?第一种形式,是一条短变量声明,最简洁,但只能用在函数内部,而不能用于包变量。第二种形式依赖于字符串的默认初始化零值机制,被初始化为 <code>""</code>。第三种形式用得很少,除非同时声明多个变量。第四种形式显式地标明变量的类型,当变量类型与初值类型相同时,类型冗余,但如果两者类型不同,变量类型就必须了。实践中一般使用前两种形式中的某个,初始值重要的话就显式地指定变量的值,否则指定类型使用隐式初始化。</p>
|
||||||
<p>如前文所述,每次循环迭代字符串 <code>s</code> 的内容都会更新。<code>+=</code> 连接原字符串、空格和下个参数,产生新字符串,并把它赋值给 <code>s</code>。<code>s</code> 原来的内容已经不再使用,将在适当时机对它进行垃圾回收。</p>
|
<p>如前文所述,每次循环迭代字符串 <code>s</code> 的内容都会更新。<code>+=</code> 连接原字符串、空格和下个参数,产生新字符串,并把它赋值给 <code>s</code>。<code>s</code> 原来的内容已经不再使用,将在适当时机对它进行垃圾回收。</p>
|
||||||
<p>如果连接涉及的数据量很大,这种方式代价高昂。一种简单且高效的解决方案是使用 <code>strings</code> 包的 <code>Join</code> 函数:</p>
|
<p>如果连接涉及的数据量很大,这种方式代价高昂。一种简单且高效的解决方案是使用 <code>strings</code> 包的 <code>Join</code> 函数:</p>
|
||||||
<p><u><i>gopl.io/ch1/echo3</i></u></p>
|
<p><u><i>gopl.io/ch1/echo3</i></u></p>
|
||||||
|
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