您可以通过 iex 上的命令从模块显示类型规范,即:
iex(1)> t Enum
@type t() :: Enumerable.t()
@type acc() :: any()
@type element() :: any()
@type index() :: integer()
@type default() :: any()
但是我如何从例如 Enum.reverse 中查看类型规范?
如果我转到源代码,那么我会看到
@spec reverse(t) :: list
def reverse(enumerable)
我认为t
代表 Enum 本身@type t() :: Enumerable.t()
并期望返回一个list
例如,在 python 中,你可以通过 shell 获取一个方法文档??
(python 没有实现 typespecs,但你明白了)
In [1]: from urllib2 import urlparse
In [2]: urlparse??
def urlparse(url, scheme='', allow_fragments=True):
"""Parse a URL into 6 components:
<scheme>://<netloc>/<path>;<params>?<query>#<fragment>
Return a 6-tuple: (scheme, netloc, path, params, query, fragment).
Note that we don't break the components up in smaller bits
(e.g. netloc is a single string) and we don't expand % escapes."""