我想使用 defer 和函数参数中参数的最新值来调用该函数。我怀疑运行这段代码:
package main
import (
"fmt"
)
func main() {
s := "ABC"
defer fmt.Println(s)
s = "DEF"
}
Run Code Online (Sandbox Code Playgroud)
我会得到DEF。但我得到的是ABC。有什么办法可以得到DEF吗?
围绕要捕获的变量创建一个闭包:
https://play.golang.org/p/W4xt_KSOJNj
s := "ABC"
defer func() {
fmt.Println(s)
}()
s = "DEF"
Run Code Online (Sandbox Code Playgroud)