Par*_*bay 6 coding-style module d naming-conventions
我来自Java背景,包装问题如下:
比方说,我可以在同一个包下面有很多文件com.parobay.io.然后我可以将其作为库分发,用户将使用它:
import com.parobay.io.Input;
import com.parobay.io.Output;
Run Code Online (Sandbox Code Playgroud)
要么
import com.parobay.io.*; // to import everything
Run Code Online (Sandbox Code Playgroud)
所以我可以com.parobay.io在多个文件中定义一个"module()和类".
那么如何在D中实现同样的目标呢?我是否必须创建一个目录,com\parobay\io并且有两个文件被调用Input.d,Output.d或者是否有更聪明的方法?
在Java中,规则非常严格,因此很难弄错.在D中有很多可能性.那么有没有任何约定,比如每个文件一个类,或者文件名等于类的名称?
您可以选择与Java基本相同,但请记住以下项目:
导入foo.*在D中不起作用,但是您可以package.d在目录中调用一个文件,该文件可以手动列出public import foo.Input; public import foo.Output;等,这样就可以导入整个包.
总是module com.parobay.io.Input;在导入的任何文件的顶部放置一行或任何行.不要指望它只是基于目录结构和文件名工作.目录结构实际上并不是绝对必要的,它只是一个容易找到文件的约定.将module在名为上面一行是权威的事情,编译器检查.
D模块通常具有所有小写名称,但如果您愿意,可以使用大写名称.我认为使用像类名这样的小写名称是很好的,所以你可以调用模块io.input和类Input.这种约定的原因有时在从系统转移到系统时文件名丢失.但开发人员非常清楚案例,所以在实践中,无论哪种方式都应该有效
每个文件一个类可以正常工作,或者您可以将两个紧密耦合的类放在同一个文件中(如果它们位于同一个文件中,它们将可以访问彼此的私有成员).
有关详细信息,请参阅此页面:http://dlang.org/module特别搜索标题"Package Module"