プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Ruby1.9、「ブロック付きメソッド」を理解する(3) ブロックの実行方法
Ruby1.9、「ブロック付きメソッド」を理解する(2) ブロック変数」の続きです。
今回のお題は「ブロックの実行方法」(--)b

実行方法は3つあるようですφ(--)

1.「yield」で実行

2.「ブロック引数(&付きのパラメータ)」で実行

3.クロージャで実行

多分あれこれ説明書くより見た方が早いと思うので
サンプルコードをどーぞφ(--)

  class HogeClass
      #yieldで実行
      def hogeMethod1(arg1)
          
yield(arg1)
      end
  
      #ブロック引数で実行
      def hogeMethod2(arg1, 
&block)
          
block.call(arg1)
      end
  
      #クロージャで実行(1)
      def hogeMethod3(arg1)
          a = 
Proc.new
          a.call(arg1)
      end
  
      #クロージャで実行(2)
      def hogeMethod4(arg1)
          b = 
proc
          b.call(arg1)
      end
  
      #クロージャで実行(3)
      def hogeMethod5(arg1)
          c = 
lambda{|y| puts y}
          c.call(arg1)
      end
  end
  
  aaa = HogeClass.new
  
  aaa.hogeMethod1(1){|x| puts x}
  aaa.hogeMethod2(2){|x| puts x}
  aaa.hogeMethod3(3){|x| puts x}
  aaa.hogeMethod4(4){|x| puts x}
  aaa.hogeMethod5(5)


実行結果はこんなんφ(--)

  1
  2
  3
  4
  5


「Proc.new」と「proc」と「lambda」の違いは
気が向いたら別記事で書きます。
微妙に大きく違う上に1.8と1.9で挙動が違うっぽいので(--;

Ruby1.9、「ブロック付きメソッド」を理解する(1) 基本
Ruby1.9、「ブロック付きメソッド」を理解する(2) ブロック変数
Ruby1.9、「ブロック付きメソッド」を理解する(3) ブロックの実行方法
Ruby1.9、「ブロック付きメソッド」を理解する(4) ブロック有無の判定方法
Ruby1.9、「ブロック付きメソッド」を理解する(5) イテレータ
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Ruby  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事