首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么ruby模块与java/其他lang不同?

为什么ruby模块与java/其他lang不同?
EN

Stack Overflow用户
提问于 2013-11-20 15:51:30
回答 3查看 319关注 0票数 6

我基本上是来自java背景,很难理解Ruby中的模块化操作。

代码语言:javascript
运行
复制
(5 % 3)     
(-5 % 3)    
(5 % -3)    
(-5 % -3) 

在Java中的上述操作,2-2 -2 -2

但是在Ruby中,相同的表达式产生21-1-2。

从逻辑上说,红宝石擅长于此?如何在Ruby中实现模块操作?如果将相同的操作定义为web服务,则两个服务如何匹配逻辑。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-11-20 15:57:09

在Java中,模块操作的结果与派息具有相同的符号。

在Ruby中,它具有与除数相同的符号。红宝石中的remainder()与派息具有相同的符号。

您还可以参考模数运算

票数 3
EN

Stack Overflow用户

发布于 2013-11-20 15:56:58

其余部分的符号因语言而异。做这件事的“正确”方式是值得讨论的.

Ruby实现了这两种方式。remainder函数具有与Java相同的行为,而modulo%运算符使用另一种算法。

维基百科有一个编程语言列表,以及它们如何实现模块化。

票数 3
EN

Stack Overflow用户

发布于 2013-11-20 15:57:09

因为Ruby将x.modulo(y)定义为x-y*(x/y).floor。请参阅ruby-doc.org

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20100537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档