Erlang中的长度
by cnDenis http://cndenis.iteye.com 2013年4月27日
值得吐槽的是居然连求长度这么基础的方法,Erlang都没有统一起来。 分为len和size两大对立阵营:
len阵营
- 列表(字符串是列表的一种)的长度用
length/1
或string:len/1
。 别看后面那个打着string开头,对于不是字符串的列表也照用不误, 从源代码看其实就是前一个的马甲。 - queue模块是len阵营的,使用
queue:len/1
。
size阵营
- 二进制串的长度用
size/1
,或是用byte_size/1
和bit_size/1
也行,分别是 比特长度和位长度,1byte = 8bit。 - 元组的长度也用
size/1
,等于其元素的个数。元组的比特长度和位长度不可用。 - dict,sets,orddict,ordsets,array这几个模块也是size阵营的,使用其各自模块 下的size函数。
- ets比较特别,使用
ets:info(Tab, size)
来获取长度,Tab是表的id,或是已注册的表的名字。
另外,特立独行的“原子”没有长度。
相关推荐
- **模式匹配**: Erlang中的变量支持模式匹配,可以在函数定义中使用。 - **守卫表达式**: 守卫表达式允许在函数定义中添加条件判断。 - **作用域**: 变量的作用域限制了其可见性和生命周期。 - **更多关于列表*...
5. **监控和管理**:RabbitMQ 3.9.13提供了丰富的管理界面和API,便于监控和管理消息队列的状态,包括查看队列长度、消费速率、节点状态等。同时,它还支持通过Prometheus和Graphite等工具进行性能监控。 接下来,...
Erlang C公式的应用不仅限于确定所需的坐席数量,还能帮助分析等待队列长度、平均等待时间和呼叫放弃率,进而优化运营效率和服务质量。通过调整m值,可以找到在满足特定服务水平(如80%的电话在20秒内被接听)下的...
在给定的文件内容中,通过Erlang语言实现了KMP算法,以下是从文件内容中提取的关键知识点: 1. kmp_search/2函数:这是KMP算法的主函数,用于检查子串(SubString)是否存在于主串(String)中。该函数调用了kmp_...
列表推导是Erlang中非常强大的特性之一,它们不仅提高了代码的可读性和简洁性,而且通常比手动迭代更有效率。列表推导会自动进行优化,比如提前终止循环以避免不必要的计算。 ##### 1.2.3 误区:尾递归函数比普通...
### 并发编程在Erlang中的应用 #### 标题和描述中的核心知识点解析 **并发编程在Erlang中的应用(Concurrent Programming in ERLANG)** 本标题及描述明确指出了文档的主要内容是关于如何在Erlang语言中进行并发...
Erlang库中的iconv是一个用于字符编码转换的模块,它在处理多语言文本和不同编码格式时扮演着重要角色。Erlang是一种并发、分布式、面向进程的编程语言,常用于构建高可用性和容错性的系统。在这个库中,iconv提供了...
- **模块定义**: 在Erlang中,所有的代码都包含在模块之中。例如:`-module(tut).` 定义了一个名为`tut`的模块。 - **函数定义与导出**: 函数定义通常使用以下格式:`function_name(arguments) -> expression.` 而`-...
正如书中引用Joe Armstrong(Erlang语言的主要设计者之一)的话:“Erlang程序模拟了我们思考和互动的方式。”这意味着Erlang的设计原则与现实世界中的对象行为相一致,通过编写能够并行运行的程序来模拟现实世界的...
标题中的“HW2.rar_erlang_erlang C”可能是指一个关于Erlang C模型的作业或项目,存储在名为“HW2”的RAR压缩文件中。Erlang C是一种用于预测电话交换系统中呼叫中心拥塞的数学模型,由通信工程师Agner Krarup ...
在Erlang的stdlib(标准库)中,你可以找到各种用于处理日常编程任务的模块和函数。以下是一些核心模块和它们的关键功能: 1. **lists**: 这个模块提供了处理列表的各种函数,如`append/2`用于连接两个列表,`...
匿名函数(Funs)在Erlang中用于高阶编程,它们可以作为参数传递给其他函数或存储在变量中,从而实现灵活的功能组合。 ##### 列表推导 列表推导是Erlang中一个强大的功能,类似于Python的列表推导式,允许基于现有...
在Erlang中处理数据集合,尤其是列表(list)结构是很常见的。本文将讨论如何在Erlang中通过遍历列表来获取位于特定位置元素的最大值。 在Erlang中,列表是由一系列元素组成的有序集合,元素可以是任意数据类型,...
### Erlang 参考手册概览与核心知识点详解 #### 1.1 引言 ...以上内容仅为《Erlang 参考手册》的部分章节概述,手册中还包含了更多的技术细节和实际案例,旨在帮助读者全面掌握 Erlang 编程语言。
5. 分析process状态:通过`erlang:process_info()`可以获取特定process的信息,比如其message_queue_len(消息队列长度)。如果发现有process的消息队列中消息未被处理,这可能是导致内存泄漏的原因之一。 6. 定位...
vmstats 是一个小型的 Erlang 应用程序,它收集 Erlang VM 上的指标并将它们发送到一个可配置的接收器(例如,StatsD)。 特征 vmstats 收集的不同指标包括: error_logger队列长度 加载的模块数 进程数 进程限制 ...
按照安装向导的指示,接受许可协议,选择安装路径,确保将Erlang添加到系统的PATH环境变量中,以便后续RabbitMQ能够找到它。 2. **安装RabbitMQ**:访问RabbitMQ官方网站,下载适合Windows的RabbitMQ Server安装包...
二进制数据在Erlang中称为`binary`,它由一系列字节组成,可以是任意长度。 **binpp:Erlang二进制漂亮打印工具** `binpp`,全称为"Binary Pretty Printer",是一个Erlang库,其主要功能是将复杂的二进制数据结构...