2017-06-22 3 views
4

erlangプログラミングの初心者です。私には多くの疑問がある。それらの1つは-specの使用です。Erlangの構文で "-spec"は何をしますか?関数が-specの有無にかかわらず作成された場合のdiffrenceは何ですか?

Erlangの構文で "-spec"とは何ですか?関数がでたり-spec私はグーグルで検索

-spec add(Number, Number). 
add(A, B) -> 
    A + B. 

が、理解することができないと-spec

add(A, B) -> 
    A + B. 

機能なし-spec

機能せずに作成された場合の違いは何ですか-specの正確な使用。誰でも説明できますか?

答えて

6

specは、コードに関する情報を追加します。これは関数のアリティを示し、-type宣言と組み合わせて、文書化やバグ検出ツールに役立ちます。

Edocのようなツールは、ドキュメントの構築にこれらのタイプの仕様を使用します。 Dialyzerのようなツールは、コードの静的解析にツールを使用します。

したがって、実行中のコードでは直接使用されませんが、多くのツールでコードをよりよく理解するために使用されます。

+0

erlangモジュールで-specを使用しないと害はありません。あなたの答えが今私にはっきりとありがとう。 –

+1

@Shahid、Erlangは '動的型付けされた'言語として発明されました。つまり、C/C++のように、変数の型を宣言しません。 C/C++プログラマのように動的に型付けされた言語が好きな人もいるので、 '-spec'と' -type'を言語に追加することで、Erlangを静的型付け言語のようにしようとしました。 erlangを学ぶことは、 '-spec'や' -type'がなくても、さらに混乱を招くだけで十分です。今はそれらについては忘れてください。でも、彼らが何のために使われているのかをはっきりと理解するには、http://learnyousomeerlang.com/types-or-lack-thereof – 7stud

+0

@ 7studを参照してください。私はあまりにも多くの他の言語に比べて学習が非常に難しいことを認識しています。しかし、その面白い言語を学ぶ。ありがとうございました! –

関連する問題