在 Golang 中可以做这样的事情吗?
package main
import "fmt"
type myFunType func(x int) int
var myFun myFunType = myFunType { return x } // (1)
func doSomething(f myFunType) {
fmt.Println(f(10))
}
func main() {
doSomething(myFun)
}
换句话说,是否可以使用函数类型别名来声明函数类型变量,而不需要重复签名?或者,有没有办法在创建函数类型的变量时不总是重新输入整个函数签名?
上面的代码示例(我希望它与下面的代码示例相同(将 line 替换(1)为 line (2)))会导致编译错误syntax error: unexpected return, expecting expression。
package main
import "fmt"
type myFunType func(x int) int
var myFun myFunType = func(x int) int { return 2 * x } // (2)
func doSomething(f myFunType) {
fmt.Println(f(10))
}
func main() {
doSomething(myFun)
}
阿波罗的战车
倚天杖
相关分类