首页 > 其他分享 >无涯教程-Erlang - Records(记录)

无涯教程-Erlang - Records(记录)

时间:2023-12-03 13:31:50浏览次数:50  
标签:name Records 记录 无涯 start record person Erlang id

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

相关文章

  • 无涯教程-Erlang - Maps(映射)
    Maps中的每个键-值(key-value)关联称为关联对,该对中的键和值部分称为元素,关联对的数量被称为Map的大小。我们定义了具有2个Maps的MapM1,map_size是用Erlang定义的内置函数,可用于查看Map的大小。-module(helloLearnfk).-export([start/0]).start()->M1=#{name=>john......
  • 无涯教程-Erlang - 文件I/O
    使用I/O时,Erlang提供了许多方法。它具有更简单的类,可为文件提供以下函数-读取文件写入文件查看文件是文件还是目录让我们探讨一下Erlang提供的一些文件操作,出于这些示例的目的,我们将假设有一个名为NewFile.txt的文件,其中包含以下文本行Example1Example2Example3在以下......
  • 无涯教程-Erlang - Strings(字符串)
    通过将字符串括在引号中,可以在Erlang中构造一个字符串文字,需要使用双引号(如"HelloLearnfk")构造Erlang中的字符串。-module(helloLearnfk).-export([start/0]).start()->Str1="Thisisastring",io:fwrite("~p~n",[Str1]).上面程序的输出将是-“Thisisa......
  • 无涯教程-Erlang - Lists(列表)
    列表是用于存储数据项集合的结构,在Erlang中,列表是通过将值括在方括号中来创建的。-module(helloLearnfk).-export([start/0]).start()->Lst1=[1,2,3],io:fwrite("~w~n",[Lst1]).上面示例的输出将是-[123]现在让我们讨论可用于列表的各种方法。Sr.No方法......
  • 无涯教程-Erlang - Numbers(数字)
    在Erlang中,有两种数字类型:整数(integers)和浮点数(floats)。整数示例:-module(helloLearnfk).-export([start/0]).start()->io:fwrite("~w",[1+1]).上面程序的输出如下:2浮点数示例:-module(helloLearnfk).-export([start/0]).start()->io:fwrite("~......
  • 无涯教程-Erlang - 递归
    递归是Erlang的重要组成部分,首先,让我们看看如何通过实现阶乘程序来实现简单的递归。-module(helloLearnfk).-export([fac/1,start/0]).fac(N)whenN==0->1;fac(N)whenN>0->N*fac(N-1).start()->X=fac(4),io:fwrite("~w",[X]).关于上述程序,需要......
  • 无涯教程-Erlang - 运算符
    Erlang具有以下类型的运算符-算术运算符关系运算符逻辑运算符按位运算符算术运算符Erlang语言支持普通的算术运算符,就像任何一种语言一样,以下是Erlang中可用的算术运算符。运算符描述示例+加1+2=3-减1-2=-1*乘2*2=4/除2/2=1rem余数3rem2=1div......
  • 无涯教程-Erlang - 变量声明
    在Erlang中,所有变量都必须以大写字母开头,要注意的一件事是变量是不可变的,这意味着要更改变量的值,需要将其销毁并重新创建。变量声明定义变量的一般语法如下-var-name=var-valuevar-name-这是变量的名称。var-value-这是绑定到变量的值。-module(helloLearnfk).-e......
  • 无涯教程-Erlang - 数据类型
    您可能希望存储各种数据类型的信息,例如string,character,widecharacter,integer,floatingpoint,Boolean等,系统根据变量的数据类型分配内存。内置数据类型Erlang提供了多种内置数据类型,以下是在Erlang中定义的数据类型的列表-Number  - 在Erlang中,它们是integers和floats。......
  • 无涯教程-Erlang - Shell脚本
    ErlangShell用于测试表达式,以下示例展示了如何在Shell中使用加法表达式,这里需要注意的是,表达式必须以点(.)分隔符结尾。执行命令后,Shell程序会打印出一个提示,这一次是命令编号2(因为每次输入新命令时命令编号都会增加)。以下功能是ErlangShell中最常用的功能。b()   ......