可以将自定义类命名为"Map",并仍然引用Haxe"Map"类?

Jon*_*com 4 haxe

是否可以创建一个名为Map的类:

// src/test/Map.hx
package test;
class Map {
    public function new ( a : Int, b : Int : c : Int ) {
        trace( a + b + c );
    }
}
Run Code Online (Sandbox Code Playgroud)

然后以某种方式在Foo.hx中访问这个新Map类和原始的Haxe Map构造

// src/test/Foo.hx
package test;
class Foo {
    var map1 : test.Map         = new test.Map( 1, 2, 3 );
    var map2 : Map<Int, String> = [ 0 => "Hello" ];
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为map2类型自动解析为test.Map(而不是Haxe),因为Foo.hx是test包含新Map类的包的一部分.

如果Haxe Map构造是包的一部分,这很容易(可以说package_name.Map).但是,它没有包装.所以有没有办法访问这两个?

kLa*_*abz 6

使用Haxe 4,您将可以使用haxe.ds.Map.

同时,你应该能够访问haxe Mapstd.Map.

  • 我认为还有一个解决方案是`import Map as StdMap` (2认同)