gpt4 book ai didi

julia - 具有相同变量类型的 julia 中的多次分派(dispatch)

转载 作者:行者123 更新时间:2023-12-01 21:42:10 25 4
gpt4 key购买 nike

如果函数中的一个参数更改数据类型,例如 Float64Complex{Float64},通常 julia 中的多重分派(dispatch)很简单。如果参数是整数,并且我想要两个函数,一个用于偶数,另一个用于奇数,我该如何实现多重分派(dispatch)?

最佳答案

您可以使用@generated 函数解决此问题:https://docs.julialang.org/en/v1/manual/metaprogramming/#Generated-functions-1

但最简单的解决方案是在代码中使用普通分支:

function foo(x::MyType{N}) where {N}
if isodd(N)
return _oddfoo(x)
else
return _evenfoo(x)
end
end

这似乎是类型系统的失败,但如果 N 在编译时已知,编译器实际上将选择正确的分支,而你将静态分派(dispatch)到正确的函数,而不会损失性能。

这是惯用的,据我所知在大多数情况下都是推荐的解决方案。

关于julia - 具有相同变量类型的 julia 中的多次分派(dispatch),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61236082/

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