使用块求和

时间:2014-05-02 21:53:25

标签: ruby rspec

我试图传递一个rspec,通常我会做一个方法并传递一个函数。 我所要做的就是加一个,我甚至尴尬地在这里发帖...

通常我会这样做

def adder(n)
   n+1
end

但是我需要传递一个块,而且我不熟悉它。

describe "adder" do
 it "adds one to the value returned by the default block" do
  adder do
    5
  end.should == 6
 end

 it "adds 3 to the value returned by the default block" do
   adder(3) do
    5
  end.should == 8
 end
end

我试过

    def adder
       yield  {|n| return n+1 }
    end

1 个答案:

答案 0 :(得分:2)

以下代码将执行:

def adder(a=1, &block)
  a + yield
end
 => :adder 

adder do
  5
end
 => 6 

adder(3) do
  5
end
 => 8

您需要了解how to pass a block as parameterdefault values for methods