如何在嵌套目录(Haxe)中导入包?
How to import packages in nested directories (Haxe)?
我在名为 Main.hx 的文件中有一个主要的 Haxe 脚本。在同一个脚本中,我可以导入任何现有的包,包括同一目录中被视为包的其他 Haxe 脚本,但在嵌套目录中声明的 Haxe 脚本(应被视为包)不适用于 import
(我几乎可以肯定他们被忽略了)。
Haxe 只是说 Test
不存在。当我尝试获取 wow.test.Test
时,它说的是同样的事情,test.Test
也是如此。我也试过把./wow/test.hx
的包名设置为wow.test
和test
,也是一样的情况。
它只有在我将 test.hx
抛出 ./wow
并正常导入它的东西时才有效,例如:test.*
而不是 wow.test.*
。
我的测试结构:
——./Main.hx——
package;
import haxe.unit.TestCase;
import openfl.display.Sprite;
import native.*;
import wow.test.*;
class Main extends Sprite
{
public function new ()
{
super ();
new Test();
}
}
——./wow/test.hx——
package;
class Test
{
public function new ()
{
trace("Dum !!");
}
}
或者我需要配置吗?
Haxe 包是文件夹,它们包含的文件称为 modules。一个模块本身可以包含一个或多个 类型 .
引用the manual:
The (dot-)path to a type consists of the package, the module name and the type name. Its general form is pack1.pack2.packN.ModuleName.TypeName
您的示例中存在两个问题:
- 模块名称必须以大写字母开头,如果将模块
test.hx
重命名为 Test.hx
,则可以导入带有 import wow.Test.Test
的类型。但由于模块名称和类型名称相同,您可以省略模块名称并仅使用 import wow.Test
.
- 您需要在模块测试中声明包:
package wow;
我在名为 Main.hx 的文件中有一个主要的 Haxe 脚本。在同一个脚本中,我可以导入任何现有的包,包括同一目录中被视为包的其他 Haxe 脚本,但在嵌套目录中声明的 Haxe 脚本(应被视为包)不适用于 import
(我几乎可以肯定他们被忽略了)。
Haxe 只是说 Test
不存在。当我尝试获取 wow.test.Test
时,它说的是同样的事情,test.Test
也是如此。我也试过把./wow/test.hx
的包名设置为wow.test
和test
,也是一样的情况。
它只有在我将 test.hx
抛出 ./wow
并正常导入它的东西时才有效,例如:test.*
而不是 wow.test.*
。
我的测试结构:
——./Main.hx——
package;
import haxe.unit.TestCase;
import openfl.display.Sprite;
import native.*;
import wow.test.*;
class Main extends Sprite
{
public function new ()
{
super ();
new Test();
}
}
——./wow/test.hx——
package;
class Test
{
public function new ()
{
trace("Dum !!");
}
}
或者我需要配置吗?
Haxe 包是文件夹,它们包含的文件称为 modules。一个模块本身可以包含一个或多个 类型 .
引用the manual:
The (dot-)path to a type consists of the package, the module name and the type name. Its general form is pack1.pack2.packN.ModuleName.TypeName
您的示例中存在两个问题:
- 模块名称必须以大写字母开头,如果将模块
test.hx
重命名为Test.hx
,则可以导入带有import wow.Test.Test
的类型。但由于模块名称和类型名称相同,您可以省略模块名称并仅使用import wow.Test
. - 您需要在模块测试中声明包:
package wow;