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

 map_size

1> map_size(#{a=>1, b=>2, c=>3}).
3

 返回一个整数,即键值对的数量

max 

2> max(1, 2).
2
3> max(1.0, 1).
1.0
4> max(1, 1.0).
1
5> max("abc", "b").
"b"

 返回 Term1 和 Term2 中最大的值。如果这些项与 == 运算符,Term1 是 返回。

min 

6> min(1, 2).
1
7> min(1.0, 1).
1.0
8> min(1, 1.0).
1
9> min("abc", "b").
"abc"

 返回 Term1 和 Term2 中的最小值。如果这些项与 == 运算符,Term1 是 返回。

pid_to_list 

10> erlang:pid_to_list(self()).
"<0.79.0>"

返回与文本对应的字符串 Pid 的表示。

processes 

11> processes().
[<0.0.0>,<0.1.0>,<0.2.0>,<0.3.0>,<0.4.0>,<0.5.0>,<0.6.0>,<0.7.0>,<0.10.0>,<0.42.0>,<0.44.0>,<0.46.0>,<0.47.0>,<0.49.0>,<0.50.0>,<0.51.0>,<0.52.0>,<0.53.0>,<0.54.0>,<0.55.0>,<0.56.0>,<0.57.0>,<0.58.0>,<0.59.0>,<0.60.0>,<0.61.0>,<0.62.0>,<0.63.0>,<0.64.0>|...]

 返回对应于 本地节点上当前存在的所有进程。请注意,退出进程存在,但不是活动进程。 也就是说,is_process_alive/1 对于正在退出的进程返回 false,但其进程标识符是 part 从进程返回的结果/0。

 put

12> X = put(name, walrus), Y = put(name, carpenter),
12> Z = get(name),
12> {X, Y, Z}. 
{undefined,walrus,carpenter}

将新的 Key 添加到进程字典中, 与值 Val 关联,并返回 undefined。如果 Key 存在,则旧的 value 被删除并替换为 Val,并且 该函数返回旧值。平均时间 此函数当前实现的复杂度为 O(1),最坏情况下的时间复杂度为O(N), 其中 N 是流程中的项数 字典。

registered 

14> registered().
[kernel_safe_sup,kernel_sup,user,global_name_server,global_group,file_server_2,standard_error,kernel_refc,logger_sup,logger_std_h_default,erts_code_purger,code_server,erl_signal_server,erl_prim_loader,logger_proxy,application_controller,init,inet_db,socket_registry,logger,rex,logger_handler_watcher,standard_error_sup,user_drv]

返回已使用 register/2 注册的名称列表。

round 

15> round(42.1).             
42
16> round(5.5).
6
17> round(-5.5).
-6
18> round(36028797018963969.0).
36028797018963968

通过舍入 Number 返回一个整数,在最后一个示例中,round(36028797018963969.0) 的计算结果为 36028797018963968。这样做的原因是 数字 36028797018963969.0 无法表示 与浮点值完全相同。相反,float 文本是 表示为 36028797018963968.0,这是最接近的数字 这可以完全表示为浮点值。

self 

19> self().
<0.79.0>

返回调用进程的进程标识符。

setelement 

20> setelement(2, {10, green, bottles}, red).
{10,red,bottles}

返回一个元组,该元组是参数 Tuple1 的副本,其中由整数参数 Index 指定的元素(第一个元素是索引为 1 的元素)替换为 argument 值。

size 

21> size({morni, mulle, bwange}).
3
22> size(<<11, 22, 33>>).
3

返回元组中的元素数或 二进制或位串中的字节,对于位字符串,将返回整字节数。 也就是说,如果位数 在位串中不能被 8 整除,则得到 字节数向下舍入。

spawn 

24> spawn(speed, regulator, [high_speed, thin_cut]). 
<0.105.0>
25> =ERROR REPORT==== 1-Feb-2024::22:04:13.252000 ===
Error in process <0.105.0> with exit value:
{undef,[{speed,regulator,[high_speed,thin_cut],[]}]}

返回启动者 启动的新进程的进程标识符 Module:Function 在 Args 中的应用。error_handler:undefined_function(模块, 如果 Module:Function/Arity 不存在(其中 Arity 是 Args 的长度),则新进程将评估 Function, Args)。错误处理程序 可以重新定义。如果 error_handler 未定义,或者用户已定义 重新定义了默认error_handler,其替换为 undefined,则发生原因为 undef 的故障。

split_binary 

25> B = list_to_binary("0123456789").
<<"0123456789">>
26> byte_size(B).
10
27> {B1, B2} = split_binary(B,3).
{<<"012">>,<<"3456789">>}
28>  byte_size(B1).
3
29> byte_size(B2).
7

返回一个元组,其中包含作为结果的二进制文件 将 Bin 拆分为两部分 位置位置 这不是破坏性操作。手术后, 总共有三个二进制文件。

statistics 

30> statistics(garbage_collection).
{538,586822,0}

 返回有关垃圾回收的信息,对于某些实现,此信息可能无效。

31> erlang:statistics(microstate_accounting).
[#{counters =>#{aux => 0,check_io => 0,emulator => 0,gc => 0,other => 0,port => 0,sleep => 0},id => 4,type => scheduler}, #{counters => #{aux => 0,check_io => 0,...},id => 6,type => dirty_cpu_scheduler},#{counters => #{aux => 0,...},id => 5,...},#{counters => #{...},...},#{...}|...]

返回输入, 这是总字节数 通过端口接收,并输出, 这是输出到端口的总字节数。

32>  statistics(reductions).
{444785,444785}

返回有关减少的信息

33> statistics(runtime).
{3453,3453}

返回有关运行时的信息(以毫秒为单位)。这是所有线程的运行时总和 在 Erlang 运行时系统中,因此可以更大 比挂钟时间。

37> Ts1 = lists:sort(erlang:statistics(scheduler_wall_time)), ok.
ok
38> lists:map(fun({{I, A0, T0}, {I, A1, T1}}) ->                 
38> {I, (A1 - A0)/(T1 - T0)} end, lists:zip(Ts0,Ts1)).           
[{1,6.608032257562958e-4},{2,0.0},{3,0.0},{4,0.0},{5,0.0},{6,0.0},{7,0.0},{8,0.0},{9,0.0},{10,0.0},{11,0.0},{12,0.0},{13,0.0},{14,0.0},{15,0.0},{16,0.0},{17,0.0},{18,0.0},{19,0.0},{20,0.0},{21,0.0},{22,0.0},{23,0.0},{24,0.0}]

您可以使用scheduler_wall_time来计算 调度程序利用率。首先,对值进行采样 由 erlang:statistics(scheduler_wall_time) 返回。一段时间后,用户拍摄另一个快照并计算 每个调度程序的调度程序利用率。

term_to_binary

39> Bin = term_to_binary(hello).
<<131,100,0,5,104,101,108,108,111>>
40> hello = binary_to_term(Bin).
hello

 返回一个二进制数据对象,该对象是根据 Erlang 外部对 Term 进行编码的结果 术语格式。这可以用于各种目的,例如, 以有效的方式将术语写入文件,或发送 Erlang 术语对某种类型的通信渠道不是 由分布式 Erlang 支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端JavaScript篇之ES6中数组新增了哪些扩展?

目录 ES6中数组新增了哪些扩展?1. **箭头函数&#xff1a;**2. **扩展运算符&#xff08;Spread Operator&#xff09;&#xff1a;**3. **解构赋值&#xff1a;**4. **Array.from()方法&#xff1a;**5. **Array.of()方法&#xff1a;**6. **find()和findIndex()方法&#xf…

Python入门到精通(七)——Python文件操作

Python文件操作 一、文件的编码 二、文件的读取 1、操作汇总 2、model 常用的三种基础访问模式 三、文件的写入 四、文件的追加 五、综合案例 一、文件的编码 1、什么是编码&#xff1f; 编码就是一种规则集合&#xff0c;记录了内容和二进制间进行相互转换的逻辑。编…

Flink1.14新版KafkaSource和KafkaSink实践使用(自定义反序列化器、Topic选择器、序列化器、分区器)

前言 在官方文档的描述中&#xff0c;API FlinkKafkaConsumer和FlinkKafkaProducer将在后续版本陆续弃用、移除&#xff0c;所以在未来生产中有版本升级的情况下&#xff0c;新API KafkaSource和KafkaSink还是有必要学会使用的。下面介绍下基于新API的一些自定义类以及主程序的…

解析Excel文件内容,按每列首行元素名打印出某个字符串的统计占比(超详细)

1.示例&#xff1a; 开发需求&#xff1a;读取Excel文件&#xff0c;统计第3列到第5列中每列的"False"字段占比&#xff0c;统计第6列中的"Pass"字段占比&#xff0c;并按每列首行元素名打印出统计占比 1.1 实现代码1&#xff1a;列数为常量 请确保替换y…

测试access和trunk口的区别(华为)

思科设备参考&#xff1a;测试access和trunk口的区别&#xff08;思科&#xff09; 一&#xff0c;实验目的 实现同一 Vlan 内的主机互通&#xff0c;不同 Vlan 间的主机隔离。 二&#xff0c;配置前测试 PC1分别ping PC2、PC3、PC4都能通&#xff0c;因为四台PC默认同处于v…

NatCross免费内网穿透工具:助你快速搭建内网服务

NatCross是一款免费的内网穿透工具&#xff0c;产品基于分布式集群服务架构&#xff0c;为需要远程连接的企业和个人提供更加稳定和简单的解决方案。 场景主要包括出差在外或分支机构访问公司的OA、CRM、ERP系统、利用ADSL等宽带连接实现远程视频监控、在办公室或者家里搭建网站…

Android native层c++调用java层API

在Android开发中&#xff0c;从本地&#xff08;native&#xff09;代码调用Java层的接口是一个常见的需求&#xff0c;尤其是在使用JNI&#xff08;Java Native Interface&#xff09;进行混合编程时。以下是一个基本的步骤指南&#xff0c;展示如何从C代码调用Java方法&#…

一文掌握SpringBoot注解之@Configuration知识文集(2)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

【JAVA】单例模式的线程安全性

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 正文 我的其他博客 正文 老生常谈的问题了&#xff0c;首先要说的是单例模式的线程安全意味着&#xff1a;某个类的实例在多线程环境 下只会被…

main函数中参数argc和argv用法解析

1 基础 argc 是 argument count 的缩写&#xff0c;表示传入main函数的参数个数&#xff1b; argv 是 argument vector 的缩写&#xff0c;表示传入main函数的参数序列或指针&#xff0c;并且第一个参数argv[0]一定是程序的名称&#xff0c;并且包含了程序所在的完整路径&…

YOLO系列详解(YOLO1-YOLO5)

YOLO&#xff08;You Only Look Once&#xff09;系列是一组流行的实时对象检测算法&#xff0c;它们因其速度快和准确率高而闻名。YOLO 系列从 YOLOv1 发展到了后续的多个版本&#xff0c;每个版本都在性能、准确度和速度方面进行了改进。 YOLOv1 发布年份&#xff1a;2016主…

2024年美赛赛题浅析

MCM 赛题难度B>A>C 选题人数C>A>B Problem A: Resource Availability and Sex Ratios 数据收集多元分析定性分析&#xff08;语文建模&#xff09;稳定性分析相关分析 七鳃鳗寄生虫生态系统的数据收集 Problem B: Searching for Submersibles 数据收集预测模…

深度解读NVMe计算存储协议-2

近日&#xff0c;NVME协议组织为了解决这些性能问题并为供应商提供标准化机制&#xff0c;在其架构中集成优化的计算功能&#xff0c;开发了NVM Express (NVMe) 计算存储特性。 计算存储的核心特性包括两个命令集&#xff1a;计算程序集和子系统本地内存。 其中&#xff0c;计算…

python-分享篇-Turtle海龟-画图

文章目录 背景颜色画圆太阳花树椭圆 背景颜色 import turtlepen turtle.Turtle() turtle.Screen().bgcolor("blue") pen.color("cyan") for i in range(10):for i in range(2):pen.forward(100)pen.right(60)pen.forward(100)pen.right(120)pen.right(36…

供应商规模成倍增长,医疗器械制造商如何让采购效率更进一步|创新场景50...

ITValue 随着企业的快速发展&#xff0c;采购供应链网络日益庞大&#xff0c;企业在供应商管理上面临着管理体系分散、风险难以管控&#xff0c;采购过程环节多等问题&#xff0c;供应商内外协同亟待解决。 作者&#xff5c;秦聪慧 专题&#xff5c;创新场景50 ITValue 制造企业…

Node.js之内存限制理解_对处理前端打包内存溢出有所帮助

Node.js内存限制理解_对处理前端打包内存溢出有所帮助 文章目录 Node.js内存限制理解_对处理前端打包内存溢出有所帮助Node.js内存限制1. 查看Node.js默认内存限制1. Ndos.js_V20.10.02. Node.js_V18.16.0 2. V8引擎垃圾回收相关Heap organization堆组织 Node.js内存限制 默认情…

Lazysysadmin

信息收集 # nmap -sn 192.168.1.0/24 -oN live.port Starting Nmap 7.94 ( https://nmap.org ) at 2024-01-30 21:10 CST Nmap scan report for 192.168.1.1 (192.168.1.1) Host is up (0.00075s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nma…

Docker容器化安装SonarQube9.9

文章目录 1.环境准备1.1 版本信息1.2 系统设置 2.Docker环境安装2.1 卸载旧版本2.2 设置源2.3 安装Docker2.4 设置阿里仓库2.5 启动Docker 3.Docker Compose4.登录4.1 首页4.2 安装插件 5.制作镜像离线安装 1.环境准备 1.1 版本信息 名称版本备注Docker25.0.1当前2024-01-01最…

《C程序设计》上机实验报告(五)之一维数组二维数组与字符数组

实验内容&#xff1a; 1.运行程序 #include <stdio.h> void main( ) { int i,j,iRow0,iCol0,m; int x[3][4]{{1,11,22,33},{2,28,98,38},{3,85,20,89}}; mx[0][0]; for(i0;i<3;i) for(j0;j<4;j) if (x[i][j]>m) { mx[i][j]; iRowi…

Elasticsearch:将文档级安全性 (DLS) 添加到你的内部知识搜索

作者&#xff1a;来自 Elastic Sean Story 你的企业很可能淹没在内部数据中。 你拥有问题跟踪、笔记记录、会议记录、维基页面、视频录制、聊天以及即时消息和私信。 并且不要忘记电子邮件&#xff01; 难怪如此多的企业都在尝试创造工作场所搜索体验 - 为员工提供集中、一站…