$ brew install erlang
@vim hello.erl@
-module(hello). -export([sayHello/0]). sayHello() -> io:fwrite("hello, world\n").
$ erl 1> c(hello). // 加载hello.erl文件,以(.)结束 {ok,hello} 2> hello:sayHello(). // 调用sayHello方法 hello, world ok 3> q(). // 退出,或者ctrl+g后输入q回车
1> 990. 990 2> 98 - 12. 86 3> 2#10. // 10的二进制 2 4> 16#10. // 10的16进制
1> -1. -1 2> -2. -2 3> 17.368. 17.368 4> 10/2. // 整数/相除,结果永远是浮点型 5.0 5> 10 div 2. // 整数div相除则返回的是整数 5 6> 10 rem 3. // 取余 1
1> abc. abc 2> 'abc_123_ABC'. abc_123_ABC 3> 'space space'. 'space space' 4> '\n \n'. '\n \n' 5> '1234+987'. '1234+987'
1> 1 == 2. false 2> 2 == 2. true 3> is_boolean(12). // 判断值是否是布尔类型 false 4> is_boolean(a > b). truetable(table table-bordered). |_.方法|_.描述| |@and@|参数必须都等于true时返回true,否则false</br>
1> true and true. true 2> false and true. false| |@andalso@|如果第一个参数为false,则返回false,否则返回第二个参数 true andalso 'return me.'</br>
1> false andalso 'abc'. false 2> true andalso 'abc'. abc| |@or@|参数中有一个或都为true时返回true,否则false</br>
1> false or false. false 2> false or true. true| |@orelse@|如果第一个参数为true,则返回true,否则返回第二个参数 false orelse 'return me.'</br>
1> true orelse 'abc'. true 2> false orelse 'abc'. abc| |@xor@|参数中一个true一个false时才返回true,否则返回false</br>
1> true xor true false 2> false xor true true| |@not@|取反,如果为true则返回false,否则返回true</br>
1> not(false) true 2> not(true) false|
1> {123, {'a', 'b'}, 987}. {123, {'a', 'b'}, 987} 2> tuple_size({123, {'a', 'b'}, 987}). // 获得大小 3 3> element(2, {123, {'a', 'b'}, 987}). // 获取第2个节点 {a,b} 4> setelement(2, {123, {'a', 'b'}, 987}, 456). // 修改第2个节点的内容 {123, 456, 987}
1> [1, 2, 3, 4, 5, 6]. [1,2,3,4,5,6]
Lists的函数,Lists很多函数都在Lists这个模块中
table(table table-bordered). |_.函数|_.示例| |@lists:max@|求最大值</br>1> lists:max([1,2,3]). 3| |@lists:reverse@|反转</br>
1> lists:reverse([1,2,3]). [3,2,1]| |@lists:sort@|排序</br>
1> lists:sort([2,1,3]). [1,2,3]| |@lists:split@|拆分</br>
1> lists:split(2,[3,4,10,7,9]). {[3,4],[10,9,7]}| |@lists:sum@|求和</br>
1> lists:sum([3,4,10,7,9]). 33| |@lists:zip@|压缩</br>
1> lists:zip([1,2,3],[5,6,7]). {[1,5],[2,6],[3,7]}| |@lists:delete@|删除</br>
1> lists:delete(2,[1,2,3,2,4,2]). [1,3,2,4,2]| |@lists:last@|最后一个值</br>
1> lists:last([1,2,3]). 3| |@lists:member@|是否包含</br>
1> lists:member(5,[1,24]). false 2>lists:member(24,[1,24]). true| |@lists:nth@|获取某个值,下标从1开始</br>
1> lists:nth(2,[3,4,10,7,9]). 4| |@length@|计算数组的长度,不是在lists模块里的</br>
1> length([1,2,3]). 3|
Lists的函数,Lists很多函数都在Lists这个模块中
table(table table-bordered). |_.方法|_.示例| |@++@|数组相加</br>1> [1,2,3] ++ [9,8,7]. [1,2,3,9,8,7]| |@--@|相减</br>
1> [1,2,3,4,5] -- [2,5]. [1,3,4]| |subtract|链接</br>
1> "hello " "world". "hello world"|
1> $a. // 字符返回的是ASCII对应的数值 97 2> [$a]. // erlang中没有字符串类型,而是ASCII数组来表示 "a" 3> [$h,$e,$l,$l,$o,$ ,$w,$o,$r,$l,$d]. // "hello world" 的数组 "hello world"