Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > setライブラリ > Setクラス > delete_if
delete_if {|o| ... } -> self
[permalink][rdoc]reject! {|o| ... } -> self | nil
集合の各要素に対してブロックを実行し、その結果が真であるようなすべての 要素を削除します。
delete_if は常に self を返します。
reject! は、要素が 1 つ以上削除されれば self を、1 つも削除されなければ nil を返します。
require 'set' s1 = Set['hello.rb', 'test.rb', 'hello.rb.bak'] s1.delete_if {|str| str =~ /\.bak\z/} p s1 #=> #<Set: {"hello.rb", "test.rb"}> s2 = Set['hello.rb', 'test.rb', 'hello.rb.bak'] p s2.reject! {|str| str =~ /\.bak\z/} #=> #<Set: {"hello.rb", "test.rb"}> p s2.reject! {|str| str =~ /\.o\z/} #=> nil
[SEE_ALSO] Enumerable#reject