elixir typespecs中的参数化可枚举类型

是否可以参数化elixir中的Enumerable.t类型?

所以目前我有一个函数,它需要一个foo列表:

@spec the_awesome([foo]) :: any
def the awesome(foos) do
  Enum.reduce(foos, &(bar(&2, &1)))
end

实际上它不一定是一个列表! 因为唯一的函数调用来自Enum模块,所以我想更改typespec来接受任何Enumerable,但要保证Enumerable必须完全由foo s组成

就像是

@spec the_awesome(Enumerable.t(foo)) :: any

这可能吗?


不幸的是现在不行。 如果我们真的希望他们具有表达能力,我们需要教授透析员如何处理协议,并且没有计划这样做。

链接地址: http://www.djcxy.com/p/84005.html

上一篇: parameterized enumerable type in elixir typespecs

下一篇: bootstrap daterangepicker open by button