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