Merge pull request #818 from hiteshjasani/pr_devel_doc_import_constraints

Add docs for constraining and qualifying imports.
This commit is contained in:
Simon Hafner
2014-01-16 12:16:48 -08:00

View File

@@ -1592,6 +1592,17 @@ rules apply:
write(stdout, x(3)) # ambiguous: which `x` is to call?
Excluding symbols
-----------------
The normal ``import`` statement will bring in all exported symbols.
These can be limited by naming symbols which should be excluded with
the ``except`` qualifier.
.. code-block:: nimrod
import mymodule except y
From statement
--------------
@@ -1602,6 +1613,30 @@ exported symbols. An alternative that only imports listed symbols is the
.. code-block:: nimrod
from mymodule import x, y, z
The ``from`` statement can also force namespace qualification on
symbols, thereby making symbols available, but needing to be qualified
to be used.
.. code-block:: nimrod
from mymodule import x, y, z
x() # use x without any qualification
.. code-block:: nimrod
from mymodule import nil
mymodule.x() # must qualify x with the module name as prefix
x() # using x here without qualification is a compile error
Since module names are generally long to be descriptive, you can also
define a shorter alias to use when qualifying symbols.
.. code-block:: nimrod
from mymodule as m import nil
m.x() # m is aliasing mymodule
Include statement
-----------------