版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/aqtata/article/details/82590352
先看个例子
var i = 0
echo i # 0
inc(i)
echo i # 1
能否像C++那样通过"i++"这样的语法自增呢?Nim提供了这种可能:重载操作符
proc `++`(val: var int) =
inc(val)
var i = 0
echo i # 0
inc(i)
echo i # 1
++i
echo i # 2
Nim只支持"+a"和"a+b"这种方式,也就是操作符可以在表达式的前面或者中间,不可以出现在后面,所以无法实现"i++"的写法,只能是"++i",再来看看"a+b"模式
proc `+`(val1, val2: int): int =
result = val1 * val2
echo 5 + 10 # 实际上变为了乘法操作,输出50
总结:
操作符用撇号括起来
操作符重载只能是"+a"和"a+b"这两种方式