簡體   English   中英

朱莉婭:函數的可選參數類型為Vector,但默認為null?

[英]Julia: function with optional argument of type Vector but default to null?

我有一個函數f(x) 我希望該函數具有類型為vector的可選參數。 例如, f(x; y::Vector=[1,2,3]) 但是,我希望默認值是其他值(空?缺少?無效?),以便我可以輕松地捕獲它並對其作出反應。

在R中,我會說function(x, y=NULL){} ,然后說if(is.null(y)){whatever}

做類似事情的最朱利安方法是什么?

Engineero的注釋中引用的模式是最干凈的,但它假定一個位置自變量。 如果您堅持要對函數使用關鍵字參數(如您在問題中所做的那樣),請使用:

function f(x; y::Union{Vector, Nothing}=nothing)
    if y === nothing
        # do something
    else
        # do something else
    end
end

通常只有在您有很多關鍵字參數時才需要這樣做,否則我建議您定義具有不同位置參數簽名的方法。

當然,如果發現更可取,則完全不使用此模式nothing可以用於位置參數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM