1

Programming Ruby:The Pragmatic Programmers Guide by Dave Thomas with Chad Fowler and Andy Hunt』の作成に関して、Proc次のような脚注があります。

「実際には3番目のprocがありますが、事実上非推奨です。」

これがどちらの方向かわかりませんでした。私は次の方法でProc:を作成することを知っています。

1

b = lambda { | msg | puts "msg: #{msg}" }
b.call("hi")

2

def create_block_object(&block)
  block
end
b = create_block_object{ |msg| puts "msg: #{msg}" }
b.call("hello")

3

b = Proc.new { |msg| puts "msg: #{msg}"}
b.call("hey")

私は4番目の方法を知りたいので、誰かが私に答えてくれたら嬉しいです。

4

3 に答える 3

1

これは、ラムダの別の構文です。

b = ->(msg) { puts "msg: #{msg}" }
b.call("hi")
于 2013-03-17T15:53:34.673 に答える
1

あなたが参照している本は Ruby 1.8 に関するものです。

そのバージョンの Ruby では、lambdaprocsは事実上のエイリアスですが、 whileProcは別の獣です。これは明らかに誤解を招くため、次のように使用することはお勧めしませんproc

prc = proc {|x, y| puts x + y}

この構文は非推奨と見なされ、この場合はラムダを使用することをお勧めします。

これは、1.9 以降の新しいバージョンの Ruby では有効ではなくなりました。

于 2013-03-17T16:03:10.263 に答える
0

prc = プロシージャ {|x| x*x} は償却されています。

この構文は主に Ruby-1.8.7 バージョンで使用されていました。

于 2014-08-06T18:49:26.513 に答える