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