Rubyのブロック、Proc、lambdaのメモ
Rubyのブロック、Proc、lambdaのメモ。
【参考】
Rubyの ブロック、Proc.new、lambdaの違い - Qiita
Rubyの ブロック、Proc.new、lambdaの違い - Qiita
ブロックは処理の集合体。
ブロックはオブジェクトでない。
ArrayやHashのイテレータで慣れ親しんでいる。
メソッドがブロックを受け取る方法は2つ。
def hoge(引数) yiled end; では、hoge(引数){ブロック}で定義されているとみなす。
def hoge(a, &block) end; では、hoge(引数){ブロック}で定義されているとみなす。
ブロックをオブジェクトとしたものがProc.new。
lambdaはProcとほぼ同じように見えるが、lambda式を実行して返ってくるものはProcクラス。
Proc は引数チェックしないが、lambda は引数チェックするので、引数の個数が違うとArgumentErrorが発生する。
| 固定リンク
「Ruby」カテゴリの記事
- 「コーディングを支える技術」は良い本だ(2022.05.26)
- 知識は経験よりも大切か、経験は知識よりも勝るのか、SECIモデルは相互作用を語る(2022.04.26)
- 「RubyやRailsは終わった」という記事のリンク(2022.01.09)
- ITの技術や知識はツールの習得と表裏一体である(2021.03.26)
- JRubyの終焉(2020.06.09)
コメント