2017-12-20 8 views
1

を通じてという名前の関数からtypespecsを表示するにはすなわち:どのようにあなたは、IEXにtコマンドthorughモジュールからtypespecsを表示することができIEX

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

しかし、どのように、私は例Enum.reverse用からtypespecsを見ることができますか?

私は、ソースコードに行くなら、私はあなたがメソッドのドキュメントを取得することができます列挙型自体@type t() :: Enumerable.t()ためtスタンドを想定し、例えばPythonでlist

を返すことを期待

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

を見ます??とシェルを介して(のpython doesntの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.""" 

答えて

1

枚のIEx.Helpers.h/1プリント機能の文書化に伴いtypespec:IEx.Helpersモジュール、私は唯一の機能のtypespecを印刷し、組み込みヘルパー関数がないと思うの迅速な読み取り後

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] 

編集:@specは現在のElixir(1.5.3)の安定版では表示されません。 Elixir 1.6のこの機能will be present

+0

mmmどのバージョンのelixir/iexをお使いですか? iex(37)> h Enum.reverse/1 def reverse(enumerable) 逆の順序で列挙可能な要素のリストを返します。 ##例: iex> Enum.reverse([1,2,3]) [3,2,1] – lapinkoira

+0

ありがとうございます、私は1.6-devを実行していました。この機能はまだリリースされていないv1.6で追加されました。 https://github.com/elixir-lang/elixir/blob/afd51e82d5f443e8aba5932ca3f50d13e828fd7d/CHANGELOG.md#iexを参照してください。 – Dogbert

+1

ああ涼しい、問題ない、1.6のための良い機能は、人々が知っているので、答えを更新! – lapinkoira

関連する問題