memo:いまいちわからないprocとlambda
なんかすっきりしないなぁ。
Procのなかでreturn $hogeしたらだめなの。
#inline => 関数 => 戻ってきたっていうのをしたいだけなの $hoge = 1 def inline # Proc.new { $hoge = $hoge + 1; return $hoge; }.call #だめー lambda { $hoge = $hoge + 1; return $hoge}.call $hoge = $hoge + 1 return $hoge end puts inline #なので、 $hoge = 1 def inline2(code) # Proc.new { $hoge = $hoge + 1; return $hoge; }.call code.call $hoge = $hoge + 1 return $hoge end puts inline2(lambda { $hoge = $hoge + 1 ;return $hoge }) # >> 3 puts inline2(Proc.new { $hoge = $hoge + 1 ;return }) #だめー puts inline2(Proc.new { $hoge = $hoge + 1 ;return $hoge}) #だめー # ~> -:???: unexpected return (LocalJumpError) # ~> from -:144:in `call' # ~> from -:144:in `inline2' # ~> from -:149
ローカルジャンパー。
Procのなかでreturnつかわなくしたら目をつぶれるよん