Erlang类型定义

时间:2017-11-08 16:49:35

标签: inheritance types erlang

我是Erlang的新手,并试图弄清楚如何定义类型,以便它们可以用作其他复杂类型的构建块。用于defniing简单类型

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

可以使用。但是假设我们想要定义src和dst mac地址并使用简单的mac地址作为基本构建块并在其基础上构建。那么我们将如何做到这一点,

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

没关系,因为我希望Macaddress是之前定义的macaddress类型。

如果您有任何想法和感谢,请告诉我。

1 个答案:

答案 0 :(得分:4)

您使用此类型的方式与使用内置类型的方式相同,编写macadress()作为复杂类型定义的一部分:

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

(假设你真的想要一个单元素元组的列表,其中这个元素是macadress()。)

哑巴使用示例:

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