当前位置:  开发笔记 > 编程语言 > 正文

有没有办法在Elixir中检查函数的arity?

如何解决《有没有办法在Elixir中检查函数的arity?》经验,为你挑选了1个好方法。

如果我正在编写一个传递另一个函数的函数,有没有办法检查我传递的函数的arity,或者模式匹配不同的arities?我可以使用is_function/2来检查特定的arities,但这将是一个获取数字的尴尬方式.



1> whatyouhide..:

你可以用:erlang.fun_info/1; 它返回一堆关于给定函数的信息,包括它的arity:

iex> :erlang.fun_info(fn -> :ok end)[:arity]
0
iex> :erlang.fun_info(fn(_, _, _) -> :ok end)[:arity]
3

正如我链接的文档所说,此函数主要用于调试目的,但它可用于确定函数的arity.

推荐阅读
U友50081205_653
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有