summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorapense <apense@users.noreply.github.com>2015-06-24 23:56:35 -0400
committerapense <apense@users.noreply.github.com>2015-06-24 23:56:35 -0400
commit4e129324f61bfff97fafc019e54809a84d85e9fe (patch)
treef10652a47235a2e5b6d16886d51ed0f11dea160f
parentbdd5a8c05ed1a92a4eb3056b4852df695d622285 (diff)
downloadNim-4e129324f61bfff97fafc019e54809a84d85e9fe.tar.gz
Added example for var overloading
Simple example to demonstrate overloading in case technical lingo is confusing
-rw-r--r--doc/manual/type_rel.txt15
1 files changed, 15 insertions, 0 deletions
diff --git a/doc/manual/type_rel.txt b/doc/manual/type_rel.txt
index 5c8372e1e..97f7090b4 100644
--- a/doc/manual/type_rel.txt
+++ b/doc/manual/type_rel.txt
@@ -294,6 +294,21 @@ If the formal parameter ``f`` is of type ``var T`` in addition to the ordinary
 type checking, the argument is checked to be an `l-value`:idx:. ``var T``
 matches better than just ``T`` then.
 
+.. code-block:: nim
+  proc sayHi(x: int): string =
+    # matches a non-var int
+    result = $x
+  proc sayHi(x: var int): string =
+    # matches a var int
+    result = $(x + 10)
+    
+  proc sayHello(x: int) =
+    var m = x # a mutable version of x
+    echo sayHi(x) # matches the non-var version of sayHi
+    echo sayHi(m) # matches the var version of sayHi
+
+  sayHello(3) # 3
+              # 13
 
 Automatic dereferencing
 -----------------------