ruby - 如何覆盖 Ruby + 方法?
问题描述
只是为了学习目的,我试图覆盖 Ruby + 方法,但我没有得到想要的输出。
class Integer
def +(my_num)
"Plus method overridden"
end
end
puts 5.+(9)
请让我知道我在这里做错了什么。
解决方案
看来您使用 ruby < 2.4。如果是这样,您想要修补Fixnum
而不是Integer
. 请小心,因为系统本身也使用数字。
class Fixnum
alias_method :add, :+
def +(other)
puts 'plus method overridden'
add(other)
end
end
puts 5 + 9
推荐阅读
- javascript - Eslint no-return-assing 和 no-param-reassign 错误
- where - 如何在 Splunk 搜索查询的查找列中使用/执行 where
- unix - 如果我的权限被拒绝,如何将文件移出 /usr/local?
- ios - UICollectionView 上的约束问题
- r - 关于我在 R 中的 GIS 问题(从 readShapePoly 到 sf::st_read)
- javascript - 从数据库编辑对象时,反应 onChange() 不适用于自定义对象的下拉值
- r - 有没有办法解决没有根的方程?
- python - 嵌套字典中包含的向量的相关性
- ios - 如何获取/设置 iOS 流音量?
- python - 文件系统事件处理器停止工作