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

append_element

Erlang 复制代码
1> erlang:append_element({one, two}, three).
{one,two,three}

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

apply

Erlang 复制代码
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

Erlang 复制代码
4> atom_to_binary('Erlang', latin1).
<<"Erlang">>

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

atom_to_list

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

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

binary_part

Erlang 复制代码
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

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

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

binary_to_float

Erlang 复制代码
12>  binary_to_float(<<"2.2017764e+0">>).
2.2017764

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

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

binary_to_integer

Erlang 复制代码
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

Erlang 复制代码
16>  binary_to_term(<<131,100,0,5,"hello">>, [safe]).
hello

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

bit_size

Erlang 复制代码
18>  bit_size(<<433:16,3:3>>).
19
19> bit_size(<<1,2,3>>).
24

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

bitstring_to_list

Erlang 复制代码
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

Erlang 复制代码
22> byte_size(<<433:16,3:3>>).
3
23>  byte_size(<<1,2,3>>).
3
24> 

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

date

Erlang 复制代码
24>  date().
{2024,1,29}

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

decode_packet

Erlang 复制代码
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

Erlang 复制代码
26>  erlang:delete_element(2, {one, two, three}).
{one,three}

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

element

Erlang 复制代码
27> element(2, {a, b, c}).
b

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

erase

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

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

Erlang 复制代码
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 是流程中的项数 字典。

相关推荐
虾球xz26 分钟前
游戏引擎学习第55天
学习·游戏引擎
oneouto43 分钟前
selenium学习笔记(二)
笔记·学习·selenium
sealaugh321 小时前
aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发
笔记·学习·aws
炭烤玛卡巴卡1 小时前
学习postman工具使用
学习·测试工具·postman
thesky1234562 小时前
活着就好20241224
学习·算法
蜗牛hb2 小时前
VMware Workstation虚拟机网络模式
开发语言·学习·php
汤姆和杰瑞在瑞士吃糯米粑粑2 小时前
【C++学习篇】AVL树
开发语言·c++·学习
虾球xz2 小时前
游戏引擎学习第58天
学习·游戏引擎
LuH11242 小时前
【论文阅读笔记】Scalable, Detailed and Mask-Free Universal Photometric Stereo
论文阅读·笔记
奶香臭豆腐3 小时前
C++ —— 模板类具体化
开发语言·c++·学习