是否可以为 Enumerable 创建别名each?例如,让my_each方法只是原始each.
我尝试使用但alias没有成功:
module Enumerable
alias :my_each :each
end
Run Code Online (Sandbox Code Playgroud)
我知道我可以定义自己的my_each方法,但我只想要一个别名,以便它的行为与在任何枚举器上使用时完全一样each。
这应该可以解决问题:
module Enumerable
def my_each(*args, &block)
each(*args, &block)
end
end
p [1,2,3].my_each
# => #<Enumerator: [1, 2, 3]:each>
p (1..5).my_each
# => #<Enumerator: 1..5:each>
Run Code Online (Sandbox Code Playgroud)
你不能别名,因为each它实际上不是 中的一个方法Enumerable,所以没有什么可以别名的。Enumerable期望它混入的每个类都提供它。
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |