【发布时间】:2015-06-26 15:35:15
【问题描述】:
我正在尝试在 Array 类中添加额外的功能来接收块。我想我基本上已经把它记下来了,但是,我不确定在调用该方法时要使用的语法对预定义的方法使用 .to_proc / & 强制转换(例如 .odd? )。
我有以下代码:
class Array
def keep
each do |user_array_element|
user_array_element
if yield(user_array_element) == true
kept_elements ||= []
kept_elements << user_array_element
end
end
end
end
试图通过以下测试:
assert_equal [1, 3], [1, 2, 3].keep(&:odd?)
【问题讨论】:
-
如果没有给出块,你可能希望
keep返回一个枚举器,这样它就可以被链接起来。