ruby - 有没有办法避免 Ruby 中的重复 block ?

标签 ruby block

我有一个 block 需要传递给 File.open 和另一个方法 XXobject#read。由于我将同一个 block 传递给这两种方法,我想找到一种方法来避免重复 block 的代码。

我试图定义一个 Proc 对象,但是 File.open 似乎不接受一个 Proc 对象。我想知道为什么。据我所知, block 存储为 Proc 对象。

有没有办法在 Ruby 中避免重复 block ?

最佳答案

您需要将 Proc 转换为 Block:

blk = Proc.new{puts 1234567890}

def a; yield; end

a(&blk)

1.9.3-194 (main):0 > a(&blk)
1234567890
=> nil

关于ruby - 有没有办法避免 Ruby 中的重复 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12244709/

相关文章:

excel - 用于读取/写入 XLSX 并支持命名范围的 Ruby gem

ruby-on-rails - 将 Date 和 1.month.ago 放在一起?

ruby - 将数字的 JSON 序列化强制到特定精度

azure - 将新 block 上传到现有 Azure BlockBlob 时 block ID 的最大长度是多少

html - 如何水平对齐内容

sed - 如何注释应注释所有行的模式 block 的第一行?

创建时出现 ruby​​ ssl soap 错误

Ruby:使用散列访问实例方法

ruby-on-rails - 在 ActiveRecord 中的 block 持续时间内禁用触摸

css - 对齐内嵌 block Div 中的文本? CSS