问题是关于朱莉娅的“最佳实践”。我已经阅读this和this。我有一个功能
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/