3
說我有一個函數,如f(x,y)
但y
參數是可選的。作爲可選參數設置y
的首選方法是什麼?一個選項適用於我:朱莉婭約定的可選參數
function f(x, y=nothing)
# do stuff
if y == nothing
# do stuff
else
# do stuff
end
# do stuff
end
但這是首選的方式嗎?我無法將y
設置爲計算中使用的單個默認值,因爲在y
什麼都不是的情況下,會有不同的計算結果。我也可以有單獨的功能f(x)
和f(x,y)
但這似乎是太多的代碼重複。
謝謝!您的版本是否檢查y是否沒有更好的/首選的方式? – ChrKroer
我相信'y == Nothing'是檢查值會被編譯掉的一種情況,因爲'nothing'的唯一方法是使用'typeof(y)<:Void'。但是如果你總是使用類型檢查,你可以知道在類型穩定的函數中它們會被編譯掉。這個事實很安全。這是因爲類型穩定的函數肯定會知道類型,但不一定是值。 '虛空'是不同的,雖然 –
我敢肯定這種方式是好的,但問題是什麼是首選的方式,首選的方式通常(但不是總是)定義兩個單獨的方法'f(x)'和' f(x,y)'。特別是如果它使代碼更清潔。 – DNF