当前位置: 首页 > 文档资料 > Erlang 中文教程 >

变量

优质
小牛编辑
128浏览
2023-12-01

在Erlang中,所有变量都与'='语句绑定。 所有变量都需要以大写字符开头。 在其他编程语言中,'='符号用于赋值,但不用于Erlang。 如上所述,变量是使用'='语句定义的。

在Erlang中需要注意的一件事是变量是不可变的,这意味着为了使变量的值发生变化,需要将其销毁并重新创建。

Erlang中的以下基本变量在最后一章中进行了解释 -

  • Numbers - 用于表示整数或浮点数。 一个例子是10。

  • Boolean - 这表示一个布尔值,可以是true或false。

  • Bit String - 位串用于存储未键入内存的区域。 一个例子是“”40,50“”。

  • Tuple - 元组是具有固定数量项的复合数据类型。 一个例子是{40,50}。

  • Map - 映射是具有可变数量的键 - 值关联的复合数据类型。 映射中的每个键值关联称为关联对。 一个例子是{type =“person,age =”25}。

  • List - 列表是具有可变数量的术语的复合数据类型。 一个例子是[40,40]。

变量声明

定义变量的一般语法如下 -

语法 (Syntax)

var-name = var-value

Where,

  • var-name - 这是变量的名称。

  • var-value - 这是绑定到变量的值。

以下是变量声明的示例 -

例子 (Example)

-module(helloworld). 
-export([start/0]). 
start() -> 
   X = 40, 
   Y = 50, 
   Result = X + Y, 
   io:fwrite("~w",[Result]).

在上面的例子中,我们有2个变量,一个是X,它绑定到值40,下一个是Y,它绑定到50的值。另一个名为Result的变量绑定到X和Y的加法。

上述计划的输出将是 -

输出 (Output)

90

命名变量 (Naming Variables)

如上所述,变量名必须以大写字母开头。 让我们举一个以小写形式声明的变量的例子。

例子 (Example)

-module(helloworld). 
-export([start/0]). 
start() -> 
   X = 40, 
   Y = 50, 
   result = X + Y, 
   io:fwrite("~w",[Result]).

如果您尝试编译上述程序,您将收到以下编译时错误。

输出 (Output)

helloworld.erl:8: variable 'Result' is unbound

其次,所有变量只能分配一次。 让我们举一个不止一次分配变量的例子。

例子 (Example)

-module(helloworld). 
-export([start/0]). 
start() -> 
   X = 40, 
   Y = 50, 
   X = 60, 
   io:fwrite("~w",[X]).

如果您尝试编译上述程序,您将收到以下编译时错误。

输出 (Output)

helloworld.erl:6: Warning: variable 'Y' is unused
helloworld.erl:7: Warning: no clause will ever match
helloworld.erl:7: Warning: the guard for this clause evaluates to 'false'

打印变量

在本节中,我们将讨论如何使用打印变量的各种功能。

使用io:fwrite函数

你会看到所有上述程序中使用的这个(io:fwrite)。 fwrite函数是'io'模块或Erlang的一部分,它可用于输出程序中变量的值。

以下示例显示了一些可以与fwrite语句一起使用的参数。

例子 (Example)

-module(helloworld). 
-export([start/0]). 
start() -> 
   X = 40.00, 
   Y = 50.00, 
   io:fwrite("~f~n",[X]), 
   io:fwrite("~e",[Y]).

上述计划的输出将是 -

输出 (Output)

40.000000
5.00000e+1

关于上述程序,应注意以下几点。

  • ~ - 此字符表示需要对输出执行某些格式化。

  • ~f - 参数是一个浮点数,写为[ - ] ddd.ddd,其中精度是小数点后的位数。 默认精度为6,不能小于1。

  • ~n - 这是println到新行。

  • ~e - 参数是一个浮点数,写为[ - ] d.ddde + -ddd,其中precision是写入的位数。 默认精度为6,不能小于2。