ほげほげパッチ

有る事無い事 徒然なるままに

Ruby 深掘り #1

caseケース文

条件分岐が多い時に使う。elseif的な。

  • case - when - else - end

  • if - elseif - else - end

whileワイル文

繰り返し構文

while 条件式 do
  # 条件式を満たす間は、ずっと繰り返す
end


無限ループ

元はプログラミングの用語。

while true
  # 常にtrue -> 無限ループ
end

大きな負荷がかかるので避けましょう

breakブレーク

繰り返し処理から強制脱出

ブロック

do〜endのことをRubyではブロックと呼ぶ

|〜|をブロック変数と呼ぶ。

  • eachとかtimesはブロック自体(do〜endの処理)を引数として受け取って(繰り返して)いる

{〜}もブロック。do〜endと同義。1行で収まるなら{ }推奨。

yieldイールド

application.html.erbに各ビューファイルの内容を展開する時にも出てきた。)

ブロックごと渡すような時にも使えるらしい。

def hoge
  puts "hogehoge"
  yield
  # 渡されたブロックがyieldと取って代わる。
end

hoge do
  puts "fugafuga"
end

# => hogehoge
# => fugafuga


ブロック引数

&blockをつけると、ブロックを引数として渡せる。

callで呼び出し。

# blockを引数として受け取るために &block 
def hoge(&block)
  puts "hogehoge"
  # callに引数"fugafuga"を渡して、ブロック引数を呼び出し。
  block.call("fugafuga")
end

# hogeというメソッドに do~end のブロックを引数として渡す。
# textという変数に、fugafugaが代入されて呼び出される。
hoge do |text|
  puts text
end

# => hogehoge
# => fugafuga