Skip to content

Commit 1eabce0

Browse files
committed
Update 02.3.md
As per my test, it should be "channel, slice and map" which are like the pointer mechanism. And string is immutable object in Golang as well. And I did some tests to verify that point. see http://kanglecjr.iteye.com/admin/blogs/2176839
1 parent 4a5eff8 commit 1eabce0

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

zh/02.3.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ Go函数支持变参。接受变参的函数是有着不定数量的参数的。
321321

322322
- 传指针使得多个函数能操作同一个对象。
323323
- 传指针比较轻量级 (8bytes),只是传内存地址,我们可以用指针传递体积大的结构体。如果用参数值传递的话, 在每次copy上面就会花费相对较多的系统开销(内存和时间)。所以当你要传递大的结构体的时候,用指针是一个明智的选择。
324-
- Go语言中`string``slice``map`这三种类型的实现机制类似指针,所以可以直接传递,而不用取地址后传递指针。(注:若函数需改变`slice`的长度,则仍需要取地址传递指针)
324+
- Go语言中`channel``slice``map`这三种类型的实现机制类似指针,所以可以直接传递,而不用取地址后传递指针。(注:若函数需改变`slice`的长度,则仍需要取地址传递指针)
325325

326326
### defer
327327
Go语言中有种不错的设计,即延迟(defer)语句,你可以在函数中添加多个defer语句。当函数执行到最后时,这些defer语句会按照逆序执行,最后该函数返回。特别是当你在进行一些打开资源的操作时,遇到错误需要提前返回,在返回前你需要关闭相应的资源,不然很容易造成资源泄露等问题。如下代码所示,我们一般写打开一个资源是这样操作的:

0 commit comments

Comments
 (0)