2017-11-08 13 views
2

Erlangを初めて勉強し、型を定義して他の複合型のビルディングブロックとして使用できるようにする方法を見つけようとしています。単純型Erlang型定義

-type macaddress():: <<_:48>>.

をdefniingするために使用することができます。しかし、srcとdstのMACアドレスを定義し、シンプルなMACアドレスを基本ビルディングブロックとして使用して構築したいとします。その後、我々は、私が前に定義された型なmacaddressであることがMACADDRESSを希望として

-type srcmacaddress(Macaddress):: [{Macaddress}]. -type dstmacaddress(Macaddress)::[{Macaddress}].

は大丈夫だろう、という方法を行います。

ご意見やご感想がありましたら教えてください。

答えて

4

あなたはこのタイプにあなたが使用するのと同じ方法を使用する組み込み型、複合型の定義の一部としてmacadress()を書く:あなたは本当に単一要素のタプル場所のリストが欲しい

-type srcmacaddress() :: [{macadress()}]. 

(と仮定すると、この単一の要素がmacadress()ある)

ダム使用例:。

-spec foo(macadress()) -> srcmacaddress(). 
foo(X) -> [{X}]. 
+0

感謝し、それをどのように使用するか、あなたが例を与えることができる – Coder

+0

もう一度、他のタイプと同じ方法です。しかし、私は例を追加しました。 –

+0

http://learnyousomeerlang.com/types-or-lack-thereofとhttp://learnyousomeerlang.com/dialyzerのタイプに関する詳細 –