Generics 获取泛型类型的函数参数的泛型类方法不适用于Void
我遇到了一个对我来说很奇怪的问题。。是虫子吗 当使用将泛型类型的函数作为参数的方法创建泛型类时,我得到了一个奇怪的错误 作废->作废应为作废->作废 当泛型类型为Void时 如果泛型类型为Int,则可以正常工作 有人有什么想法来解决这个问题吗Generics 获取泛型类型的函数参数的泛型类方法不适用于Void,generics,haxe,Generics,Haxe,我遇到了一个对我来说很奇怪的问题。。是虫子吗 当使用将泛型类型的函数作为参数的方法创建泛型类时,我得到了一个奇怪的错误 作废->作废应为作废->作废 当泛型类型为Void时 如果泛型类型为Int,则可以正常工作 有人有什么想法来解决这个问题吗 我不确定这是否是一个bug,它可能只是与Haxe中类型系统的工作方式有关。在任何情况下,您都可以使用一种变通方法,即使用一个参数为显式类型Void->Void的函数,必要时在类的其他函数中使用参数化类型T。变通方法: static public funct
我不确定这是否是一个bug,它可能只是与Haxe中类型系统的工作方式有关。在任何情况下,您都可以使用一种变通方法,即使用一个参数为显式类型Void->Void的函数,必要时在类的其他函数中使用参数化类型T。变通方法:
static public function main() {
test2.test(cast passedFunc);
}
.您可以欺骗类型推断几乎忽略缺少的参数,如下所示:
class Test {
static var test2 = new Test2();
static public function main() {
test2.test(passedFunc);
}
static function passedFunc(?unused):Void {
trace("passedFunc");
}
}
class Test2<T> {
public function new():Void {}
public function test(func: T->Void) {
trace("Test2.testFunc(T)");
}
}
class Test {
static var test2 = new Test2();
static public function main() {
test2.test(passedFunc);
}
static function passedFunc(?unused):Void {
trace("passedFunc");
}
}
class Test2<T> {
public function new():Void {}
public function test(func: T->Void) {
trace("Test2.testFunc(T)");
}
}