gpt4 book ai didi

Golang 返回函数

转载 作者:IT王子 更新时间:2023-10-29 01:16:42 24 4
gpt4 key购买 nike

Can anyone explain why 0's and 1's are printed and not anything else? Thank you!

func makeFunction(name string) func() {
fmt.Println("00000")
return func() {
makeFunction2("abcef")
}
}

func makeFunction2(name string) func() {
fmt.Println("11111")
return func() {
makeFunction3("safsf")
}
}

func makeFunction3(name string) func() {
fmt.Println("33333")
return func() {
fmt.Printf("444444")
}
}

func main() {
f := makeFunction("hellooo")
f()
}

谁能解释为什么打印的是 0 和 1 而不是其他任何东西?谢谢!

最佳答案

让我们按照程序流程:

  1. main 开始。
  2. main 调用 makeFunction
  3. makeFunction 打印 00000,并返回一个匿名函数。
  4. 回到main,我们调用之前调用返回的匿名函数。
  5. 匿名函数调用makeFunction2
  6. makeFunction2 打印 11111,并返回一个匿名函数。
  7. main 返回。

因为返回值在上面的第6步之后被丢弃了,所以没有打印其他东西。

关于Golang 返回函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48289821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com