在戴夫·托马斯( Dave )与查德·福勒( Chad )和安迪·亨特( Andy )合著的“编程Ruby:实用主义程序员指南”( Programming Ruby: the务实的程序员指南)一书中,关于创建Proc的问题,有一个脚注指出:
“实际上还有第三个问题,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")我想知道第四条路,如果有人能给我一个答案,我会很高兴的。
发布于 2013-03-17 16:03:10
您所指的书是关于Ruby1.8的。
在那个版本的Ruby中,lambda和procs实际上是别名,而Proc则是另一回事。这显然是误导性的,这就是不建议您使用proc的原因
prc = proc {|x, y| puts x + y}这种语法被认为是弃用的,在本例中建议使用lambda。
这已不再适用于Ruby的后期版本,从1.9开始。
发布于 2014-08-06 18:49:26
中华人民共和国= proc {x\ x*x}已折旧。
这个语法主要用于Ruby-1.8.7版本中。
https://stackoverflow.com/questions/15462674
复制相似问题