gpt4 book ai didi

可选参数的 Julia 约定

转载 作者:行者123 更新时间:2023-12-04 13:57:19 27 4
gpt4 key购买 nike

假设我有一个函数,例如 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)但这似乎代码重复太多。

最佳答案

这可以。请注意,可选参数会导致调度。这意味着 if y == nothing (或等效地, if typeof(y) <: Void ),实际上会编译掉。你会得到两个不同的函数,这取决于用户是否给出了一个值。所以最后,if语句编译完成,这样做非常有效。

我会注意到,关键字参数目前并非如此。

另一种方法是有两种方法:

f(x)


f(x,y)

两种方法是否比具有 if 的一种方法更好取决于问题。自 if将使用类型信息进行编译,除了代码组织之外,这两种方法之间没有区别。

关于可选参数的 Julia 约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42499528/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com