ulv*_*ver 9 ruby oop inheritance implementation interface
问题标题的可怕性是我想要解决的问题.例:
在Ruby中,Enumerable是一个界面,在某种意义上我可以实现一些东西并将其记录为:
def myfancymethod(please_pass_me_an_Enumerable_here)
Run Code Online (Sandbox Code Playgroud)
但另一方面,Enumerable是一种对#each作为其中一种方法的接口的放大.如果我有课
class Foo
def each
:bar
end
end
Run Code Online (Sandbox Code Playgroud)
对于那些不熟悉的Ruby,如果混入可枚举模块中的一类,你会得到许多方法,只有依靠#each的方法来提供类似的东西#map,#select等等.
我可以说我的Foo班级是可枚举的或可枚举的兼容或什么?什么术语描述了"成为一个可枚举者需要什么?","你必须拥有#each"的答案
同样,在Ruby中
(Array.new.methods - Object.new.methods).size # 111
Run Code Online (Sandbox Code Playgroud)
这是否意味着伪造一个Array接口,我必须实现111个方法?没办法,但我怎么找出哪些方法是Array的"本质".它只是#[],#[]=而且#size?怎么理解它?
| 归档时间: |
|
| 查看次数: |
146 次 |
| 最近记录: |