[英]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.