我有一个 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/