Ruby 不使用调用方法是否可以执行proc?

Ruby 不使用调用方法是否可以执行proc?,ruby,Ruby,我要提出另一个问题。我真的很困惑。以下是添加映射方法的定义: def add_mapping(regexp, &proc) @test_mappings << [regexp, proc] end def添加映射(regexp和proc) @test\u mappingsYep,根据,[]是Proc\callYep的同义词,根据,[]是Proc\callEric的同义词,add\u mapping所做的只是向一个名为@test\u mappings的数组添加一个正则表达

我要提出另一个问题。我真的很困惑。以下是添加映射方法的定义:

def add_mapping(regexp, &proc)
  @test_mappings << [regexp, proc]
end
def添加映射(regexp和proc)

@test\u mappingsYep,根据,
[]
Proc\call
Yep的同义词,根据,
[]
Proc\call
Eric的同义词,add\u mapping所做的只是向一个名为@test\u mappings的数组添加一个正则表达式+Proc元组

添加映射不执行该过程。我不知道ZenTest是如何工作的,但它应该在读取所有add_映射调用后执行proc


查看ZenTest的代码并查看@test\u映射,这可能会显示进程的执行位置(和时间)。

Eric,add\u映射所做的只是向名为@test\u映射的数组中添加一个常规的expresion+proc元组

添加映射不执行该过程。我不知道ZenTest是如何工作的,但它应该在读取所有add_映射调用后执行proc


查看ZenTest的代码并查看@test\u映射,这些映射可能会显示进程的执行位置(和时间)。

可以通过将进程作为块传递给屈服方法或手动调用(如您所述)来执行进程


也许还有更多的方法,但我想不出任何方法。不过,我不知道这对你来说意味着什么。该proc位于一个数组中,该数组被添加到另一个数组(我猜),并且在任何其他地方都没有被引用,因此在粘贴到此处的短片段中不会调用任何proc。

可以通过将proc作为块传递给屈服方法或手动调用(如您所述)来执行


也许还有更多的方法,但我想不出任何方法。不过,我不知道这对你来说意味着什么。该进程位于一个数组中,该数组被添加到另一个数组中(我猜),并且在其他任何地方都没有被引用,因此在粘贴到此处的短片段中不会调用任何进程。

@George,如果[]与调用进程相同,@test\u mappings是什么?Eric:结果都存储在@test\u mappings对象/数组中,并同时返回。(如果我对代码理解正确的话)在标准ruby中,不会调用proc。将proc放入数组与调用:[]方法不同。@George,如果[]与调用proc相同,那么@test\u映射是什么?Eric:结果都存储在@test\u映射对象/数组中,并同时返回。(如果我对代码理解正确的话)在标准ruby中,不会调用proc。将进程放入数组与调用:[]方法不同。
a_proc = proc { puts "The proc" }

def i_am_yielding
  yield
end

a_proc.call
# => "The proc"
i_am_yielding { puts "A block" }
# => "A block"
i_am_yielding(&a_proc)
# => "The proc"