当前位置:网站首页 > Elixir并发编程 > 正文

并发王者erlang语言编程初步

文章目录

    • 下载安装与初步使用
    • 模块
    • 基本类型

erlang教程:基础入门🔥编程基础🔥数据结构🔥递归🔥并发编程
elixir教程:基础入门🔥编程基础🔥模式匹配🔥递归枚举

下载安装与初步使用

下载并安装,然后开始菜单中有对应的图标,打开就能进入erlang的命令行。当然也可以将其安装路径的【bin】文件夹加入环境变量,然后就可以在命令行中输入【erl】进入erlang了。

erlang语言中,语句结束需要用.标示,注释符号为%。在命令行中,输入一条正确的语句可以直接返回结果

1> 1+1. 2 

这个时候有人会问了,要是用.结尾的话,那我要写个小数怎么办?这个大可不用担心,erlang还是能分清是小数点和结尾的句号的

2> 3/3.0. 1.0 

退出命令行可通过halt().函数来实现,进出命令行的整个流程如下

>erl Eshell V13.1.4 (abort with ^G) 1> halt(). E:\Documents\00\0219> 

变量和函数

erlang中变量需用大写字母开头,小写开头的数据类型叫做原子,不可以赋值,而只能作为标识符。而即使是大写字母开头的变量,一经赋值,其实也是不可更改的

1> A = 1. 1 2> A = 2. ** exception error: no match of right hand side value 2 

这种不可更改变量的逻辑,加强了函数式的性能。erlang中的函数定义可以十分简洁而直观,例如像下面这样,Add就是一个函数,通过->...end来划分函数块。

Add = fun(X, Y)->X+Y end. Add(1,2). % 返回 3 % erlang用%做注释 

切记变量首字母要大写,X, Y不能写为x, y,否则成了原子,没法赋值是要报错的,那么原子有什么用呢?

例如现在要做一组弧度角度转换函数,可以写成这种

1> Convert = fun(X,rad)->X/3.14*180; (X,deg)->X/180*3.14 end. #Fun<erl_eval.41.> 2> Convert(3.14, rad). 180.0 3> Convert(360, deg). 6.28 

这样一看是不是显得十分简洁。

模块

写好一个函数之后,可将其封装在模块里,在erlang中,模块需要保存在.erl文件里,且在编译后可以运行。

-module(deg). -export([convert/2]). convert(X, deg) -> X / 360 * 3.; convert(X, rad) -> X / 3. * 360. 

其中,第一行module(deg)表明这是个模块,模块的名字叫deg,同时要求文件的名字必须与模块名相同,即deg.erl

第二行export([convert/2])表示准备暴露给调用者的函数为convert,而convert这个函数有2个参数。

第三行后面就是convert的具体内容,这里和命令行中的fun定义方式稍有区别,但也很容易理解。

将上述代码写入add.erl之后,可在命令行中编译,并通过deg:convert的方式进行调用

1> c("deg.erl"). { 
   ok,deg} 2> deg:convert(360, deg). 3. 3> deg:convert(3.14, rad). 359.184 

基本类型

在erlang中,基本的数据类型是数字Number和原子AtomNumber又包括整数和浮点数。erlang中提供了一些用于数值的函数

类别 函数
三角函数 sin, cos, tan, asin, acos, atan
其他函数 exp, log, abs
类型函数 float, is_float, is_integer

前面提到,原子必须以小写字母开头,其实并不完全。通过单引号括起来的字符也可以当作原子。

Erlang中有两个特殊的原子,即【true】和【false】,属于布尔类型。

此外,erlang中还有位串、元组、映射、列表等类型,相对复杂,故放在后面讲解。

到此这篇并发王者erlang语言编程初步的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • hash程序_hash算法可逆吗2024-11-21 17:27:06
  • boost asio最大并发_erp并发数量2024-11-21 17:27:06
  • 程序员hello_hash算法可逆吗2024-11-21 17:27:06
  • java高并发核心编程_adb-butinaca2024-11-21 17:27:06
  • 一文解决现代编程语言选择困难:命令式编程_windows命令行编程2024-11-21 17:27:06
  • 为什么要写并行程序_并发编程2024-11-21 17:27:06
  • Elixir编程语言_elm编程语言2024-11-21 17:27:06
  • 并发编程风格的练习2024-11-21 17:27:06
  • 详解并发模型_arma模型通俗理解2024-11-21 17:27:06
  • 并发编程实战pdf_delphi反编译工具2024-11-21 17:27:06
  • 全屏图片