我之前问过一个类似的问题:引用方法?
但现在我想弄清楚如何用这段代码做到这一点:
arr0 = [1,2,3]
arr1 = [2,3,4,5]
arr1.reject! {|x|
arr0.include? x
}
显然{|x| arr0.include? x}
可以简化为arr0.include?
. 但我不知道如何获得这个方法参考。
编辑:我对如何使用更简单的语法在 Ruby 中减去数组不感兴趣。我正在寻找一种方法来获取对方法的引用。
arr1.reject!(&arr0.method(:include?))
Ruby 中的每个对象都有一个method
方法:
m = [1,2,3].method(:include?) #reference to the include? method of this array.
p m.call(1) #call the method with an argument ; => true
arr0 = [1,2,3]
arr1 = [2,3,4,5]
m = arr0.method(:include?)
arr1.reject!(&m) #=> [4, 5]
你可以这样做
arr1 - arr0
你不能用椒盐卷饼冒号来做到这一点,因为你有一个论点。