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