Erlang 程序设计 学习笔记(一)
任何语言都是从Hello World 开始的
hellowrold.erl
-module(helloworld).
%% ====================================================================
%% API functions
%% ====================================================================
-export([printHelloWorld/0]).
printHelloWorld()->
io:format("hello world!!!").
%% ====================================================================
%% Internal functions
%% ====================================================================
Erlang中的变量只能赋值一次
Erlang中的变量只能是大写字母开头
(小写字母开头的不是变量,而是符号常量,被称为原子)
Erlang Shell中的命令
Ctrl + A
行首
Ctrl + D或者Dele
删除当前字符
Ctrl + E
行尾
Tab
尝试拓展当前哦模块或函数的名称
Erlang不用担心溢出的牛逼的整数运算
Erlang中的算术表达式遵循一般规则并且可以很长很长 无需担心是否会溢出
例如你可以计算123456789123456789*1234567891123456789*123456789123456789.
可以直接得出结果1881676377434183981909562699940347954480361860897069
div 运算和 rem运算
N div M ->
N除以M 然后 舍去余数
N rem M ->
N除以M剩下的余数
原子的概念
Erlang中,原子是全局性的.不需要宏定义或者包含文件就能实现
原子必须以小写字母开头,后面可以接一串数字,字母,下划线或者at@符号 例如 monday monday_1 monday@sss
原子可以放在单引号中,这种形式的原子可以以大写字母开头 例如 "Monday" , '+' ,
一个原子的值就是它本身
元组
创建一个元组的方法就是用大括号把想要表示的值括起来 , 并用括号分割他们
例如 某个坐标点可以这样定义:
P = {12,45};
但是更直观的做法 我们将第一个元素作为表示该元组是什么
P = {point , 12, 45};
提取元组的值
Point = {point , 12 , 45};
{Point , X , Y } = Point ;
这样就提取了坐标点X 和 Y了.
前提是X和Y都没有赋值过
列表[H|T]
H
: 列表的表头
T
: 列表的表尾
提取列表中的元素
L = [1,2,3,{1,2,3}].
[A|B] = L.
A--->1
B--->[2,3,{1,2,3}]
也可以根据前面知道的多个元素来获取表尾
[1,2|C] = L.
C---->[3,{1,2,3}]
字符串
严格来说,Erlang里没有字符串,Erlang里面的字符串可以用一个由整数组成的列表来表示
Name = "Hello World".
当Shell打印某个列表的值时, 如果列表内的所有整数都代表可以打印字符,他就会打印字符串.否则就会打印成列表
[83,117,114,112,114,105,115,101].
------>"Surprise"
[1,83,2,3].
------>[1,83,2,3].
美元符号语法
不需要知道代表某个字符是哪一个整数,可以把美元符号放在某个字符的前面,用于表示这个字符所对应的的整数
I = $a.
----->97
[$H,$a,$H,$a].
------>HaHa.