summary refs log tree commit diff stats
path: root/doc
diff options
context:
space:
mode:
authorHitesh Jasani <hitesh@grokken.com>2014-01-16 14:42:12 -0500
committerHitesh Jasani <hitesh@grokken.com>2014-01-16 14:42:12 -0500
commit74af6351b2b1888cc1437e158cf29851f8e6465e (patch)
tree80c0ad4948b3ae4d5292e99240ff85858a18e69d /doc
parent1280c56f386111b542c8f0effdd3e5cbc5e84622 (diff)
downloadNim-74af6351b2b1888cc1437e158cf29851f8e6465e.tar.gz
Add docs for constraining and qualifying imports.
Diffstat (limited to 'doc')
-rw-r--r--doc/tut1.txt35
1 files changed, 35 insertions, 0 deletions
diff --git a/doc/tut1.txt b/doc/tut1.txt
index 2070c69d6..52d46d9bd 100644
--- a/doc/tut1.txt
+++ b/doc/tut1.txt
@@ -1582,6 +1582,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
 --------------
 
@@ -1592,6 +1603,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
 -----------------