[backport] tut1: Update the proc overloading examples (#13497) [skip ci]

This commit is contained in:
Kaushal Modi
2020-02-25 15:19:51 -05:00
committed by GitHub
parent db540a0223
commit e4ed19c12f

View File

@@ -743,13 +743,19 @@ Overloaded procedures
Nim provides the ability to overload procedures similar to C++:
.. code-block:: nim
proc toString(x: int): string = ...
proc toString(x: bool): string =
if x: result = "true"
else: result = "false"
proc toString(x: int): string =
result =
if x < 0: "negative"
elif x > 0: "positive"
else: "zero"
echo toString(13) # calls the toString(x: int) proc
echo toString(true) # calls the toString(x: bool) proc
proc toString(x: bool): string =
result =
if x: "yep"
else: "nope"
assert toString(13) == "positive" # calls the toString(x: int) proc
assert toString(true) == "yep" # calls the toString(x: bool) proc
(Note that ``toString`` is usually the `$ <dollars.html>`_ operator in
Nim.) The compiler chooses the most appropriate proc for the ``toString``