- Erlang教程
- Erlang - 主页
- Erlang - 概述
- Erlang - 环境
- Erlang - 基本语法
- Erlang-Shell
- Erlang - 数据类型
- Erlang - 变量
- Erlang - 运算符
- Erlang - 循环
- Erlang - 决策
- Erlang - 函数
- Erlang - 模块
- Erlang - 递归
- Erlang - 数字
- Erlang - 字符串
- Erlang - 列表
- Erlang - 文件 I/O
- Erlang - 原子
- Erlang - 地图
- Erlang - 元组
- Erlang - 记录
- Erlang - 异常
- Erlang - 宏
- Erlang - 头文件
- Erlang - 预处理器
- Erlang - 模式匹配
- Erlang - 守卫
- Erlang-BIFS
- Erlang - 二进制文件
- Erlang - 乐趣
- Erlang - 进程
- Erlang - 电子邮件
- Erlang - 数据库
- Erlang - 端口
- Erlang - 分布式编程
- Erlang-OTP
- Erlang - 并发
- Erlang - 性能
- Erlang - 驱动程序
- Erlang - 网络编程
- Erlang 有用资源
- Erlang - 快速指南
- Erlang - 有用的资源
- Erlang - 讨论
Erlang - 变量
在 Erlang 中,所有变量都与“=”语句绑定。所有变量都需要以大写字符开头。在其他编程语言中,“=”符号用于赋值,但在 Erlang 中则不然。如上所述,变量是使用“=”语句定义的。
在 Erlang 中需要注意的一件关键事情是变量是不可变的,这意味着为了改变变量的值,需要将其销毁并再次重新创建。
Erlang 中的以下基本变量在上一章中进行了解释 -
数字- 用于表示整数或浮点数。一个例子是 10。
Boolean - 这表示一个布尔值,可以是 true 或 false。
位字符串- 位字符串用于存储非类型化内存区域。一个例子是<<40,50>>。
元组- 元组是具有固定数量项的复合数据类型。一个例子是{40,50}。
映射- 映射是一种复合数据类型,具有可变数量的键值关联。映射中的每个键值关联称为关联对。一个例子是 {type=>person,age=>25}。
列表- 列表是一种具有可变数量术语的复合数据类型。一个例子是[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 个变量,一个是 X,它绑定到值 40,下一个是 Y,它绑定到值 50。另一个名为 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' is unbound
其次,所有变量只能赋值一次。让我们举一个多次分配变量的例子。
例子
-module(helloworld). -export([start/0]). start() -> X = 40, Y = 50, X = 60, io:fwrite("~w",[X]).
如果您尝试编译上述程序,您将收到以下编译时错误。
输出
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 语句一起使用的更多参数。
例子
-module(helloworld). -export([start/0]). start() -> X = 40.00, Y = 50.00, io:fwrite("~f~n",[X]), io:fwrite("~e",[Y]).
上述程序的输出将是 -
输出
40.000000 5.00000e+1
关于上述程序,应注意以下几点。
~ - 该字符表示需要对输出进行一些格式化。
~f - 参数是一个浮点数,写作 [-]ddd.ddd,其中精度是小数点后的位数。默认精度为 6,且不能小于 1。
~n - 这是打印到新行。
~e - 参数是一个浮点数,写为 [-]d.ddde+-ddd,其中精度是写入的位数。默认精度为 6,且不能小于 2。