Skip to content

Commit 967aa7e

Browse files
authored
Merge pull request KeKe-Li#743 from KeKe-Li/feature-keke
Update golang.01.md
2 parents 7237bf6 + 017578f commit 967aa7e

File tree

1 file changed

+2
-3
lines changed

1 file changed

+2
-3
lines changed

src/chapter07/golang.01.md

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ func main() {
114114
* Golang在编译时的逃逸分析可以减少gc的压力,不逃逸的对象分配在栈上,当函数返回时就回收了资源,不需要gc标记清除。
115115
* 如果你定义的对象的方法上有同步锁,但在运行时,却只有一个线程在访问,此时逃逸分析后的机器码,会去掉同步锁运行,提高效率。
116116

117-
还是上面的那段程序代码,我们可以执行 `go build -gcflags '-m -l' test_stack.go`来进行逃逸分析,输出结果如下
117+
还是上面的那段程序代码,我们可以执行 `go build -gcflags '-m -l' test_stack.go`来进行逃逸分析,输出结果如下:
118118

119119
```bash
120120
# command-line-arguments
@@ -165,7 +165,7 @@ func main() {
165165
}
166166
```
167167

168-
返回值ret是按值传递的,执行的是栈拷贝不存在逃逸.
168+
返回值ret是按值传递的,执行的是栈拷贝,不存在逃逸.
169169

170170
* 按址传递
171171

@@ -248,7 +248,6 @@ func r() *Result{
248248
return &ret
249249
}
250250
```
251-
252251
只有返回ret对象的引用时才会把对象分配在堆上,我们不必要在一开始的时候就显式地把ret定义为指针,因为这样会对阅读代码也会容易产生误导.
253252

254253
```go

0 commit comments

Comments
 (0)