将输入绑定到函数规范中的输出类型

Binding input to output type in function specification

我目前正在尝试自学如何编写 Elixir 程序。 我开始想知道是否有办法将函数的输出类型绑定到输入参数的类型。我习惯于做这样的事情:

public virtual T Foo<T>(List<T> bar)

如果有类似的方法,我希望:

@spec foo(t) :: t
def foo(bar), do: baz

我一直认为它是

@spec foo(bar) :: bar when bar: any()

为模块具有关联类型保留 t()

the typespec docs