Erlang 变量
在 Erlang,所有的变量都与‘ =’语句绑定。所有变量都需要以大写字母开头。在其他编程语言中,“ =”符号用于赋值,但不适用于 Erlang。如前所述,变量是通过使用‘ =’语句定义的。
在Erlang中要注意的一件事是变量是不可变的,这意味着为了更改变量的值,需要将其销毁并重新创建。
上一章介绍了Erlang中的以下基本变量-
Numbers−用于表示整数或浮点数。例如:10。
Boolean −这表示布尔值,可以为true或false。
Bit String−使用位串存储未类型的内存区域。例如:<< 40,50 >>。
Tuple−元组是具有固定数量项的复合数据类型。例如:{40,50}。
Map−映射是具有可变数量的键-值关联的复合数据类型。映射中的每个键值关联都称为关联对。例如:{type => person,age => 25}。
List−列表是具有可变项数的复合数据类型。例如:[40,40]。
变量声明
定义变量的一般语法如下-
语法
var-name=var-value
在哪里,
var-name −这是变量的名称。
var-value −这是绑定到变量的值。
以下是变量声明的示例-
实例
-module(helloworld).-export([start/0]).start()->X=40,Y=50,Result=X+Y,io:fwrite("~w",[Result]).
在上面的示例中,我们有2个变量,一个是绑定到值40的X,另一个是绑定到值50的Y。另一个名为Result的变量绑定到X和Y的加法。
上面程序的输出将是
输出
90
命名变量
如上所述,变量名必须以大写字母开头。让我们以小写声明的变量为例。
实例
-module(helloworld).-export([start/0]).start()->X=40,Y=50,result=X+Y,io:fwrite("~w",[Result]).
如果尝试编译上述程序,则会出现以下编译时错误。
输出
helloworld.erl:8:variable'Result'isunbound
其次,所有变量只能分配一次。让我们举一个不只一次分配一个变量的实例。
实例
-module(helloworld).-export([start/0]).start()->X=40,Y=50,X=60,io:fwrite("~w",[X]).
如果您尝试编译上述程序,则会收到以下编译时错误。
输出
helloworld.erl:6:Warning:variable'Y'isunusedhelloworld.erl:7:Warning:noclausewillevermatchhelloworld.erl:7:Warning:theguardforthisclauseevaluatesto'false'
打印变量
在本节中,我们将讨论如何使用打印变量的各种功能。
使用io:fwrite函数
您应该已经在以上所有程序中看到了此(io:fwrite)。fwrite函数是“ io”模块或Erlang的一部分,可用于在程序中输出变量的值。
以下示例显示了可以与fwrite语句一起使用的更多参数。
实例
-module(helloworld).-export([start/0]).start()->X=40.00,Y=50.00,io:fwrite("~f~n",[X]),io:fwrite("~e",[Y]).
上面程序的输出将是-
输出
40.0000005.00000e+1
关于上述程序,应注意以下几点。
~ −此字符表示需要对输出进行一些格式化。
~f−参数为浮点数,写为[-] ddd.ddd,其中precision是小数点后的位数。缺省精度为6,且不能小于1。
~n−println这是打印到新行。
~e−参数为浮点数,写为[-] d.ddde + -ddd,其中precision是写入的位数。缺省精度为6,且不能小于2。