我有一个函数f(x)
.我希望该函数具有矢量类型的可选参数。例如,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
一起使用,也可以将其用于位置参数。