gpt4 book ai didi

ruby - 覆盖 is_a 的正确方法是什么?和种类?

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:11 27 4
gpt4 key购买 nike

ruby 1.8.7 (2010-12-23 补丁级别 330) [i686-darwin10.5.0]

我错过了什么吗?

module Mixin
def is_a?(o)
return false if o == Hash
super
end
alias_method :kind_of?, :is_a?
end

class Doc < Hash
include Mixin
end

puts Doc.new().is_a?(Doc) # => true
puts Doc.new().kind_of?(Doc) # => super: no superclass method `is_a?'

预期:

puts Doc.new().is_a?(Doc) # => true
puts Doc.new().kind_of?(Doc) # => true
puts Doc.new().is_a?(Hash) # => false
puts Doc.new().kind_of?(Hash) # => false

在 rubinius 和 ruby​​ 1.9.2p136 上一切都很酷

最佳答案

谢谢大家。这是 1.8.7 中的错误 http://redmine.ruby-lang.org/issues/show/734

关于ruby - 覆盖 is_a 的正确方法是什么?和种类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4894613/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com