Ruby Basic - 3


共通メソッドAPI

1. find, select

> (1..10).find { |n| n == 5 }
5
> (1..10).detect { |n| n % 5 }
3
> (1..10).find_all {|n| n % 3 == 0}
[3, 6, 9]
> (1..10).select {|n| n % 3 == 0}
[3, 6, 9]
> (1..10).any? {|n| n % 3 == 0}
true
> (1..10).none? {|n| n % 3 == 0}
false
> (1..10).all? {|n| n % 3 == 0}
false
> (1..10).one? {|n| n % 3 == 0}
false
> ['apple', 'banana', 'pear'}.find {|f| f.length > 5 }
"apple"
> {'apple' => 0, 'banana' => 6, 'pear' => 5}.find {|k, v| v == 0 }
["apple", 0]

2. map, inject(= reduce)

> (1..5).map { |n| n }
> (1..5).inject { |memo, n| memo + n }
> (1..5).inject(0) { |memo, n| memo + n }

3. sort, sort!

> array = [3, 2, 4, 6, 5, 1]
> array.sort
> array.sort { |a, b| a <=> b }
> array.sort { |a, b| b <=> a }
> array = ["banana", "apple", "pear"]
> array.sort_by {|el| el.length}

4. merge, merge!


hashでのみ使用します.
> h1 = {:a => 2, :b => 4, :c => 6}
> h2 = {:a => 3, :b => 4, :d => 8}
> h1.merge(h2)
{:a=>3, :b=>4, :c=>6, :d=>8}
> h2.merge(h1)
{:a=>2, :b=>4, :d=>8, :c=>6}
> h1.merge(h2) {|key, old, new| new}
{:a=>3, :b=>4, :c=>6, :d=>8}
> h1.merge(h2) {|key, old, new| old}
{:a=>2, :b=>4, :c=>6, :d=>8}