写erlang代码时,参数或者返回值到底是用{ }元组,还是[ ]列表,还是不能随便用,总结了几点:
当数据需要进行 [H|T] 处理的时候,使用[ ]列表,这是使用列表最重要的依据;其次就是这一些数据的类型是一致的。
如果参数一个结构化的数据,则使用{ }元组,这些数据共同表达了一个数据结构,但是数据之间又没有直接的联系,比如:
{"sdjcw", "123@abc", "sdjcw@xxx.com"}
三个参数分别表示用户的帐号、密码、电子邮箱,一起表达了“用户注册”的数据结构,但数据之间没有什么联系(帐号和邮箱不是一类东西),在一起传递时可以使用{ }。
那是否使用dict结构会更好?如:
[{user, "sdjcw"}, {password, "123@abc"}]
我觉得也不一定,虽然dict结构能方便的通过dict:from_list/1转换为一个dict使用,但是普通情况下直接使用值组成的元组会简单些。
至于MFA中的A(参数列表),是用[ ]括起来(貌似gen_server中只有一个参数的情况下不括也能用,不过不推荐!)。这里不管你的参数组合起来是否是有意义的数据结构,对于MFA来说,就是“一堆参数”,所以和第一条“类型是一致的”不冲突。
我能想到的就这些,欢迎补充,如有不妥请拍砖~
分享到:
相关推荐
它支持高阶函数,如函数作为参数、返回值,以及函数式编程常见的map、filter、reduce等操作。 4. **模式匹配**:Erlang的模式匹配允许在函数调用中解构复杂的数据结构,方便地提取所需信息,同时也用于case语句和...
在Erlang中,函数是第一类公民,可以作为参数传递,也可以作为返回值。此外,Erlang支持模式匹配,使得函数定义可以基于不同的输入模式执行不同的逻辑。 **三、并发与并行** Erlang的并发模型是基于轻量级进程(也...
模式匹配是Erlang中的一个重要特性,它允许开发者在函数定义中使用模式来匹配输入参数。通过这种方式,可以根据不同的输入提供不同的行为,使得代码更加清晰和易于维护。 **2.3 表达式评估** Erlang中的表达式评估...
在Erlang中,函数是第一类公民,可以作为参数传递,也可以作为返回值。函数式编程的特性使Erlang代码更易于理解和调试,因为它们通常没有副作用,这在并行计算中尤为重要。 3. **错误处理与容错** Erlang采用“let...
函数式编程的特点包括不可变数据、纯函数(没有副作用)和高阶函数(函数可以作为参数或返回值)。这种编程范式有助于编写出更简洁、可预测且易于测试的代码。 2. **并发与并行**:Erlang的并发模型基于轻量级进程...
文档应涵盖模块的用途、函数的参数和返回值、以及任何不寻常的行为或限制。 #### 九、最常见的错误 文章还列举了一些在Erlang编程中最常见的错误,包括资源泄漏、错误的错误处理、以及对并发模型的误解。了解这些...
Erlang是一种并发、分布式、面向进程的编程语言,广泛用于构建高可用性和容错性的系统。在Erlang中,列表是一种基本的数据结构,提供了...它们提供了强大的工具来处理和操作列表数据,是Erlang编程中不可或缺的一部分。
Erlang R17的API手册还会详细介绍每个函数的参数、返回值、可能的错误以及使用示例,帮助开发者更好地理解和使用这些功能。通过深入学习和实践,可以掌握Erlang的并发编程、错误处理和容错机制,这对于构建高效、...
### 并发编程在Erlang中的应用 #### 引言 Erlang是一种专为构建高并发、容错性强的分布式系统而设计的编程语言。它的设计理念深受函数式编程的影响,同时也支持过程式编程的一些特性。《并发编程在Erlang》这本书...
手册中详细解释了术语的概念以及如何在程序中使用它们。 **1.2.2 数字(Number)** Erlang 支持多种类型的数值表示,如整数、浮点数等。文档中详细介绍了不同类型的数值表示方法及运算规则。 **1.2.3 原子(Atom)** ...
【描述】"erlang-stdlib-注释版" 提示这个资源可能是一个特别版,其中对stdlib中的代码进行了详尽的注释,旨在帮助开发者更好地理解和使用Erlang的标准库。注释通常包括函数的功能解释、参数说明、返回值以及可能的...
匿名函数(Funs)在Erlang中用于高阶编程,它们可以作为参数传递给其他函数或存储在变量中,从而实现灵活的功能组合。 ##### 列表推导 列表推导是Erlang中一个强大的功能,类似于Python的列表推导式,允许基于现有...
通过`erlang:system_info(process_count)`和`erlang:memory()`函数,可以分别获取系统中的进程数量和总内存使用情况。 #### 5. 进程间通信与网络连接 在Erlang中,进程间通信主要通过发送和接收消息来实现。消息的...
5. **模式匹配与函数选择**:Erlang的模式匹配允许开发者在函数定义中指定参数模式,使得代码更简洁、易读。同时,Erlang的函数选择机制允许根据不同的参数类型执行不同的逻辑,进一步增强了其灵活性。 6. **热更新...
首先,Erlang是基于函数式编程范式的语言,这意味着它使用了数学中的函数概念,每个函数都有返回值,并且在Erlang中没有显式的return语句。函数式编程的另外一个特点是不变性,也就是所有的函数参数和变量在函数被...
BBEdit 的 Erlang 语言模块 v1.4, (2018/01/14) Erlang... 在 OTP 模块中键入对函数的调用时,Erlang 语言模块显示实际的参数顺序、参数名称以及文档中描述的返回值。下载可以从GitHub下载二进制文件: : 安装要安装该
在Erlang项目中,通常将meck与EUnit或PropEr等测试框架结合使用,创建全面的测试套件。通过meck,可以有效地测试复杂系统中的单个组件,而无需担心它们的依赖关系。 总的来说,meck为Erlang开发者提供了一种强大的...
Erlang中的`gen_server`模块是OTP (Open Telecom Platform)设计原则的一部分,它提供了一种标准的方式来实现客户端-服务器架构。gen_server行为模块旨在简化并发处理和错误管理,允许多个客户端共享服务端的资源。它...