重载过程
Nim提供类似C++的过程重载能力:
- proc toString(x: int): string = ...
- proc toString(x: bool): string =
- if x: result = "true"
- else: result = "false"
- echo toString(13) # calls the toString(x: int) proc
- echo toString(true) # calls the toString(x: bool) proc
(注意 toString 通常是Nim中的 $ 。) 编译器为 toString 调用选择最合适的过程。 重载解析算法不在这里讨论(会在手册中具体说明)。 不论如何,它不会导致意外,并且基于一个非常简单的统一算法。有歧义的调用会作为错误报告。