基于 'var T' 的重载
如果形式参数 f 是除了普通类型检查外的 var T 类型, 则检查实参是否 左值 。 var T 比 T 更好地匹配。
- proc sayHi(x: int): string =
- # 匹配非var整型
- result = $x
- proc sayHi(x: var int): string =
- # 匹配var整型
- result = $(x + 10)
- proc sayHello(x: int) =
- var m = x # 可改变的x
- echo sayHi(x) # 匹配sayHi的非var版本
- echo sayHi(m) # 匹配sayHi的var版本
- sayHello(3) # 3
- # 13