gpt4 book ai didi

go - func 关键字后的两个函数名称 - 它是什么?

转载 作者:IT王子 更新时间:2023-10-29 02:25:13 25 4
gpt4 key购买 nike

最后一个函数怎么理解?为什么我们在 func 声明后使用不同的函数名称?如何使用这些功能?像 main 函数中那样使用它是错误的。

package main

import (
"fmt"
)

func main() {
fmt.Println(incrementer()) //error
}

func incrementer() func() int { //what is it?!
i := 0
return func() int {
i++
return i
}
}

最佳答案

这只是意味着该函数正在返回一个不带参数并返回整数的函数。这就是

... func() int 

您签名的一部分是这样说的。

您收到的错误是因为您的 fmt.Println 无法打印函数。为了证明这一点,你可以看到如果你调用,你会得到同样的错误,

func main() {
fmt.Println(foo)
}

func foo() int {
return 1
}

如果您这样调用您的函数,可能会更清楚地看到发生了什么。

func main() {
myIncrementer := incrementer()
fmt.Println(myIncrementer()) // Prints 1
}

你在哪里创建增量器,它是一个函数,然后调用返回 1 的函数 function。

关于go - func 关键字后的两个函数名称 - 它是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53940351/

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