启动 Shell
# erl
Erlang/OTP 20 [erts-9.0] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [kernel-poll:false]
Eshell V9.0 (abort with ^G)
简单的整数运算
1> 2+3*4.
14
2> (2+3)*4.
20
变量
1> X=123456.
123456
2> X.
123456
3> X*X*X*X.
232299784284558852096
模式匹配
1> X = (2+4).
6
2> Y = 10.
10
3> X = 6.
6
4> X = Y.
** exception error: no match of right hand side value 10
浮点数
1> 5/3.
1.6666666666666667
2> 4/2.
2.0
3> 5 div 3.
1
4> 5 rem 3.
2
5> 4 div 2.
2
6> Pi = 3.1415926.
3.1415926
7> R = 5.
5
8> Pi * R * R.
78.539815
原子
1> hello.
hello
2> tojohnonly@hotmail.
tojohnonly@hotmail
3> 'Friday'.
'Friday'
4> 'a'.
a
元组
1> {john, 1.80}.
{john,1.8}
2> {point, 10, 45}.
{point,10,45}
3> F = {first_name, john}.
{first_name,john}
4> L = {last_name, wei}.
{last_name,wei}
5> P = {person, F, L}.
{person,{first_name,john},{last_name,wei}}
从元组中提取字段值
1> Point = {point, 10, 45}.
{point,10,45}
2> {point, X, Y} = Point.
{point,10,45}
3> X.
10
4> Y.
45
5> Person = {person,{name,{first,john},{last,wei},{foot_size,40}}}.
{person,{name,{first,john},{last,wei},{foot_size,40}}}
6> {_,{_,{_,Who},_,_}} = Person.
{person,{name,{first,john},{last,wei},{foot_size,40}}}
7> Who.
john
%% _ , 表示我们不关心的变量 , 匿名变量 , 各个 _ 绑定的值不必相同
列表
1> ThingsToBuy = [{apple,10}, {pears,6}, {milk,3}].
[{apple,10},{pears,6},{milk,3}]
2> ThingsToBuy_1 = [{orange,4}, {newspaper,1} | ThingsToBuy].
[{orange,4},{newspaper,1},{apple,10},{pears,6},{milk,3}]
从列表中提取元素
3> [Buy_1 | ThingsToBuy_2] = ThingsToBuy_1.
[{orange,4},{newspaper,1},{apple,10},{pears,6},{milk,3}]
4> Buy_1.
{orange,4}
5> ThingsToBuy_2.
[{newspaper,1},{apple,10},{pears,6},{milk,3}]
6> [Buy_2, Buy_3 | ThingsToBuy_3] = ThingsToBuy_2.
[{newspaper,1},{apple,10},{pears,6},{milk,3}]
7> Buy_2.
{newspaper,1}
8> Buy_3.
{apple,10}
9> ThingsToBuy_3.
[{pears,6},{milk,3}]
字符串
1> Name = "Hello".
"Hello"
2> [83, 117, 114, 112, 105, 115, 101].
"Surpise"
3> [1, 83, 117, 114, 112, 105, 115, 101].
[1,83,117,114,112,105,115,101]
4> I = $s.
115
5> [I-32, $u, $r, $p, $r, $i, $s, $e].
"Surprise"
再论模式匹配
1> {X, abc} = {123, abc}.
{123,abc}
2> X.
123
3> f().
ok
4> {X,Y,Z} = {222,def,"cat"}.
{222,def,"cat"}
5> X.
222
6> Y.
def
7> Z.
"cat"
%% f(). 释放所有绑定过的变量
作者 Github : tojohnonly , 博客 : EnskDeCode