【发布时间】:2018-01-29 02:04:04
【问题描述】:
有没有办法在 Julia 中检查函数是否有关键字参数?我正在寻找像 has_kwargs(fun::Function) 这样的东西,如果 fun 有一个带有关键字参数的方法,它将返回 true。
高层的想法是构建一个函数:
function master_fun(foo::Any, fun::Function, ar::Tuple, kw::Tuple)
if has_kwargs(fun)
fun(ar... ; kw...)
else
fun(ar...)
end
end
【问题讨论】:
-
为什么需要这样构建函数?我不知道
foo是什么,但是使用默认值怎么样:ar::Tuple=(), kw::Tuple=()?如果 fun 有 kwargs,大概 kw 持有它们(在你的例子中)。 -
我有一个与此相关的问题:github.com/JuliaLang/julia/issues/20555
-
感谢您的回答,如果您将 kw = () 传递给函数,则会引发 BoundsError。
标签: julia metaprogramming