【发布时间】:2015-05-17 14:43:30
【问题描述】:
我正在尝试了解 RubyMonk 练习的解决方案。大部分代码我都可以看,但是下面这行不行,
while not (superclass = klass.superclass).nil?
这是否会创建一个名为“superclass”的变量以在“while not 循环”的其余部分中使用,然后同时将其测试为 != nil?
完整解决方案
def location_in_hierarchy(object, method)
klass = object.class
ancestors = [klass]
while not (superclass = klass.superclass).nil?
ancestors << superclass
klass = superclass
end
ancestors.reverse.find do |ancestor|
ancestor.instance_methods.include?(method)
end
end
我已经学习 Ruby 几个星期了。但在过去的一个小时里,我一直在关注这个解决方案。任何理解这条线的帮助都将非常感激。
【问题讨论】:
标签: ruby while-loop superclass