我有一个函数:
function f(a)
do something that depends on a
end
哪个行为取决于参数a
。这可以是字符串、整数或函数本身。为此,我想检查参数本身是否是一个函数。
function f(a)
if typeof(a) == int
...
end
...
end
我尝试使用 typeof(a)
。如果 a
是一个函数,我得到:
typeof(a) (singleton type of function a, subtype of Function)
但如果我然后使用:
typeof(a) == Function
它是false
。
最佳答案
您还可以考虑使用 Julia 的多重分派(dispatch)功能:
function f(x::Function)
# do something with a Function
end
funcion f(x::Int)
# do something with an Int
end
而不是在函数内部使用条件。
如果编译器可以在编译时进行类型推断并且更像 Julian,那么这样做的好处是速度更快。
关于function - 检查函数的参数是否为函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74856740/