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

相关推荐
不染_是非23 分钟前
Django学习实战篇六(适合略有基础的新手小白学习)(从0开发项目)
后端·python·学习·django
z2014z24 分钟前
系统架构设计师教程 第5章 5.4 软件测试 笔记
笔记·系统架构
Midsummer啦啦啦35 分钟前
NumPy库学习之argmax函数
学习·numpy
Mero技术博客38 分钟前
第二十节:学习Redis缓存数据库实现增删改查(自学Spring boot 3.x的第五天)
数据库·学习·缓存
&AtTiTuDe;1 小时前
如何使用IIC外设(硬件IIC)
经验分享·笔记·stm32·单片机·嵌入式硬件·硬件工程
QuantumYou1 小时前
【对比学习串烧】 SWav和 BYOL
学习·机器学习
快把我骂醒1 小时前
S-Procedure的基本形式及使用
笔记
为暗香来1 小时前
MySQL学习(视图总结)
数据库·学习·mysql
一道秘制的小菜2 小时前
C++第十一节课 new和delete
开发语言·数据结构·c++·学习·算法
kuiini2 小时前
python学习-10【模块】
python·学习