3

iex でモジュール through t コマンドから typespec を表示できます。つまり、次のようになります。

iex(1)> t Enum
@type t() :: Enumerable.t()
@type acc() :: any()
@type element() :: any()
@type index() :: integer()
@type default() :: any()

しかし、たとえば Enum.reverse から typespec を確認するにはどうすればよいですか?

ソースコードに行くとわかります

  @spec reverse(t) :: list
  def reverse(enumerable)

tEnum自体@type t() :: Enumerable.t()を表し、返すことを期待していると思いますlist

たとえばPythonでは、シェルを介してメソッドドキュメントを取得できます??(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."""
4

1 に答える 1