我正在尝试使功能成为我的结构中的成员type myStruct struct { myFun func(interface{}) interface{}}func testFunc1(b bool) bool { //some functionality here //returns a boolean at the end}func testFunc2(s string) int { //some functionality like measuring the string length // returns an integer indicating the length}func main() { fr := myStruct{testFunc1} gr := myStruct{testFunc2}}我收到错误:Cannot use testFunc (type func(b bool) bool) as type func(interface{}) interface{}Inspection info: Reports composite literals with incompatible types and values.我无法弄清楚为什么会收到此错误。
1 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
您的代码的问题是结构中的声明和testFunc. interface{}接受并返回的函数与interface{}接受并返回的函数的类型不同bool,因此初始化失败。您粘贴的编译器错误消息就在此处。
这将起作用:
package main
type myStruct struct {
myFun func(bool) bool
}
func testFunc(b bool) bool {
//some functionality here
//returns a boolean at the end
return true
}
func main() {
fr := myStruct{testFunc}
}
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消