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。 在这里插入图片描述