erlang基本使用

[TOC]

0、erlang安装

erlang基本使用_第1张图片
Paste_Image.png

1、通过执行以下命名可以查询当前的Erlang工作目录:

ss:~ wqp$ erl
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Eshell V7.3  (abort with ^G)
1> pwd().
/Users/wangqiupeng
ok

2、如何退出erlang环境

**ctrl +g **转换为命令模式,然后输入q退出erlang环境

ss:~ wqp$ erl
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]

Eshell V7.3  (abort with ^G)
1>
User switch command
 --> q
ss:~ wqp$

3、erlang注释

%代表erlang注释,
注意一下20+30后面的句点,没有句点,erlang认为我们还没有输完整个表达式,我们也不会看到显示结果

3> % add 20 and 30
3> 20+30.
50
4>

4、之前录入的命令如何找回

之前录入的命令可以通过ctrl +p 或者 ctrl +n进行找回

5、变量操作

4> X=99+100.
199
5> X
5> .
199
6> X.
199
7> X*X*X*X.
1568239201
8> X =1234.
** exception error: no match of right hand side value 1234
9>

注意: erlang中的变量只能被赋值一次,一旦被赋值,如果再次改变它,就会得到一个错误。如上。

6、模式匹配

9> Y=2+4.
6
10> Y=6.
6
11> Y=8.
** exception error: no match of right hand side value 8
12>

如上:第10行,Y=6是模式匹配
erlang变量不允许修改,不存在可变状态,没有可变状态,就没有共享内存,更没有锁,这一切都有利于并行化程序的编写。

7、元组

erlang使用垃圾搜集器去回收没有使用的内存。因此我们不用担心内存分配的问题

12> F ={firstName,wang}.
{firstName,wang}
13> L ={lastname,qiupeng}.
{lastname,qiupeng}
14> P ={person,F,L}.
{person,{firstName,wang},{lastname,qiupeng}}

F变量和L变量都是元组,而且可以重用。如何提取出对应的值呢?比如我想提取firstName
就会用到模式匹配

获取元组中的变量(采用模式匹配)

29> P.
{person,{firstName,wang},{lastname,qiupeng}}
30> {_,{_,MM},_}=P.
{person,{firstName,wang},{lastname,qiupeng}}
31> MM.
wang
32>

8、列表操作

32> BUY1=[{orange,4}|{newspaper,1}].
[{orange,4}|{newspaper,1}]
33> [BUY2|BUY3] = BUY1.
[{orange,4}|{newspaper,1}]
34> BUY2.
{orange,4}
35> BUY3.
{newspaper,1}

创建列表BUY1,提取列表BUY1的元素为BUY2和BUY3,其中|为表头和表尾分隔符,除去表头就是表尾

9、字符串

erlang中字符串必须用""双引号。erlang中如果

36> Name ="Hello".
"Hello"
37>

注意:erlang中的模式很经典
如下图:

erlang基本使用_第2张图片
Paste_Image.png

你可能感兴趣的:(erlang基本使用)