« 技術力を持ったリーダーが不可欠な時代について | トップページ | 「確率思考の戦略論」の感想 »

2020/02/06

Rubyのブロック、Proc、lambdaのメモ

Rubyのブロック、Proc、lambdaのメモ。

【参考】
Rubyの ブロック、Proc.new、lambdaの違い - Qiita

Rubyの「ブロック」を理解する - 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」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 技術力を持ったリーダーが不可欠な時代について | トップページ | 「確率思考の戦略論」の感想 »