如何存储ruby代码块?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (11)

我希望将“代码块”存储在要常用的变量中,如下所示:

block = do
|test| puts test
end

3.upto(8) block

这代码哪里有问题啊?

提问于
用户回答回答于

建议

使用proc:

foo=Proc.new do |test|
  puts test
end

3.upto(8) { foo.call("hello world") }

新版本中,上面的方法可以重写如下:

# using lower-case **proc** syntax, all on one line
foo = proc { |test| puts test }
3.upto(8) { foo.call("hello world") }

# using lambda, just switch the method name from proc to lambda
bar = lambda { |test| puts test }
3.upto(8) { bar.call("hello world") } 

扫码关注云+社区