f1()、f2()、f3() 函数分别返回什么?
func f1() (r int) {
defer func() {
r++
}()
return 0
}
func f2() (r int) {
t := 5
defer func() {
t = t + 5
}()
return t
}
func f3() (r int) {
defer func(r int) {
r = r + 5
}(r)
return 1
}
f1()、f2()、f3() 函数分别返回什么?
func f1() (r int) {
defer func() {
r++
}()
return 0
}
func f2() (r int) {
t := 5
defer func() {
t = t + 5
}()
return t
}
func f3() (r int) {
defer func(r int) {
r = r + 5
}(r)
return 1
}
`单行代码`
//闭包修改了r的值,所以结果是1
func f1() (r int) { defer func() { r++ }() return 0 }
//闭包修改了t的值,对r没有任何影响,所以结果是5
func f2() (r int) { t := 5 defer func() { t = t + 5 }() return t }
//闭包修改了r的值,但是func(r int)参数中的值,非返回值r的值,所以结果是1
func f3() (r int) { defer func(r int) { r = r + 5 }(r) return 1 }
学习
mark
1 5 1