Monkey Patching Float Infix操作员产生了意想不到的结果

 忧伤的嫖客 发布于 2023-02-11 17:28

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

class Float
  def /(other)
    "magic!"
  end
 end
 puts 10.0/2.0 # => 5.0

但是当Float#*重新定义另一个中缀运算符时,Float#/突然采用新的定义:

class Float
  def /(other)
    "magic!"
  end
  def *(other)
    "spooky"
  end
end
puts 10.0/2.0 # => "magic!"

我很想知道是否有人可以解释这种行为的来源以及是否有其他人得到相同的结果.

Ruby:ruby 2.0.0p353(2013-11-22)[x64-mingw32]

要快速确认错误,请运行此脚本.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有