ruby包括问题
发布时间:2020-12-17 04:03:13 所属栏目:百科 来源:网络整理
导读:class Foo def initialize(a) puts "Hello #{a}" endendmodule Bar def initialize(b) puts "#{b} World" endendclass Sample Foo include Bar def initialize(c) super endendSample.new('qux') #= qux World 为什么输出不是’Hello qux’? credit for cod
class Foo def initialize(a) puts "Hello #{a}" end end module Bar def initialize(b) puts "#{b} World" end end class Sample < Foo include Bar def initialize(c) super end end Sample.new('qux') #=> qux World 为什么输出不是’Hello qux’? credit for code 解决方法
当您将一个模块包含到一个类中时,它就像您在类层次结构中插入一个新的超类一样,就在Sample和Foo之间.调用super()通过包含的模块进行搜索,然后再回到真正的超类(Foo).
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |