2015-01-13 61 views
0

我寫代碼來了解我如何使用一個塊中的方法:需要使用方法裏面紅寶石和阻止

def block_trial alfa, &block 
    puts alfa 

    block.call 
end 

block_trial "Trial" do || 
    puts "Komodo" 
    another_method 
end 

def another_method 
    puts "another_method" 
end 

是那種方法好不好?我怎樣才能在塊內使用另一種方法?

這是我得到的錯誤:

block.rb:9:in `block in <main>': undefined local variable or method `another_method' for main:Object (NameError) 
    from block.rb:4:in `call' 
    from block.rb:4:in `block_trial' 
    from block.rb:7:in `<main>' 

回答

6

another_method是不是直到調用後定義。您需要將其定義移動到您呼叫的方法/位置的上方。

def block_trial alfa, &block 
    puts alfa 
    block.call 
end 

def another_method 
    puts "another_method" 
end 

block_trial "Trial" do 
    puts "Komodo" 
    another_method 
end