我对返回值使用“延迟”有一些问题。我尝试以不同的方式运行一个测试函数(只是 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。所以,问题是这两个函数有什么区别。
素胚勾勒不出你
相关分类