• 基于 'var T' 的重载

    基于 'var T' 的重载

    如果形式参数 f 是除了普通类型检查外的 var T 类型, 则检查实参是否 左值 。 var TT 更好地匹配。

    1. proc sayHi(x: int): string =
    2. # 匹配非var整型
    3. result = $x
    4. proc sayHi(x: var int): string =
    5. # 匹配var整型
    6. result = $(x + 10)
    7.  
    8. proc sayHello(x: int) =
    9. var m = x # 可改变的x
    10. echo sayHi(x) # 匹配sayHi的非var版本
    11. echo sayHi(m) # 匹配sayHi的var版本
    12.  
    13. sayHello(3) # 3
    14. # 13