为了账号安全,请及时绑定邮箱和手机立即绑定

作为结构成员的函数

作为结构成员的函数

Go
杨魅力 2023-06-05 17:06:37
我正在尝试使功能成为我的结构中的成员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}

}


查看完整回答
反对 回复 2023-06-05
  • 1 回答
  • 0 关注
  • 98 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信