Erlang 学习笔记

=操作符

Erlang 学习笔记_第1张图片
=不是一个赋值操作符,它实际上是一个模式匹配操作符。
Erlang的变量只能绑定一次。绑定变量的意思是给变量一个值,一旦这个值被绑定,以后就不能改动了。

变量和原子的语法

请注意Erlang的变量以大写字母开头。所以X、This和A_long_name都是变量。以小写字母
开头的名称(比如monday或friday)不是变量,而是符号常量,它们被称为原子(atom)。
在这里插入图片描述

文件服务器

在两台机器之间传输文件
第一台机器上运行的客户端和第二台机器上运行的服务器
Erlang 学习笔记_第2张图片
Erlang 学习笔记_第3张图片
Erlang编译器和运行时系统会正确推断出如何在收到消息时运行适当的代码。不需要编写任何的if-then-else或switch语句来设定该做什么。这是模式匹配带来的乐趣之一,会为你节省大量工作。
Erlang 学习笔记_第4张图片
Erlang 学习笔记_第5张图片
在这里插入图片描述
Erlang 学习笔记_第6张图片
FileServer = alfile_server:start(“.”)
alfile_server:start(Dir)调用spawn(afile_server, loop, [Dir])。这就创建出一个
新的并行进程来执行函数afile_server:loop(Dir)并返回一个进程标识符,可以用它来与此进
程通信。
Erlang 学习笔记_第7张图片
Erlang 学习笔记_第8张图片
Erlang 学习笔记_第9张图片
Erlang 学习笔记_第10张图片
Erlang 学习笔记_第11张图片
Erlang 学习笔记_第12张图片
Erlang 学习笔记_第13张图片
已被指派一个值的变量称为绑定变量,否则称为未绑定变量。
Erlang 学习笔记_第14张图片

浮点数

Erlang 学习笔记_第15张图片

元组

如果想要表示某人的名字和身高,就可以用{joe, 1.82}。这个元组包含了一个原子和一个浮点数。
要创建一个“坐标点”P = {10,45},创建了一个元组并把它绑定到变量P上。为了更容易记住元组的用途,原子作为元组的第一个元素{point, 10, 45}而不是{10, 45}

创建元组

Erlang 学习笔记_第16张图片

提取元组

Erlang 学习笔记_第17张图片
Erlang 学习笔记_第18张图片

列表

列表(list)被用来存放任意数量的事物
Erlang 学习笔记_第19张图片
Erlang 学习笔记_第20张图片
Erlang 学习笔记_第21张图片

字符串

如果列表内的所有整数都代表可打印字符,它就会将其打印成字符串字面量
Erlang 学习笔记_第22张图片
Erlang 学习笔记_第23张图片

模块

模块是Erlang的基本代码单元。模块保存在扩展名为.erl的文件里,而且必须先编译才能运
行模块里的代码。编译后的模块以.beam作为扩展名。
Erlang 学习笔记_第24张图片

fun

Erlang 学习笔记_第25张图片
Erlang 学习笔记_第26张图片

以fun作为参数的函数

Erlang 学习笔记_第27张图片

返回fun的函数

Erlang 学习笔记_第28张图片

->() 括号里面的代表函数的返回值
Erlang 学习笔记_第29张图片
Erlang 学习笔记_第30张图片
Erlang 学习笔记_第31张图片

列表推导

Erlang 学习笔记_第32张图片
Erlang 学习笔记_第33张图片
Erlang 学习笔记_第34张图片
Erlang 学习笔记_第35张图片

创建和更新记录

Erlang 学习笔记_第36张图片

提取记录字段

Erlang 学习笔记_第37张图片

在函数里模式匹配记录

Erlang 学习笔记_第38张图片

映射组

映射组的写法依照以下语法:
#{Key1 Op Val1,Key2 Op Val2,…,KeyN Op ValN}
它的语法与记录相似,但是散列符号(即#)之后没有记录名,而Op是=>或:=这两个符号的其中一个。
在 Erlang 中,映射(Map)是一种键值对的数据结构。您可以在函数中使用模式匹配来操作和处理映射。以下是一个示例:
Erlang 学习笔记_第39张图片

模式匹配映射组字段

在Erlang代码里,变量D1和D2不会改变它们的初始值。D2的表现就像是对D1做了深层复制①一样。事实上,深层复制并没有发生,Erlang系统只复制了内部结构里的某些必要部分,以形成创建了复制物的假象。

你可能感兴趣的:(erlang,学习,笔记)