mirror of
https://github.com/zhwei820/learn.lianglianglee.com.git
synced 2025-11-17 14:43:43 +08:00
fix img
This commit is contained in:
@@ -349,11 +349,11 @@ modifyMap函数:p的内存地址为0xc000060180
|
||||
<h3>类型的零值</h3>
|
||||
<p>在 Go 语言中,定义变量要么通过声明、要么通过 make 和 new 函数,不一样的是 make 和 new 函数属于显式声明并初始化。如果我们声明的变量没有显式声明初始化,那么该变量的默认值就是对应类型的零值。</p>
|
||||
<p>从下面的表格可以看到,可以称为引用类型的零值都是 nil。</p>
|
||||
<p><img src="assets/Ciqc1F_QqlyAItQJAABQMWd6pSU650.png" alt="112.png" /></p>
|
||||
<p><img src="assets/Ciqc1F_QqlyAItQJAABQMWd6pSU650.png" alt="png" /></p>
|
||||
<p>(各种类型的零值)</p>
|
||||
<h3>总结</h3>
|
||||
<p>在 Go 语言中,<strong>函数的参数传递只有值传递</strong>,而且传递的实参都是原始数据的一份拷贝。如果拷贝的内容是值类型的,那么在函数中就无法修改原始数据;如果拷贝的内容是指针(或者可以理解为引用类型 map、chan 等),那么就可以在函数中修改原始数据。</p>
|
||||
<p><img src="assets/CgqCHl_QqryAEqYQAAVkYmbnDIM013.png" alt="Lark20201209-184447.png" /></p>
|
||||
<p><img src="assets/CgqCHl_QqryAEqYQAAVkYmbnDIM013.png" alt="png" /></p>
|
||||
<p>所以我们在创建一个函数的时候,要根据自己的真实需求决定参数的类型,以便更好地服务于我们的业务。</p>
|
||||
<p>这节课中,我讲解 chan 的时候没有举例,你自己可以自定义一个有 chan 参数的函数,作为练习题。</p>
|
||||
<p>下节课我将介绍“内存分配:new 还是 make?什么情况下该用谁?”记得来听课!</p>
|
||||
|
||||
Reference in New Issue
Block a user