变量
变量都是大写开头
在 erlang 中,变量都是大写开头,如X
, Name
,而不像 python,java,C 等命令式语言,可以采用小写字符作为变量。
1> X = 56.
56
2> Name = "Marco".
"Marco"
3> weather = "wind".
** exception error: no match of right hand side value "wind"
4>
赋值与匹配
在 erlang 中符号=
既可以表示赋值,也可以表示匹配。当=
第一次作用于变量,给变量绑定了值,此后=
作用于变量的时候,会被解析为模式匹配。
如下代码所示,Y = 34.
中的=
为赋值,而Y = 24.
中的=
则为模式匹配操作符。因为变量Y
已经获得值34
,所以变量Y
不能再获得值绑定,=
再次作用于Y
的时候,会被解析为模式匹配,如下Y
和24
匹配失败,而Y = 24+10.
则匹配成功,因为=
右边的值与变量的值相等。
4> Y = 34.
34
5> Y = 24.
** exception error: no match of right hand side value 24
6> Y = 24+10.
34
7>
Erlang的变量不会变
erlang中变量一经绑定,不会再变。如下所示:
7> City = "ShangHai".
"ShangHai"
8> City = "Beijing".
** exception error: no match of right hand side value "Beijing"
9>
原子
概念
erlang中,原子被用于表示常量值。
在erlang里,原子是全局性的,不用宏定义或包含文件就能实现。
原子以小写字母开头,后接字母、数字、_
或@
符号,如red
、weather
、student_a
、joe@somehost
.
原子也可以放在单括号'
内,例如'teacher'
、'Monday'
、'+'
、'a cat'
.
一个原子的值就是它本身。如下所示:
9> hello.
hello
10> 'Monday'.
'Monday'
11> 'a cat'.
'a cat'
12>