我有这个自定义函数类型 MyFuncType,它接受 MyStruct 类型的单个参数:
type MyStruct struct {
SomeVar string
}
type MyFuncType func(MyStruct)
var fn MyFuncType
fn = func(ms MyStruct) {//...}
然后我想我可以改变 MyFuncType 的定义来传递额外的参数:
type MyFuncType func(MyStruct, ...interface{})
var fn MyFuncType
fn = func(ms MyStruct, suffix string, anythigIWant int) {//...}
现在编译器抱怨 fn 的类型不兼容。好的,我想我可以理解可变数量的参数不能定义函数签名......但即使有下面的定义:
type MyFuncType func(MyStruct, interface{})
这是同一首歌。最后,无法将 interface{} 用作自定义函数类型中的参数的 [any]type 还是我在这里遗漏了什么?
我的解决方法是将 MyFuncType 类型的函数的实现附加到提供额外所需数据的结构中。
ABOUTYOU
相关分类