如何通过 iex 显示命名函数的类型规范
How to display typespecs from a named function through iex
您可以在 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
代表枚举本身 @type t() :: Enumerable.t()
并期望 return 一个 list
例如,在 python 中,您可以使用 ??
通过 shell 获取方法文档(python 未实现类型规范,但您明白了)
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."""
IEx.Helpers.h/1
打印类型规范以及函数的文档:
iex(1)> h Enum.reverse/1
def reverse(enumerable)
@spec reverse(t()) :: list()
Returns a list of elements in enumerable in reverse order.
## Examples
iex> Enum.reverse([1, 2, 3])
[3, 2, 1]
快速阅读 IEx.Helpers
模块后,我认为没有仅打印函数类型规范的内置辅助函数。
编辑:@spec
未在 Elixir (1.5.3) 的当前稳定版本中打印。 Elixir 1.6 中的此功能 will be present。
您可以在 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
代表枚举本身 @type t() :: Enumerable.t()
并期望 return 一个 list
例如,在 python 中,您可以使用 ??
通过 shell 获取方法文档(python 未实现类型规范,但您明白了)
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."""
IEx.Helpers.h/1
打印类型规范以及函数的文档:
iex(1)> h Enum.reverse/1
def reverse(enumerable)
@spec reverse(t()) :: list()
Returns a list of elements in enumerable in reverse order.
## Examples
iex> Enum.reverse([1, 2, 3])
[3, 2, 1]
快速阅读 IEx.Helpers
模块后,我认为没有仅打印函数类型规范的内置辅助函数。
编辑:@spec
未在 Elixir (1.5.3) 的当前稳定版本中打印。 Elixir 1.6 中的此功能 will be present。