例如,在模块字符串的这种类型规范中:
@spec validate(String.t) :: {:atom}
这是什么意思?以及如何通过iex
进行测试?
** (UndefinedFunctionError) function String.t/0 is undefined or private
(elixir) String.t()
更新
看起来有些人没有看到通过iex测试哪种东西的必要性
对于我们其他正在学习灵药的人,我们可以这样做:
iex(8)> t String
@type t() :: binary()
@type codepoint() :: t()
@type grapheme() :: t()
@type pattern() :: t() | [t()] | :binary.cp()
iex(9)> t(String)
@type t() :: binary()
@type codepoint() :: t()
@type grapheme() :: t()
@type pattern() :: t() | [t()] | :binary.cp()
同样适用于.t
如果你想引用“字符串”类型(由...操作的那个) 在String模块中的函数),改为使用String.t / 0类型。