0
0

More than 3 years have passed since last update.

【Ruby基礎】ブロックを使う頻度の高いメソッド

Last updated at Posted at 2020-08-23

ブロック構文を使う頻度の高いメソッドを使用例と一緒にまとめます。

map(エイリアスメソッドはcollect)

各要素に対してブロックを評価した結果を新しい配列にして返す
空の配列を用意して、他の配列をループ処理した結果を空の配列に詰め込んでいくような処理の
大半はmapメソッドに置き換えられる。

コンソール

irb(main):026:0> numbers
=> [1, 2, 3, 4, 5]
irb(main):027:0> new_numbers = numbers.map {|n| n * 10}
irb(main):028:0> new_numbers
=> [10, 20, 30, 40, 50]
irb(main):029:0> numbers
=> [1, 2, 3, 4, 5]

select/find_all/reject

selectメソッドは各要素に対してブロックを評価し、その戻り値が真の要素を集めた配列を返すメソッドです。

コンソール

irb(main):003:0> numbers = [1,2,3,4,5,6]
irb(main):004:0> even_numbers = numbers.select {|n| n.even?}
rb(main):006:0> even_numbers
=> [2, 4, 6]

rejectメソッドはselectメソッドの反対で、ブロックの戻り値が真になった要素を除外した配列を返す

コンソール
irb(main):007:0> numbers = [1,2,3,4,5,6]
irb(main):008:0> non_multiples_of_three = numbers.reject {|n| n % 3 == 0}
irb(main):010:0> non_multiples_of_three
=> [1, 2, 4, 5]

&とシンボルを使って簡潔に書く

コンソール
irb(main):012:0> ['ruby', 'java', 'perl'].map(&:upcase)
=> ["RUBY", "JAVA", "PERL"]

参考文献

「プロを目指す人のためのRuby入門」

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0