1.关键字chan通道
2.关键字defer
①若函数中有多个defer,其执行顺序为先进后出,可以理解为栈。
package main
import "fmt"
func main() {
for i := 0; i < 5; i++ {
defer fmt.Println(i)
}
}
Output:
4
3
2
1
0
②return会做几件事
1.给返回值赋值;
2.调用defer表达式;
3.返回调用函数;
若defer表达式有返回值,将会被丢弃。
package main
import "fmt"
func main() {
fmt.Println(increase(1))
}
func increase(d int) (ret int) {
defer func() {
ret++
}()
return d
}
Output:
2
网友评论