Erlang具有创建records记录函数,这些records记录由字段组成, 例如,您可以定义一个personal records,其中包含2个字段,一个是id,另一个是name字段。 然后,您可以在Erlang中创建此records记录的各种实例,以定义具有不同名称和ID的多个personal。
创建记录
使用record标识符创建,在此record标识符中,指定构成record的各个字段。通用语法和如下。
record(recordname , {Field1,Field2 ..Fieldn})
recordsname - 这是赋予record的名称。
Field1,Field2 ..Fieldn - 这些是构成record的各个字段的列表。
-module(helloLearnfk). -export([start/0]). -record(person, {name="", id}). start() -> P=#person{name="Learnfk",id=1}.
上面的示例显示了具有2个字段的record的定义,一个是id,另一个是名称。此外, record以以下方式构造-
#recordname {fieldName1=value1, fieldName2=value2 .. fieldNameN=valueN}
定义record记录时,应在其中将值分配给各个字段。
访问记录值
要访问特定记录的字段和值,应使用以下语法。
#recordname.Fieldname
recordsname - 这是赋予records记录的名称。
Fieldname - 这是需要访问的字段的名称。
分配给该字段的值。
-module(helloLearnfk). -export([start/0]). -record(person, {name="", id}). start() -> P=#person{name="Learnfk",id=1}, io:fwrite("~p~n",[P#person.id]), io:fwrite("~p~n",[P#person.name]).
上面程序的输出如下。
1 “Learnfk"
更新记录值
常规语法和如下。
#recordname.Fieldname=newvalue
recordsname - 这是赋予records的名称。
Fieldname - 这是需要访问的字段的名称。
newvalue - 这是需要分配给该字段的新值。
具有分配给字段的新值的新记录。
-module(helloLearnfk). -export([start/0]). -record(person, {name="", id}). start() -> P=#person{name="Learnfk",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(helloLearnfk). -export([start/0]). -record(person, {name="", address}). -record(employee, {person, id}). start() -> P=#employee{person=#person{name="Learnfk",address="A"},id=1}, io:fwrite("~p~n",[P#employee.id]).
在上面的示例中,需要注意以下事项-
我们首先要创建一个人的记录,该记录具有名称和地址的字段值。
然后,我们定义一个员工记录,其中将人员作为一个字段,并附加一个名为id的字段。
上面程序的输出如下。
1
参考链接
https://www.learnfk.com/erlang/erlang-records.html
标签:name,Records,记录,无涯,start,record,person,Erlang,id From: https://blog.51cto.com/u_14033984/8667505