我知道 ruby 不像 C 那样支持整数递增x++
或递减x--
。但是当我使用它时,它什么也不做,也不会抛出错误。为什么?
编辑:
抱歉,我实际找到的代码是 using --x
,略有不同,但问题仍然存在:为什么?
x = 10
while --x > 0
y = x
end
编辑:回答 OP 关于它实际上是 --x 的评论
在 Ruby 中,运算符是方法。--x、x++、x== 等都可以做完全不同的事情。--
并且++
它们本身不是有效的运算符。它们是运算符的组合。
对于您提供的代码,--x
与-(-x)
.
如果x = 5
,那么-x == -5
和--x == 5
。
---x
会是-(-(-x))
,依此类推。
x--
在技术上是有效的,具体取决于下一行代码包含的内容。
以下是有效的,例如:
def my_func
x = 1
y = 10
x--
y
end
那将被解释为x - (-10)
. 结果没有被分配给任何值,因此该x--
行似乎什么都不做,函数只会返回y
。
您甚至可以nil
在函数的最后一行出现,并且在某些工具中不会出现语法错误,但在调用函数时会出现运行时错误。
x--
仅靠其本身是无效的。它需要一个数字参数来跟随它。该论点可以在下一行。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句