在Elixir中的函数规范中指定一个类型

时间:2017-05-08 15:50:10

标签: elixir specifications

如果函数规范中的类型可以是任何可以转换为字符串的类型,我如何指定类型?

@spec push(queue :: %MyQueue{}, data :: ??) :: {}

1 个答案:

答案 0 :(得分:0)

如果“可以转换为字符串”,则表示to_string/1函数适用于任何已实现String.Chars协议的类型,您可以使用String.Chars.t类型:

@spec push(queue :: %MyQueue{}, data :: String.Chars.t) :: {}

IO模块中的许多功能在其规范中使用此类型,例如IO.write/2