gpt4 book ai didi

algorithm - 如何在函数中选择算法

转载 作者:行者123 更新时间:2023-12-05 08:36:26 25 4
gpt4 key购买 nike

场景是这样的:

有一种算法叫做alg1,还有一种算法叫做alg2

还有一个叫solve的入口函数,我怎么把alg1传给solve然后我就可以用alg1 进行计算,并通过alg2alg2 进行计算?

solve(a, b, alg1) #return the results computed with alg1
solve(a, b, alg2) #return the results computed with alg2

我是否需要将算法编写为函数?

最佳答案

一个典型的优雅 API 可以基于多重分派(dispatch)机制并且看起来像这样:

abstract type AbstractAlgo end
struct Algo1 <: AbstractAlgo end
struct Algo2 <: AbstractAlgo
param::Int
end

function solve(a,b,alg::T) where T<:AbstractAlgo
throw("Algorithm $T is not yet implemented")
end
function solve(a,b,alg::Algo1)
println("solving...")
end

一些测试:

julia> solve(1,2,Algo1())
solving...

julia> solve(1,2,Algo2(777))
ERROR: "Algorithm Algo2 is not yet implemented"

关于algorithm - 如何在函数中选择算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69150744/

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