Erlang初体验
接下来是时候揭开一门新语言的篇章了(对我来说是新的).
搜索到的资料显示,Erlang是一种面向并发(Concurrency Oriented),面向消息(Message Oriented)的函数式(Functional)编程语言。之前没有接触过,各种原因之下,来了兴趣,开始挖坑之旅。
安装过程就简略介绍一下,我的mac 12.6是源码安装的,下载自己对应的版本,然后./configure --prefix=安装路径 make && make install ,然后将其bin目录添加到PATH路径即可。
下载链接:http://erlang.org/download/
1. 进入shell
打开命令行(windows => cmd, Linux or Mac => Terminal)
输入erl即可进入Erlang shell
2. 退出或者重启运行时系统
输入halt(). 或者按 ctrl+C(根据提示输入a)回车即可退出
此外 模块init包含用于重新启动,重新启动和停止运行时系统的功能:
init:restart() %%重启
init:reboot() %% 重启
init:stop() %%停止
有关详细信息,请参阅 ERTS中的init(3)手册页。
3. 模块与函数
-module(test).
-export([]).
printData(data) ->
data.
4. 编译模块并运行函数
进入命令行,然后依次输入以下语句
c(test)
test:printData("Hello, Erlang")
5. 注意事项
Erlang每句话都需要在最后加一个 . 就相当于C++等语言后面要加个 ; 表示这一句话结束了,计算机才能判断运行到哪里。
6. 原子类型
刚开始看这玩意我有点懵的,但是一看解释,原来他其实就相当于是一个名字,没有其他含义。与变量不同的一点是,变量有值,原子类型并没有。
但是我们可以用它来进行判断,执行哪一个程序。例如下:
-module(atom).
-author("yy").
%% API
-export([convert_length/1]).
convert_length({centimeter, X}) ->
{in, X / 2.54};
convert_length({in, Y}) ->
{centimeter, Y * 2.54}.
在命令行如果调用
atom:convert_length({centimeter, 5}).
则会进行查找,根据centimeter(名字)来查找,对应了之后就调用它。相当于C++的函数重载,根据参数来进行判断(自我认为,有错请联系我或者留言,谢谢大佬)
7.数学运算符
数学运算符
op Description Argument type
+ 一元 + number
- 一元 - number
+ 加法 number
- 减法 number
* 乘法 number
/ 浮点除法 number
div 整数除法 integer
bnot 一元 not 位运算 integer
rem 整数求余 integer
band 与运算 integer
bor 或运算 integer
bxor 异或运算 integer
bsl 左移运算 integer
bsr 右移运算 integer