如何理解最后的功能?为什么我们在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
}
}
Run Code Online (Sandbox Code Playgroud)
它只是意味着函数返回一个不带参数的函数并返回一个整数.那是什么的
... func() int
Run Code Online (Sandbox Code Playgroud)
你签名的一部分是说.
您得到的错误是因为您fmt.Println无法打印功能.为了显示这一点,你可以看到,如果你打电话,你会得到同样的错误,
func main() {
fmt.Println(foo)
}
func foo() int {
return 1
}
Run Code Online (Sandbox Code Playgroud)
如果你像这样调用你的函数,可能会更清楚地看到发生了什么.
func main() {
myIncrementer := incrementer()
fmt.Println(myIncrementer()) // Prints 1
}
Run Code Online (Sandbox Code Playgroud)
在创建增量器的地方,这是一个函数,然后调用返回1的函数函数.
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |