首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >猴子修补浮动Infix操作符会产生意想不到的结果

猴子修补浮动Infix操作符会产生意想不到的结果
EN

Stack Overflow用户
提问于 2013-12-10 17:27:15
回答 1查看 232关注 0票数 6

重新定义Float#/似乎没有任何效果:

代码语言:javascript
复制
class Float
  def /(other)
    "magic!"
  end
 end
 puts 10.0/2.0 # => 5.0

但是,当另一个infix操作符Float#*被重新定义时,Float#/突然采用了新的定义:

代码语言:javascript
复制
class Float
  def /(other)
    "magic!"
  end
  def *(other)
    "spooky"
  end
end
puts 10.0/2.0 # => "magic!"

我想知道是否有人能解释这种行为的来源,如果其他人得到同样的结果。

  • Ruby: Ruby2.0.0p 353 (2013-11-22) x64-mingw32

要快速确认错误,请运行这个剧本

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-10 17:53:03

这似乎是Ruby实现中的一个bug。这里已经提交了一份错误报告。

同时,您可以切换实现或切换版本。1.8.7似乎没有bug。

编辑

这只虫子修订44127固定

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

https://stackoverflow.com/questions/20501203

复制
相关文章

相似问题

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