例如,flat_map的类型规范如下。
flat_map(Enumerable.t(), (element() -> Enumerable.t())) :: Enumerable.t()
输入和输出数据类型的末尾有许多括号。为什么在那儿?
在其他语言(例如TypeScript,Haskell或Rust)中,数据类型只是不带()的类型。
谢谢。
答案 0 :(得分:7)
由于可以对某些类型进行参数化,因此可以这样指定整数列表:list(integer)
。
答案 1 :(得分:1)
万一有人需要它。 在规范中,我们可以选择使用(ar)和类型为零的函数来键入()或不键入
请记住,这仅适用于规格
混合格式不会为规范添加()
透析器没有发出其他警告
在应用编译期间没有发出其他警告
有关更多信息,请查阅hexdocs-他们正在使用@spec中的两个选项 https://hexdocs.pm/elixir/typespecs.html