Haxe - 如何将泛型类传递给参数

Thu*_*ini 2 generics parameters haxe

function test(cls:Class<Dynamic>) {}

test(Array<Float>); // Unexpected )
Run Code Online (Sandbox Code Playgroud)

我必须Array<Float>作为类类型传递.但是,这失败了:

出乎意料)

我怎样才能使它工作?

Gam*_*a11 5

这是不可能的,类似于在调用函数时不能显式指定函数的类型参数(参见此处).你可以Array改为:

test(Array);
Run Code Online (Sandbox Code Playgroud)

获得编译的一种方法是使用typedef:

typedef FloatArray = Array<Float>;

test(FloatArray);
Run Code Online (Sandbox Code Playgroud)

但是,Class<T>并不真正关心类型参数Array,所以没有必要这样做:

typedef FloatArray = Array<Float>;
typedef IntArray = Array<Int>;

trace(FloatArray == IntArray); // true
Run Code Online (Sandbox Code Playgroud)