Erlang01_编程基础
总篇:1
编辑于 2025/4/28 20:40
截稿于 2025/4/28 22:20
简介
从本篇开始,记录本人学习Erlang编程语言的历程,以Java视角转向Erlang视角。
Erlang关键词: 编程语言,变量不变,函数式编程,面向对象,高并发。
书籍资料:
安装
和其他编程语言一样,需要下载安装,不赘述,官网:
安装后,设置环境变量path新增:


hello word
- 配置完环境变量后,打开CMD,像Java、Python那样输入语言命令进入环境。输入erl,打印熟悉的 hello word:

- 除了多两个点,就没反应了。填一个; :

- 还是没反应,回车,试试sout:

- 还是没反应。这是因为erlang不以;为结束符号,而是英文的 . :
![]()
- 有反馈了,但是是 syntax error:

- 因为这是Java的语法,erlang有自己的语法,正确打印hello word:
![]()
不需要 print函数,写什么打印什么。
请千万不要忘记结尾的点 .
数学运算
- 和其他语言一样满足四则运算规则,有符号上的不同:

①: / 除法结果总是小数
②: div:整除符号
③: rem:取余符号
- 性能其一,大数处理毫不畏惧:

Long看了都瑟瑟发抖。
tip:命令行的左侧从1-10在递增表示你输入了多少个完整的可执行命令(以.结尾)
变量
你可能会像这样写:
:
erlang 的变量声明类似Python,不需要声明也不能(或者说没有)声明数据类型:

报错先不管,需要先纠正的是:变量以大写字母开头****:

现在你又可能想换个名字:

这是不允许的,实际上,erlang中的变量近乎于java的const关键字,赋值后不能修改,
那为什么称作变量?,俺也不知道,书上说在被赋值前他是可变的...,好好遵守规则就行了。
想要新名字只能用新变量接收:

同名怎么办:

数据类型
Java有八大数据类型:byte、short、integer、char、boolean ....
哈,而erlang中有更特别的数据类型,下表:
| 名称 | 简介 | 示例 |
|---|---|---|
| integer | 整数 | 123 ,-123 |
| float | 浮点数 | 3.14, -3.14 |
| atom | 原子 | a,'A',hello, 'hello' |
| boolean | 布尔,特殊的表义原子 | true,false |
| tuple | 元组,类似Python的元组,其内每个元素可以是任意数据类型 | {ok,"success",1,{error,"fail"}} |
| list | 列表,类似Python的列表,其内每个元素可以是任意数据类型 | [114,514,"依旧依旧",""] |
| binary | 二进制,看着像IP似的,这里先不解释 | <<4:8.4:8.4:8,4:8>> |
| record | 记录,看着什么都不像嘛,这里先不解释 | #person{name="Jack", age=15} |
| map | 映射,看着像楼上,也不解释 | #{name => "Jack", age => 15} |
| fun | 函数,没错,函数也是数据类型,同样不解释 | fun(X) -> X * 2 end. |
| PID,Port,Reference | 进程Id,端口号,引用,熟悉又陌生,不管他 | <0.80.0>,<0.123>,<0.0.0.123> |
数字都很好懂,这里着重解释一下原子,然后就下播:
- 原子:任何不可分割的最小单元(原子操作听过吧),这里也是同理,我们把它看作“一个”值:

- 1-9行中哪些是原子?:答案是除了3、6行其余都是。至于为什么这两个不是,我们下回分解。
退出
如何优雅的退出shell,直接插掉弹窗?no,现在,像Linux那样按下Ctrl+C:

看不懂,总之先按下A键:

然后按下回车:

出来了,而不是暴力拆门。
总结:
作为刚入门的篇章,本文仅仅要求初学者跟着图示操作一遍看结果,其中的疑惑以后再一一解答:
- 为什么A,"ABc" 不是原子?
- 变量不变,以后怎么写程序?
- 我想像Java那样,写程序文件再编译执行,而不只是在shell写无记忆程序?
以上。
1.安装
2.hello word
3.数学运算
4.变量
5.数据类型
6.退出


浙公网安备 33010602011771号