0

私は以前に同様の質問をしました:メソッドへの参照?

しかし今、私はこのコードでこれを行う方法を理解しようとしています:

arr0 = [1,2,3]
arr1 = [2,3,4,5]
arr1.reject! {|x|
    arr0.include? x
}

どうやら{|x| arr0.include? x}単純化してarr0.include?。しかし、このメソッド参照を取得する方法がわかりません。

編集:私は、より単純な構文を使用してRubyで配列を減算する方法には興味がありません。メソッドへの参照を取得する方法を探しています。

4

4 に答える 4

6
arr1.reject!(&arr0.method(:include?))
于 2012-09-28T16:22:02.803 に答える
1

あなたはそれをすることができます

arr1 - arr0

議論があるので、プレッツェルコロンではそれを行うことはできません。

于 2012-09-28T15:33:11.550 に答える
1

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
于 2012-09-28T16:21:28.193 に答える
1
arr0 = [1,2,3]
arr1 = [2,3,4,5]

m = arr0.method(:include?)
arr1.reject!(&m) #=> [4, 5]
于 2012-09-28T16:36:45.367 に答える