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 是流程中的项数 字典。

相关推荐
lkbhua莱克瓦248 分钟前
基础-事务
开发语言·数据库·笔记·mysql·事务
fantasy_arch29 分钟前
LSTM模型学习分析
人工智能·学习·lstm
潲爺1 小时前
《Java 8-21 高频特性实战(上):5 个场景解决 50% 开发问题(附可运行代码)》
java·开发语言·笔记·学习
2301_800050991 小时前
ceph分布式存储
笔记·分布式·ceph
YJlio1 小时前
Contig 学习笔记(13.5):整理现有文件碎片的策略与批量实战
笔记·学习·stable diffusion
week_泽2 小时前
8、OpenCV BF暴力特征匹配笔记
人工智能·笔记·opencv
Master_oid2 小时前
机器学习27:增强式学习(Deep Reinforcement Learn)②
人工智能·学习·机器学习
全栈游侠2 小时前
GT2933触摸驱动分析 -中断处理
linux·笔记
找方案2 小时前
hello-agents 学习笔记:解锁智能体三大经典范式,从原理到实战
javascript·笔记·学习·hello-agents
Sunsets_Red2 小时前
待修改莫队与普通莫队优化
java·c++·python·学习·算法·数学建模·c#