有多个关键字参数的替代方案?

day*_*ter 1 julia

我正在编写一个目前已经有31个关键字参数的函数.例:

function myfunc(a::Int, b::Real, c::String;
     msize=12,
     mcolor="black",
     mtext="text",
     mwidth="regular",
     ... and many more
)
Run Code Online (Sandbox Code Playgroud)

关于这一点的一个好处是你可以使用你想要调整的几个值来调用函数,而不必事先定义和/或维护像字典这样的东西.它们可以按任何顺序提供.用户体验很好.但...

这是处理许多默认参数的最佳方法吗?如果我走得更高,我会遇到问题吗?

小智 5

您可以使用这些参数作为字段创建一个类或类型(在julia中),并将该类作为参数传递给myfunc.您可以为这些字段设置默认值,因此您无需一直设置它.这在可维护性和可读性方面会更好.