107得票8回答
在Ruby块中使用'return'关键字

我正在尝试使用Ruby 1.9.1作为嵌入式脚本语言,以便在Ruby块中编写“最终用户”代码。 其中一个问题是,我希望用户能够在块中使用'return'关键字,这样他们就不必担心隐式返回值。 考虑到这一点,这是我想要做的事情:def thing(*args, &block) val...

59得票3回答
为什么在 Proc 中使用显式返回会有所不同?

def foo f = Proc.new { return "return from foo from inside proc" } f.call # control leaves foo here return "return from foo" end def bar ...

45得票3回答
Ruby - lambda与Proc.new的区别

可能是重复问题: Ruby中proc和lambda的区别是什么? 当运行这段 Ruby 代码时:def func_one proc_new = Proc.new {return "123"} proc_new.call return "456" e...

34得票1回答
Ruby:Proc.new { 'waffles' } 与 proc { 'waffles' } 的区别

在 Ruby 中,Proc.new { 'waffles' } 和 proc { 'waffles' } 之间有什么区别吗?我发现很少提到第二种语法。通过使用 irb 进行测试,我没有发现任何明显的差异。第二种语法是第一种语法的简化形式吗?

22得票2回答
为什么要使用procs而不是方法?

我刚接触编程,ruby是我的第一个真正尝试。我了解块,但Proc似乎是一种轻量级的方法/函数概念——为什么要使用它们?为什么不只使用方法呢? 谢谢您的帮助。

21得票7回答
如何在Ruby中序列化lambda表达式(Proc)?

Joe Van Dyk 向Ruby邮件列表提问: 你好, 在Ruby中,我猜你不能封送(marshal)一个lambda/proc对象,对吗?在lisp或其他语言中是否可能呢? 我尝试做的事情: l = lamda { ... } Bj.submit "/path/...

17得票4回答
你如何将Ruby代码转换为字符串/序列化?

我希望能够在Ruby代码中编写一个lambda/Proc,并将其序列化以便可以将其写入磁盘,然后稍后执行该lambda。有点像...x = 40 f = lambda { |y| x + y } save_for_later(f) 后来,在 Ruby 解释器的另一次运行中,我想能够说...f ...

16得票5回答
Ruby块、procs和instance_eval

我最近尝试做类似于这样的事情:a = "some string" b = Proc.new{ upcase } a.instance_eval b 这个代码会报错: TypeError: 无法将 Proc 转换为 String 但是下面的代码可以正常工作:def b(&bl...

16得票5回答
Ruby:将proc转换为lambda?

如何将proc风格的Proc转换为lambda风格的Proc?有点惊讶,至少在1.9.2中无法实现:my_proc = proc {|x| x} my_lambda = lambda &p my_lambda.lambda? # => false!

13得票2回答
为什么在Rails回调中使用Proc.new来调用一个方法?

在所有 RoR 的教程中,我看到编码者选择使用 Proc.new 的实例,尽管它似乎既不必要又相当不吸引人。 例如,这是放置在模型中的回调函数,一个使用 Proc.new,另一个可能做同样的事情:class Order < ActiveRecord::Base before_s...