Erlang 速查表 v1.0.pdf
Erlang是一种用于构建并发、分布和容错系统的编程语言和运行时环境。Erlang拥有一个独特的语法和一套内置的数据类型,以及专门为并发编程设计的库。下面将详细介绍Erlang速查表中提到的一些关键知识点。 ### 变量和字符串 在Erlang中,变量名以大写字母开头,并且是动态类型的,意味着变量在赋值时不需要指定类型,类型将在运行时确定。字符串可以保存为整数列表。使用`io:format`或`io:fwrite`函数可以打印输出值,其中`~s`用于打印字符串,`~n`表示换行。 ```erlang Str = "JohnDoe". io:format("Name is: ~s~n", [Str]). ``` ### 列表和元组 Erlang的列表是用方括号`[]`包围的,元组是用花括号`{}`包围的。元组可以通过`element/2`函数和模式匹配来索引和访问元素。 ```erlang List = [1, 2, 3, 4]. NewList = [6, 7 | List]. % 返回[6, 7, 1, 2, 3, 4] {_, Second, _} = {1.0, 2.0, 3.0}. % Second变量绑定为2.0 ``` ### 函数 Erlang支持匿名函数和命名函数。匿名函数由`fun`关键字定义,命名函数则定义在模块中。`lists:map`函数可以用来对列表中的每个元素执行操作。 ```erlang F = fun(X) -> X end. % 匿名函数 method_name(Arg) -> % 命名函数 Arg. ``` ### 宏 宏在Erlang中由`-define/2`定义,并通过`?macro_name`来使用。 ```erlang -define(macro1, Replacement). ?macro1. ``` ### Erlang Shell Erlang Shell用于与Erlang运行时进行交互。`c/1`用于编译模块,`cd/1`用于改变当前工作目录。 ```erlang c(ModuleName). ``` ### 记录 Erlang中的记录是一种特殊的数据结构,用于封装一组相关的信息。使用`-record/2`来定义记录类型,并通过模式匹配来创建记录的实例或提取记录中的信息。 ```erlang -record(todo, {status = reminder, who = john, text}). X = #todo{status = urgent}. ``` ### 列表操作 Erlang提供了一系列的列表操作符,例如`++`用于列表连接,`--`用于列表移除操作。 ```erlang [1] ++ [2] ++ [3]. % 结果是[1, 2, 3] ``` ### 模块属性 模块属性用于定义模块的元数据,如`-export/1`声明导出的函数,`-include/1`和`-include_lib/1`用于包含其他文件。 ```erlang -module(modulename). -export([func_a/0, func_b/1]). -include("records.hrl"). ``` ### 表达式和模式匹配 Erlang支持`case`表达式和模式匹配,这使得可以在不同情况下执行不同的代码分支。模式匹配是Erlang编程的核心特性之一。 ```erlang case X of {What, N | T} -> cost(What) * N + total(T); [] -> 0 end. ``` ### 编译选项和版本信息 `-compile/1`选项可以设置编译选项,而`-vsn/1`用于设置模块的版本号。通过`beam_lib:version/1`可以获取模块的版本信息。 ```erlang -vsn("1.0"). ``` ### 杂项 Erlang shell中`f()`用于清空所有绑定,`rr/1`用于读取记录文件,`rf/1`用于移除记录定义。 以上是Erlang速查表中提到的关键知识点的详细说明,涵盖了变量、字符串、列表、元组、函数、宏、Erlang Shell、记录、列表操作、模块属性、表达式、模式匹配以及编译选项等概念。通过这些知识点,我们可以看到Erlang语言的并发处理和模块化编程的强大力量。
- 粉丝: 21
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- redis-standalone.yml redis k8s单点部署
- 2000-2023年省级产业结构升级数据-最新出炉.zip
- Python基于Scrapy兼职招聘网站爬虫数据分析设计(源码)
- zipkin.yml zipkin k8s部署
- YY9706.102-2021医用电气设备第2-47部分
- 通过运用时间序列ARIMA模型与循环神经网络(LSTM)对中国包装机器数量进行预测(python源码)
- 基于ARIMA模型的股票预测(python源码)
- 基于阿里云对象存储的对文件进行批量修改、批量解冻、批量上传
- 山东联通-海信IP501H-GK6323V100C-1+8G-4.4.2-当贝桌面-卡刷包
- IMG_6338.PNG