2014-12-23 34 views
0

这是从红宝石Koans摘录。红宝石中的这种构造是什么类型?

in_ruby_version("mri") do 
    RubyConstant = "What is the sound of one hand clapping?" 
    def test_constants_become_symbols 
     all_symbols_as_strings = Symbol.all_symbols.map { |x| x.to_s } 

     assert_equal true, all_symbols_as_strings.include?(:RubyConstant) 
    end 
end 

在in_ruby_verion前没有任何修饰符的这种方法是什么?这是什么构造。

+0

'in_ruby_version(“mri”)'接受一个块参数(包含在'do'''end'对中)。 'in_ruby_version(“mri”)里面的代码将会有一个yield语句,然后会产生该语句块。 – lurker

回答

0

它实际上只是一个方法调用。令人感兴趣的是它正在通过一个块,(doend表示法)。