如何转换具有相同签名的函数类型?

peterh-恢复莫妮卡:

在一个包中,我有这个:

package pkg1

type SomeFuncType func (a interface{}, b interface{}) int

func PkgApiCall (x SomeFuncType) {
   ...
}

在使用此程序包的代码中,我有一些非常相似的内容:

type MyFuncType func (a interface{}, b interface{}) int

现在,我要调用pkg1.PkgApiCall(),但使用MyFuncTypeas参数的变量:

package mypackage

func doingSomeThing(x MyFuncType) {
  pkg1.PkgApiCall(x)
}

它不会编译。我得到了错误

./src1.go:97:7: error: incompatible type in initialization (cannot use type mypackage.MyFuncType as type pkg1.SomeFuncType)

我该如何克服?这些函数类型定义具有完全相同签名的函数。

tkausl:

通常的类型转换适用于函数类型,也适用于非函数类型:

pkg1.PkgApiCall(SomeFuncType(x))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何实现具有参数相同,但不同签名的方法

具有混合返回/签名类型的Go函数

如何在golang中彼此转换相同的签名类型?

具有可变参数计数的函数的TypeScript类型签名

不同的类型在CIL中具有相同的签名

具有相同签名和捕获的常见Lambda类型

如何遍历具有相同类型的记录类型中的所有元素(记录类型的纯函数迭代器)

具有默认参数的Kotlin函数的类型签名

不同的函数如何具有相同的名称?

从具有相同签名的函数指针转换为函数指针,但参数的附加限定条件除外

如何从具有相同签名的方法或扩展函数中调用顶级函数?

如何将具有相同字段类型的列表转换为R中的data.frame

处理具有相同签名但参数含义不同的函数

我的函数的扩展函数缺少参数类型;不适用于具有相同签名的其他人

如何解析具有相同标签名称的XML

具有相同签名和参数类型的Scala模糊引用

TS如何解释具有相同命名函数属性但签名不同的类型的交集(与接口相同会产生错误)?

转换具有类签名中通用属性的具体类型

Typescript-具有通用类型函数的索引签名

Kotlin允许与具有不同返回类型的属性getter相同的函数签名

如何键入带注释的“函数包装器”(返回与参数具有相同签名的函数的函数)

如何编写与副本构造函数具有相同签名的C ++构造函数?

如何在WEB API中具有两种具有相同签名的DELETE请求类型

如何访问与全局函数具有相同功能签名的类中的全局函数?

Java类具有2个具有相同函数签名但返回类型不同的方法

如何表达具有返回相同类型类值的函数的类型类

如何从具有相同签名的 main 调用基类函数?

如何将任何对象的列表转换为具有相同类型的数组?

如何将 void 指针转换为 rust 中具有任意签名的函数