- Erlang 教程
- Erlang - 首页
- Erlang - 概述
- Erlang - 环境
- Erlang - 基本语法
- Erlang - Shell
- Erlang - 数据类型
- Erlang - 变量
- Erlang - 运算符
- Erlang - 循环
- Erlang - 决策
- Erlang - 函数
- Erlang - 模块
- Erlang - 递归
- Erlang - 数字
- Erlang - 字符串
- Erlang - 列表
- Erlang - 文件 I/O
- Erlang - 原子
- Erlang - 映射
- Erlang - 元组
- Erlang - 记录
- Erlang - 异常
- Erlang - 宏
- Erlang - 头文件
- Erlang - 预处理器
- Erlang - 模式匹配
- Erlang - 保护
- Erlang - BIFS
- Erlang - 二进制
- Erlang - 函数
- Erlang - 进程
- Erlang - 邮件
- Erlang - 数据库
- Erlang - 端口
- Erlang - 分布式编程
- Erlang - OTP
- Erlang - 并发
- Erlang - 性能
- Erlang - 驱动程序
- Erlang - Web编程
- Erlang 有用资源
- Erlang - 快速指南
- Erlang - 有用资源
- Erlang - 讨论
Erlang - 记录
Erlang 提供了创建记录的额外功能。这些记录由字段组成。例如,您可以定义一个包含两个字段的个人记录,一个是 ID 字段,另一个是姓名字段。在 Erlang 中,您可以创建此记录的各种实例来定义具有不同姓名和 ID 的多个人。
让我们探讨如何使用记录。
创建记录
记录是使用记录标识符创建的。在此记录标识符中,您指定构成记录的各个字段。下面给出一般语法和示例。
语法
record(recordname , {Field1,Field2 ..Fieldn})
参数
recordname − 这是赋予记录的名称。
Field1,Field2 ..Fieldn − 这些是构成记录的各个字段的列表。
返回值
无
例如
-module(helloworld).
-export([start/0]).
-record(person, {name = "", id}).
start() ->
P = #person{name="John",id = 1}.
上面的示例显示了具有两个字段的记录的定义,一个是 ID,另一个是名称。此外,记录的构造方式如下:
语法
#recordname {fieldName1 = value1, fieldName2 = value2 .. fieldNameN = valueN}
在定义记录实例时,您将值分配给各个字段。
访问记录的值
要访问特定记录的字段和值,应使用以下语法。
语法
#recordname.Fieldname
参数
recordname − 这是赋予记录的名称。
Fieldname − 这是需要访问的字段的名称。
返回值
分配给字段的值。
例如
-module(helloworld).
-export([start/0]).
-record(person, {name = "", id}).
start() ->
P = #person{name = "John",id = 1},
io:fwrite("~p~n",[P#person.id]),
io:fwrite("~p~n",[P#person.name]).
输出
上述程序的输出如下所示。
1 “John”
更新记录的值
记录值的更新是通过将值更改为特定字段,然后将记录分配给新的变量名来完成的。下面给出一般语法和示例。
语法
#recordname.Fieldname = newvalue
参数
recordname − 这是赋予记录的名称。
Fieldname − 这是需要访问的字段的名称。
newvalue − 这是需要分配给字段的新值。
返回值
具有分配给字段的新值的新记录。
例如
-module(helloworld).
-export([start/0]).
-record(person, {name = "", id}).
start() ->
P = #person{name = "John",id = 1},
P1 = P#person{name = "Dan"},
io:fwrite("~p~n",[P1#person.id]),
io:fwrite("~p~n",[P1#person.name]).
输出
上述程序的输出如下所示:
1 “Dan”
嵌套记录
Erlang 还具有嵌套记录的功能。以下示例显示了如何创建这些嵌套记录。
例如
-module(helloworld).
-export([start/0]).
-record(person, {name = "", address}).
-record(employee, {person, id}).
start() ->
P = #employee{person = #person{name = "John",address = "A"},id = 1},
io:fwrite("~p~n",[P#employee.id]).
在上面的示例中,需要注意以下几点:
我们首先创建一个人的记录,它具有名称和地址字段值。
然后,我们定义一个雇员记录,它将人作为字段,以及一个名为 ID 的附加字段。
输出
上述程序的输出如下所示。
1
广告