长生不老药类型规范中的参数化可枚举类型
parameterized enumerable type in elixir typespecs
是否可以在 elixir 中参数化 Enumerable.t
类型?
所以目前我有一个函数接受 foo
s:
的列表
@spec the_awesome([foo]) :: any
def the awesome(foos) do
Enum.reduce(foos, &(bar(&2, &1)))
end
而且真的不必是列表!因为唯一的函数调用来自 Enum
模块,所以我想更改类型规范以采用任何 Enumerable,但保留 Enumerable 必须完全由 foo
s
组成的要求
类似
@spec the_awesome(Enumerable.t(foo)) :: any
这可能吗?
很遗憾,现在还没有。如果我们真的希望透析器具有表现力并且没有这样做的计划,我们将需要教透析器如何处理协议。
是否可以在 elixir 中参数化 Enumerable.t
类型?
所以目前我有一个函数接受 foo
s:
@spec the_awesome([foo]) :: any
def the awesome(foos) do
Enum.reduce(foos, &(bar(&2, &1)))
end
而且真的不必是列表!因为唯一的函数调用来自 Enum
模块,所以我想更改类型规范以采用任何 Enumerable,但保留 Enumerable 必须完全由 foo
s
类似
@spec the_awesome(Enumerable.t(foo)) :: any
这可能吗?
很遗憾,现在还没有。如果我们真的希望透析器具有表现力并且没有这样做的计划,我们将需要教透析器如何处理协议。