Are modules analogous to namespaces in C# or packages in Java?
Justin Whear
justin at economicmodeling.com
Wed Jan 1 10:42:06 PST 2014
On Wed, 01 Jan 2014 17:43:53 +0000, Afshin wrote:
> Modules confuse me as a way to organize code.
>
> If a module is composed of multiple classes, it seems that the module
> semantics in D encourages putting all those classes in one file.
>
> Can someone explain how to organize a set of classes into a module (or
> namespace, or package) so that each class can have their own file?
Read about modules here: http://dlang.org/module.html
Modules are not like namespaces: "Modules have a one-to-one
correspondence with source files." A module cannot span multiple files.
You may organize code into modules however you like; idiomatically for D,
code is grouped into modules by functionality (e.g. std.algorithm) and
may contain many classes, structures, and free functions.
While modules cannot be defined across multiple files, they do nest; you
could have a file structure like this:
src/
myproject/
core/
class1.d
class2.d
With the following modules:
myproject.core.class1, myproject.core.class2
A package.d module would allow other code to simply import myproject.core,
accomplishing a similar effect.
More information about the Digitalmars-d-learn
mailing list