我对返回值使用“延迟”有一些问题。我尝试以不同的方式运行一个测试函数(只是 i 的定义不同),但结果不同。所以,我对不同的返回值感到困惑。这是问题所在:
功能 1:
package main
import "fmt"
func main() {
fmt.Println("a return:", a()) // return value: 0
}
func a() int {
var i int
defer func() {
i++
fmt.Println("a defer1:", i) // print " a defer1: 1"
}()
return i
}
返回值:
a defer1: 1
a return: 0
功能2:
package main
import "fmt"
func main() {
fmt.Println("a return:", a()) // return value: 1
}
func a() (i int) {
defer func() {
i++
fmt.Println("a defer1:", i) // print " a defer1: 1"
}()
return i
}
返回值:
a defer1: 1
a return: 1
一个返回值是0,另一个是1。所以,问题是这两个函数有什么区别。
 翻翻过去那场雪
翻翻过去那场雪 
					素胚勾勒不出你
 随时随地看视频慕课网APP
随时随地看视频慕课网APP
相关分类