重载过程

Nim提供类似C++的过程重载能力:

  1. proc toString(x: int): string = ...
  2. proc toString(x: bool): string =
  3. if x: result = "true"
  4. else: result = "false"
  5.  
  6. echo toString(13) # calls the toString(x: int) proc
  7. echo toString(true) # calls the toString(x: bool) proc

(注意 toString 通常是Nim中的 $ 。) 编译器为 toString 调用选择最合适的过程。 重载解析算法不在这里讨论(会在手册中具体说明)。 不论如何,它不会导致意外,并且基于一个非常简单的统一算法。有歧义的调用会作为错误报告。