问题是关于朱莉娅的“最佳实践”。我已经阅读thisthis。我有一个功能

function discount_rate(n, fv, pmt, pv; pmt_type = 0)
...
end

现在的问题是我必须像这样调用方法
discount_rate( 10, 10, 10, -10 )

目前尚不清楚这些论点的含义-甚至我都忘记了。我最想做的就是写
discount_rate( n = 10, fv = 10, pmt = 10, pv = -10 )

这更清楚:更容易阅读和理解。但是我无法通过将这些参数设为keywords参数或optional参数来定义我的方法,因为它们没有自然默认值。从设计的角度来看,是否有建议的解决方法?

最佳答案

可以执行以下操作:

function discount_rate(;n=nothing,fv=nothing,pmt=nothing,pv=nothing,pmt_type=0)
    if n == nothing || fv == nothing || pmt == nothing || pv == nothing
        error("Must provide all arguments")
    end
    discount_rate(n,fv,pmt,pv,pmt_type=pmt_type)
end

function discount_rate(n, fv, pmt, pv; pmt_type = 0)
    #...
end

关于function - Julia中没有自然默认值的命名参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26447854/

10-11 18:39