Erlang - Records(记录)

Erlang - Records(记录) 首页 / Erlang入门教程 / Erlang - Records(记录)

Erlang具有创建records记录函数,这些records记录由字段组成, 例如,您可以定义一个personal records,其中包含2个字段,一个是id,另一个是name字段。 然后,您可以在Erlang中创建此records记录的各种实例,以定义具有不同名称和ID的多个personal。

创建记录

使用record标识符创建,在此record标识符中,指定构成record的各个字段。通用语法和如下。

链接:https://www.learnfk.comhttps://www.learnfk.com/erlang/erlang-records.html

来源:LearnFk无涯教程网

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

零基础学Python -〔尹会生〕

程序员进阶攻略 -〔胡峰〕

MySQL实战45讲 -〔林晓斌〕

Go语言从入门到实战 -〔蔡超〕

Java性能调优实战 -〔刘超〕

软件设计之美 -〔郑晔〕

零基础实战机器学习 -〔黄佳〕

Tony Bai · Go语言第一课 -〔Tony Bai〕

计算机基础实战课 -〔彭东〕

好记忆不如烂笔头。留下您的足迹吧 :)