ruby-LEDの日記

2006-06-25

ブロック

irb(main):001:0> {
irb(main):002:1* p "hello"
irb(main):003:1> p "bye"
irb(main):004:1> }
SyntaxError: compile error
(irb):2: parse error, unexpected tSTRING_BEG, expecting kDO or '{' or '('
p "hello"
   ^
(irb):4: parse error, unexpected '}', expecting $
        from (irb):4
$ {
> echo hello
> echo bye
> }
hello
bye
  • 関数に渡してあげれば動く
irb(main):001:0> def callBlock
irb(main):002:1> yield
irb(main):003:1> yield
irb(main):004:1> end
=> nil
irb(main):005:0> callBlock { p "In the Block" }
"In the Block"
"In the Block"
=> nil
  • 次はyieldのパラメータ
    • なんかピンとこないので何個かサンプルを動かして見るとよさげ
トラックバック - http://rubyist.g.hatena.ne.jp/ruby-LED/20060625