2022-07-28:以下go语言代码输出什么?A:AA;B:AB;C:BA;D:BB。
package main
import (
"fmt"
)
func main() {
f := func() { fmt.Print("A") }
defer f()
f = func() { fmt.Print("B") }
defer f()
}
答案选C。虽然都是f,但是有两次赋值操作,所以两次f不是同一个f。
2022-07-28:以下go语言代码输出什么?A:AA;B:AB;C:BA;D:BB。
package main
import (
"fmt"
)
func main() {
f := func() { fmt.Print("A") }
defer f()
f = func() { fmt.Print("B") }
defer f()
}
答案选C。虽然都是f,但是有两次赋值操作,所以两次f不是同一个f。