How to organize using modules?
TheFlyingFiddle
theflyingfiddle at gmail.com
Mon Dec 30 22:29:14 PST 2013
On Tuesday, 31 December 2013 at 06:01:21 UTC, 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.
> 2) You can import many classes using the '*' syntax.
>
> 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;
>
>
>
> 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?
It is possible if you have your file system set up like this.
Module1
-ClassA.d
-ClassB.d
-package.d
//In Module1/ClassA.d
module Module1.ClassA;
class ClassA { ... }
//In Module1/ClassB.d
module Module1.ClassB;
class ClassB { ... }
//In Module1/package.d
module Module1;
public import Module1.ClassA;
public import Module1.ClassB;
//In main.d
module main;
import Module1; //This will import both ClassA and ClassB.
Very important! The name of the file with the public imports must
be package.d
More information about the Digitalmars-d-learn
mailing list