binary 是 Erlang 中一个具有特色的数据结构,用于处理大块的“原始的”字节块。如果没有 binary 这种数据类型,在 Erlang 中处理字节流的话可能还需要像列表或元组这样的数据结构。根据之前对这些数据结构 Eterm 的描述,数据块中的每一个字节都需要一个或两个机器字来表达,明显 ...
本文介绍 Erlang 语言中使用的各种数据类型以及这些数据类型在 Erlang 虚拟机内部的表示和实现。了解数据类型的实现可以帮助大家在实际开发过程中正确选择数据类型,并且可以更好更高效地操作这些数据类型。本文对 Erlang 数据类型及实现的总结目前是最全面的,可以作为 Erlang 数据结构的参考手册。尽管我写的内容都试图在各种参考资料和 Erlang 虚拟机源代码中验证,但是难免会有理解错 ...
2013-11-15 00:38 1 2555 推荐指数:
binary 是 Erlang 中一个具有特色的数据结构,用于处理大块的“原始的”字节块。如果没有 binary 这种数据类型,在 Erlang 中处理字节流的话可能还需要像列表或元组这样的数据结构。根据之前对这些数据结构 Eterm 的描述,数据块中的每一个字节都需要一个或两个机器字来表达,明显 ...
列表 Erlang 中的列表是通过链表实现的,表示列表的 Eterm 就是这个链表的起点。列表 Eterm 中除去 2 位标签 01 之外,剩下的高 62 位表示指向列表中第一个元素的指针的高 62 位。我们在生成一个列表的时候,会采用这样的语法:L = [Head | Tail],Head ...
Erlang 数据类型的内部表示和实现 Erlang 中的变量在绑定之前是自由的,非绑定变量可以绑定一次任意类型的数据。为了支持这种类型系统,Erlang 虚拟机采用的实现方法是用一个带有标签的机器字表示所有类型的数据,这个机器字就叫做 term。在 32 位机器上,一个 term 为 32 位 ...
Boxed 对象 Boxed 对象是比较复杂的对象,在 Erlang 中主标签为 10 的 Eterm 表示一个对 boxed 对象的引用。这个 Eterm 除去标签之后剩下的实际上是一个指针,指向具体的 boxed 对象。如下图所示,boxed 对象由对象头和具体的数据组成,这些字都排布在一起 ...
抽象数据类型的表示与实现 (1)预定义常扯及类型: (2)数据结构的表示(存储结构)用类型定义(typedef)描述;数据元素类型约定为ElemType, 由用户在使用该数据类型时自行定义。 (3)基本操作的算法都用如下格式的函数来描述: 当函数返回值为函数结果状态代码时, 函数 ...
吧! 在讲述数据类型前先简单的介绍一下Erlang中的变量,Erlang中的变量和其他语言中的变量相比 ...
引言 最近我在读 Robert Sedgewick 和 Kevin Wayne 的经典著作《算法(第4版)》: 这本书第4章第1节讨论无向图,下面就是无向图的 API(英文版第522页): 对于非稠密的无向图,标准表示是使用邻接表,将无向图的每个顶点的所有相邻顶点都保存在该顶点 ...
在Java中,float和double都表示浮点型数,所表示的浮点数是近似值,而不是精确的值,所以,这两种数据类型不适合作为价格的数据类型。Java语言提供另外一种数据类型BigDecimal,可以用来表示精确的浮点数。 运行结果: 注意,new 一个 ...