如果函数规范中的类型可以是任何可以转换为字符串的类型,我如何指定类型?
@spec push(queue :: %MyQueue{}, data :: ??) :: {}
答案 0 :(得分:0)
如果“可以转换为字符串”,则表示to_string/1
函数适用于任何已实现String.Chars
协议的类型,您可以使用String.Chars.t
类型:
@spec push(queue :: %MyQueue{}, data :: String.Chars.t) :: {}
IO
模块中的许多功能在其规范中使用此类型,例如IO.write/2