From e4ed19c12fcce046d990a918800d9031706e8b66 Mon Sep 17 00:00:00 2001 From: Kaushal Modi Date: Tue, 25 Feb 2020 15:19:51 -0500 Subject: [backport] tut1: Update the proc overloading examples (#13497) [skip ci] --- doc/tut1.rst | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/doc/tut1.rst b/doc/tut1.rst index 9b411c932..6d54d88a3 100644 --- a/doc/tut1.rst +++ b/doc/tut1.rst @@ -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: int): string = + result = + if x < 0: "negative" + elif x > 0: "positive" + else: "zero" + proc toString(x: bool): string = - if x: result = "true" - else: result = "false" + result = + if x: "yep" + else: "nope" - echo toString(13) # calls the toString(x: int) proc - echo toString(true) # calls the toString(x: bool) proc + 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 `$ `_ operator in Nim.) The compiler chooses the most appropriate proc for the ``toString`` -- cgit 1.4.1-2-gfad0