erlang (erlang 操作模块)学习笔记(一)

 append_element

1> erlang:append_element({one, two}, three).
{one,two,three}

 返回一个新元组,该元组的元素比 Tuple1 多一个元素,并且包含 Tuple1 中的元素,后跟 Term 作为最后一个元素。 语义上等同于 list_to_tuple(tuple_to_list(Tuple1) ++ [术语]),但速度要快得多。

 apply

2> apply(lists, reverse, [[a, b, c]]).
[c,b,a]
3> apply(erlang, atom_to_list, ['Erlang']).
"Erlang"

 返回将 Function in Module 应用于 Args 的结果。 应用的函数必须 从模块导出。该函数的 arity 是 Args 的长度。

atom_to_binary 

4> atom_to_binary('Erlang', latin1).
<<"Erlang">>

 返回与文本对应的二进制文件 Atom 的表示。 如果 Encoding 为 latin1,则每个字符存在一个字节 在文本表示中。如果 Encoding 为 utf8 或 unicode,则使用 UTF-8 对字符进行编码,其中 字符可能需要多个字节

atom_to_list 

5> atom_to_list('Erlang').
"Erlang"
6> atom_to_list('你好').
[20320,22909]

 返回与文本对应的 unicode 码位列表 Atom 的表示形式,

 binary_part

7> Bin = <<1,2,3,4,5,6,7,8,9,10>>.
<<1,2,3,4,5,6,7,8,9,10>>
8> binary_part(Bin,{byte_size(Bin), -5}).
<<6,7,8,9,10>>

 与 binary_part(Subject, {开始,长度})

 binary_to_atom

 10> binary_to_atom(<<"Erlang">>, latin1).
'Erlang'
11> binary_to_atom(<<1024/utf8>>, utf8).
'Ѐ'

 返回其文本表示形式为 Binary 的原子。如果 Encoding 为 utf8 或 unicode,则二进制文件必须包含 有效的 UTF-8 序列

 binary_to_float

12>  binary_to_float(<<"2.2017764e+0">>).
2.2017764

float string 格式与 Erlang 的格式相同 float 文本,但下划线不是 允许。

失败:badarg 如果二进制文件包含错误的 浮点数的表示形式。

binary_to_integer 

13> binary_to_integer(<<"123">>).
123
14> binary_to_integer(<<"3FF">>, 16).
1023

 binary_to_integer/1 接受相同的字符串格式 作为list_to_integer/1

 失败:badarg 如果二进制文件包含错误的 整数的表示形式。

binary_to_integer/2 接受相同的字符串格式 作为list_to_integer/2 。

失败:badarg 如果二进制文件包含错误的 整数的表示形式。

 binary_to_term

16>  binary_to_term(<<131,100,0,5,"hello">>, [safe]).
hello

 返回一个 Erlang 术语,该术语是解码的结果 binary 对象 Binary,必须编码

bit_size 

18>  bit_size(<<433:16,3:3>>).
19
19> bit_size(<<1,2,3>>).
24

 返回一个整数,该整数的大小(以 Bitstring 的位为单位)

bitstring_to_list 

20> bitstring_to_list(<<433:16>>).
[1,177]
21> bitstring_to_list(<<433:16,3:3>>).
[1,177,<<3:3>>]

 返回对应于 Bitstring 字节的整数列表。如果二进制文件中的位数 不能被 8 整除,则列表的最后一个元素是位字符串 包含剩余的 1-7 位。

byte_size 

22> byte_size(<<433:16,3:3>>).
3
23>  byte_size(<<1,2,3>>).
3
24> 

返回一个整数,该整数是所需的字节数 包含位字符串。也就是说,如果位数 在位字符串中不能被 8 整除,则得到 字节数向上舍入。

date 

24>  date().
{2024,1,29}

以 {Year, Month, Day} 的形式返回当前日期。

 decode_packet

25> erlang:decode_packet(1,<<3,"abcd">>,[]).
{ok,<<"abc">>,<<"d">>}

根据数据包对二进制Bin进行解码 由 Type 指定的协议。与数据包相似 由带有选项 {packet,Type} 的套接字完成处理。

如果整个数据包包含在 Bin 中,则它是 与二进制文件的其余部分一起返回为 {ok,Packet,Rest}。

如果 Bin 不包含整个数据包,则返回 {more,Length}。长度是 数据包的预期总大小,如果预期的数据包大小未知,则为 undefined。然后,可以再次调用decode_packet并添加更多数据。

delete_element

26>  erlang:delete_element(2, {one, two, three}).
{one,three}

返回一个新元组,其中 Index 处的元素从元组 Tuple1 中删除

 element

27> element(2, {a, b, c}).
b

返回 Tuple 的第 N个元素(从 1 开始编号)

 erase

28> put(key1, {1, 2, 3}),
28> put(key2, [a, b, c]),
28> erase().
[{key2,[a,b,c]},{key1,{1,2,3}}]

 返回进程字典并将其删除,

29>  put(key1, {merry, lambs, are, playing}),
29> X = erase(key1),
29> {X, erase(key1)}.
{{merry,lambs,are,playing},undefined}

返回与 Key 关联的值 Val 并将其从进程中删除 字典。如果没有值,则返回 undefined 与 Key 关联。平均时间 此函数当前实现的复杂度为 O(1),最坏情况下的时间复杂度为O(N), 其中 N 是流程中的项数 字典。

你可能感兴趣的:(erlang,学习,笔记)