2016-06-29 6 views
2

defグループがいくつかあります。@specを書くと、warning: clauses for the same def should be grouped together, def foo/2 was previously definedと警告されます。そのための回避策はありますか?どのようにグループ化された警告に対処するには?

警告は便利ですが、@specを無視するようにしたいと思います。

@spec foo(:id, integer) :: {:not_found} | {:ok, String.t} 
def foo(:id, id) do 
    # some logic 
end 

@spec foo(:email, String.t) :: {:not_found} | {:ok, String.t} 
def foo(:email, email) do 
    # some logic 
end 

答えて

1
@spec foo(:id, integer) :: {:not_found} | {:ok, String.t} 
@spec foo(:email, String.t) :: {:not_found} | {:ok, String.t} 

def foo(:id, id) do 
    # some logic 
end 

def foo(:email, email) do 
    # some logic 
end 

か、あなたは可能性があり、単一の仕様代わり

@spec foo(:id | :email, integer | String.t) :: {:not_found} | {:ok, String.t} 

私はそれをテストしていませんが、それは動作するはずです。

+1

ありがとうございます。私は元の方法をとり、警告を解決しました。 – hykw

関連する問題