Array和Enumerable有什么关系?
What is the relationship between Array and Enumerable?
Array
没有sort_by
; Enumerable
有。这是如何工作的?
%w[aa aaaa aaa].sort_by{|item| item.length} #=> ['aa','aaa','aaaa']
这不是要抛出undefined method sort_by
这样的错误吗? Array
和Enumerable
有什么关系?
Array
class 包括 Enumerable
模块。您可以在 "Included Modules".
左侧的文档中看到这一点
Enumerable
混入Array
class:Enumerable定义的所有方法都可用于Ruby数组。
Array.ancestors # => [Array, Enumerable, Object, Kernel, BasicObject]
这叫做继承。如果在对象的 class 中找不到方法,Ruby 会沿着祖先链向上走,直到找到它。
Array
继承自Enumerable
(更准确地说,它混入了Enumerable
,这是一种继承。
Array
没有sort_by
; Enumerable
有。这是如何工作的?
%w[aa aaaa aaa].sort_by{|item| item.length} #=> ['aa','aaa','aaaa']
这不是要抛出undefined method sort_by
这样的错误吗? Array
和Enumerable
有什么关系?
Array
class 包括 Enumerable
模块。您可以在 "Included Modules".
Enumerable
混入Array
class:Enumerable定义的所有方法都可用于Ruby数组。
Array.ancestors # => [Array, Enumerable, Object, Kernel, BasicObject]
这叫做继承。如果在对象的 class 中找不到方法,Ruby 会沿着祖先链向上走,直到找到它。
Array
继承自Enumerable
(更准确地说,它混入了Enumerable
,这是一种继承。