How to organize using modules?

Jacob Carlborg doob at me.com
Tue Dec 31 04:02:08 PST 2013


On 2013-12-31 07:01, Afshin wrote:
> Is it possible to describe modules in terms of packages (as found in Java)?
>
> The features that Java packages have that I can't seem to get in D are:
> 1) You can have classes that are in the same package, but kept in
> separate files.

See below.

> 2) You can import many classes using the '*' syntax.

You cannot do that in D. You can do something similar as described here:

http://forum.dlang.org/thread/garueoxkjjqgqpqqhrmc@forum.dlang.org#post-sdueirvfgsxjtahmapla:40forum.dlang.org

> Is this possible in D?
>
> What I understand is that if I have ClassA and ClassB in Module1, and I
> want to keep the classes in separate files, then I have to use the
> following module statements:
>
> in ClassA:
> module Module1.ClassA;
>
> in ClassB:
> module Module1.ClassB;
>
> But now it becomes cumbersome to use the classes because now I have to
> import them explicitely:
>
> import Module1.ClassA;
> import Module1.ClassB;

Yes, that's how it works in D. That's because in Java there's a 
one-to-one mapping of classes and files. In D you can have many classes 
(or other declarations) in the same file. I suggest you use this approach.

> If I wanted to use:
> import Module1;
>
> Then it seems I have to have ClassA and ClassB in the same D file.
>
> Am I missing something?


-- 
/Jacob Carlborg


More information about the Digitalmars-d-learn mailing list