function - 检查函数的参数是否为函数

标签 function parameters julia singleton typeof

我有一个函数:

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/

相关文章:

javascript - 用户在输入字段中输入前 4 位数字后运行函数

java - 如何在执行操作时从操作中获取请求参数

delphi - 在 Delphi 中使用单个函数释放内存和 nil

julia - 如何在 Julia 中导入自定义模块

ipython - 无法打开 IJulia;它改为启动 IPython

vector - Julia - 如何使用数组理解和三元运算符来初始化向量

javascript - 将数组从函数中推送到另一个函数中

python - 脚本正在跳过功能

来自《Kivy Blueprints》一书的 Python kivy 代码

MySQL : When stored procedure parameter name is the same as table column name