我基本上是来自java背景,很难理解Ruby中的模块化操作。
(5 % 3)
(-5 % 3)
(5 % -3)
(-5 % -3)
在Java中的上述操作,2-2 -2 -2
但是在Ruby中,相同的表达式产生21-1-2。
从逻辑上说,红宝石擅长于此?如何在Ruby中实现模块操作?如果将相同的操作定义为web服务,则两个服务如何匹配逻辑。
发布于 2013-11-20 15:57:09
在Java中,模块操作的结果与派息具有相同的符号。
在Ruby中,它具有与除数相同的符号。红宝石中的remainder()
与派息具有相同的符号。
您还可以参考模数运算。
发布于 2013-11-20 15:56:58
其余部分的符号因语言而异。做这件事的“正确”方式是值得讨论的.
Ruby实现了这两种方式。remainder
函数具有与Java相同的行为,而modulo
和%
运算符使用另一种算法。
维基百科有一个编程语言列表,以及它们如何实现模块化。
发布于 2013-11-20 15:57:09
因为Ruby将x.modulo(y)
定义为x-y*(x/y).floor
。请参阅ruby-doc.org
https://stackoverflow.com/questions/20100537
复制相似问题