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

相关推荐
red_redemption13 分钟前
自由学习记录(23)
学习·unity·lua·ab包
幽兰的天空40 分钟前
默语博主的推荐:探索技术世界的旅程
学习·程序人生·生活·美食·交友·美女·帅哥
游走于计算机中摆烂的1 小时前
启动前后端分离项目笔记
java·vue.js·笔记
沐泽Mu1 小时前
嵌入式学习-C嘎嘎-Day05
开发语言·c++·学习
你可以叫我仔哥呀2 小时前
ElasticSearch学习笔记三:基础操作(一)
笔记·学习·elasticsearch
maxiumII2 小时前
Diving into the STM32 HAL-----DAC笔记
笔记·stm32·嵌入式硬件
脸ル粉嘟嘟2 小时前
GitLab使用操作v1.0
学习·gitlab
路有瑶台2 小时前
MySQL数据库学习(持续更新ing)
数据库·学习·mysql
zmd-zk3 小时前
flink学习(2)——wordcount案例
大数据·开发语言·学习·flink
Chef_Chen3 小时前
从0开始学习机器学习--Day33--机器学习阶段总结
人工智能·学习·机器学习