Added example for var overloading

Simple example to demonstrate overloading in case technical lingo is confusing
This commit is contained in:
apense
2015-06-24 23:56:35 -04:00
parent bdd5a8c05e
commit 4e129324f6

View File

@@ -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
-----------------------