Ruby基礎文法のメモ [1]

Rubyの基礎を振り返ろうと思って逆引き辞典をちょっと写経しました。

いままで使ってなかったものとか、簡単にメモです。


 

2つ飛ばしでループ。aからbの間を2つ飛ばしの場合。

a, b= 2, 10
a.step(b, 2) do |i|
  p i #=> 2, 4, 6, 8, 10
end

 

どこからどこまでみたいな範囲指定のループ

3.upto(8) do |i|
  ~~
end

(3..8).each do |i|
end
両方同じ意味

 

if文って評価後ちょくで代入できるって知りませんでした

a = 'テスト'
b = 10
a = if b < 10
      'シンボルです'
    elsif b == 10
      '文字列です'
    else
      'その他'
    end

p a #=> '文字列です'

 

a = 'テスト'
b = if a.class == a.class == String then 10 else 'すとりんぐじゃない' end

p b #=> 10


ループの抽象化ってとこで。

test = [1, 2, 3].map{|x| x*x} #=> [1, 4, 9]

[1, 2, 3, 4].select{|x| x%2 == 0} #=>[2, 4]


って感じでできるんですね。
もちろんeachでもいけるからずっとそうしてましたが
これからこのへんちゃんと使ってみようと思います。