On Friday, 15 February 2013 at 10:01:35 UTC, Jonathan M Davis
wrote:
On Friday, February 15, 2013 10:51:00 Colin Grogan wrote:
Does anyone here have any alternatives for me so that in my
'engine' or 'main' classes I can simply write:
import utils;
and still have my source files neatly laid out in manageable
chunks?
The only way that you can have a single import which imports
multiple modules
is if the module that you're importing publicly imports the
other modules. And
there is no way to do something like
import utils.*;
And remember that modules always correspond to files, and
packages correspond
to folders, so there's a one-to-one correspondance between what
you'd import
and what you'd put in the file system (unless you use public
imports to make it
so that importing a module imports stuff from outside that
module).
- Jonathan M Davis
I was actually going to post a similar question, but it looks
like this would be a better place to post!
I know that a module can only be defined once, but I feel like
there could be times where it would be helpful to be able to have
the same module defined in separate files and I have an example.
Right now, I am working on a binding and I am making use of the
package access modifier to allow me to use internal objects that
the end user will not be able to access directly. Problem is, my
source files have many classes and are pretty convoluted. If I
could define the module more than once I could split the source
files up and it would be easier to work on, but I would still be
able to share package declared objects and methods between
modules like I do now. If I put the source files into their own
packages, they are now hidden from source files I want them to be
used in.
Here's what I mean:
mainpackage.system
mainpackage.window
mainpackage.graphics
Anything defined with package is accessible between these.
But...
mainpackage.system.thing1
mainpackage.system.thing2
mainpackage.window.thing3
etc...
Now things defined as package in mainpackage.system.thing1 are
only accessible in mainpackage.system, but can't be accessed in
mainpackage.window.
Thoughts?