变量
变量都是大写开头
在 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>