2016-07-02 107 views
0

如何在函數中創建一個條件,該條件測試是否定義了傳遞給函數的變量,如果不是,執行一個命令,否則執行函數?如果變量未定義則返回

回答

2

像這樣的事情

def your_method(parameter) 
    if parameter 
    # do something 
    else 
    puts "parameter has no value" 
    end 
end 
+0

我嘗試這樣做,GOT->名稱錯誤:未定義的局部變量,...不知道我哪裏錯了。 – MRG

+1

@SlySherZ'0'是Ruby中的真理。 – Aetherus

+0

如果參數可能是一個虛假值,那麼你需要一個更復雜的條件。檢查:http://stackoverflow.com/questions/288715/checking-if-a-variable-is-defined – SlySherZ

1

你可以這樣說:

def foo bar 
    return puts "..." unless defined?(bar) == "local-variable" 
    # Otherwise, continue with the method 
    ... 
end 

然而,可變bar分配給定的參數總是被定義。 unless ...條件永遠不會滿足。所以你的問題沒有實際意義。