project
---|source
------ |controllers
-------|models
-------|lib
----------|field.d
-------|app.d
Run Code Online (Sandbox Code Playgroud)
我运行配音,但我收到此错误:
错误:文件中的模块字段...与文件源/ lib/field.d中的另一个模块字段冲突
field.d看起来像这样:
module field;
class Field(T){
this(T def_val,bool required,string help_text);
bool validate();
private bool _validate();
}
Run Code Online (Sandbox Code Playgroud)
始终将模块语句放在将要导入的任何文件中,并始终使用包名称以避免冲突.
因此,不是简单地调用它,而是module field;
调用它module myapplication.field;
,甚至module myapplication.lib.field;
,当然,在使用它时,也可以使用相同的全名导入它.
我不确定dub是否会像那样工作(我不会亲自使用它),但该语言允许你给模块任何名称,即使它与文件名不匹配,这有助于这样的情况,避免名称冲突.
一般来说,如果你给他们所有完整的,唯一的名字,然后立即编译它们:dmd app.d lib/field.d [and any other files your project has]
事情就会奏效.