当前位置: 首页 > news >正文

[按键安卓ios脚本辅助插件开发]数组排序函数例子

按键安卓ios工具辅助脚本插件开发教程,教程目的是让大家掌握Lua基本语法与按键精灵手机版的插件开发制作。

在按键精灵中排序需要我们自己写算法实现,例如快速排序,冒泡排序等,而在Lua中有内置的table.sort()排序命令。
这个命令比较特殊,第一个参数是传入数组,而第二个参数是传入一个匿名函数,通过这个匿名函数返回值来决定排序规则。
下面是插件完整源码。

  1. local _zimao = {} --这是内部私有table函数
  2. local zimao = {} --这是对外公开table函数
  3. QMPlugin = zimao --通过这行代码, 实现将zimao表中所有函数对外公开
  4. _zimao.version = "20220310" --插件版本号, 方便自己记忆
  5. local function try(block) -- 保护执行函数
  6. local tablejoin = function (...)
  7. local result = {}
  8. for _, t in ipairs({...}) do
  9. if type(t) == "table" then
  10. for k, v in pairs(t) do
  11. if type(k) == "number" then table.insert(result, v)
  12. else result[k] = v end
  13. end
  14. else
  15. table.insert(result, t)
  16. end
  17. end
  18. return result
  19. end
  20. -- get the try function
  21. local try = block[1]
  22. assert(try)
  23. -- get catch and finally functions
  24. local funcs = tablejoin(block[2] or {}, block[3] or {})
  25. -- try to call it
  26. local result_error = {}
  27. local results = {pcall(try)}
  28. if not results[1] then
  29. -- run the catch function
  30. if funcs and funcs.catch then
  31. result_error = {funcs.catch(results[2])}
  32. end
  33. end
  34. -- run the finally function
  35. if funcs and funcs.finally then
  36. local result_fin = {funcs.finally(table.unpack(results))}
  37. if #result_fin > 0 then
  38. return table.unpack(result_fin)
  39. end
  40. end
  41. -- ok?
  42. if results[1] and #results > 1 then
  43. return table.unpack(results, 2, #results)
  44. else
  45. if #result_error > 0 then
  46. return table.unpack(result_error)
  47. else
  48. return nil
  49. end
  50. end
  51. end
  52. local function catch(block) --异常捕获函数
  53. return {catch = block[1]}
  54. end
  55. local function finally(block) --最终必定执行函数
  56. return {finally = block[1]}
  57. end
  58. -- 常用的内部函数, 不加入私有table中, 直接定义使用
  59. local function traceprint(...) --调用按键精灵的调试输出命令
  60. if QMPlugin then -- 在Lua调试环境下, QMPlugin变量的值是我们插件公开table函数值, 而在按键精灵调试运行环境下, 该变量值被替换为nil
  61. print(...)
  62. else
  63. -- 获取可变长参数的第一个参数值
  64. local line = select(1, ...)
  65. -- 如果第一个参数是字符串, 并且符合格式 _数字 , 则判定为行号意思
  66. if type(line) == "string" and line:match("^%_%d+$") then
  67. -- 第一个参数按照格式 _数字: 传入TracePrint中可实现打印行号功能
  68. LuaAuxLib.TracePrint(line .. ":", table.concat({...}, " ", 2, select("#", ...)))
  69. elseif line == ":" and #{...} > 1 then
  70. -- 第一个参数是冒号 : 时, 表示直接打印输出数据
  71. LuaAuxLib.TracePrint(":", table.concat({...}, " ", 2, select("#", ...)))
  72. else
  73. -- 其他的情况下则加上前缀后, 进行正常输出
  74. LuaAuxLib.TracePrint(":","紫猫学院测试插件:", ...)
  75. end
  76. end
  77. end
  78. -- 实现获取变量信息的插件函数, 需对外公开, 所以使用zimao前缀
  79. function zimao.VarInfo(...)
  80. -- 防止无法获取nil参数
  81. local paramCount = select("#", ...)
  82. local varType, printStr, t = "", "", {}
  83. for i = 1, paramCount do
  84. local v = select(i, ...)
  85. try {
  86. function()
  87. varType = type(v)
  88. if varType == "table" then
  89. printStr = "【" .. varType .." " .. tostring(#v) .. "】" .. LuaAuxLib.Encode_GetJsonLib():encode(v)
  90. elseif varType == "number" or varType == "string" then
  91. printStr = "【" .. varType .." " .. tostring(#tostring(v)) .. "】" .. tostring(v)
  92. elseif varType == "boolean" or varType == "null" then
  93. printStr = "【" .. varType .."】" .. tostring(v)
  94. else
  95. printStr = "【" .. varType .."】 未知数据,无法查看!"
  96. end
  97. table.insert( t, #t + 1, printStr )
  98. end,
  99. catch {
  100. function (errors)
  101. -- 下面这个traceprint是我们上面定义过的内部输出命令,注意大小写
  102. traceprint("发生运行时错误!错误代码:VarInfo(),错误信息:", errors)
  103. end
  104. }
  105. }
  106. end
  107. printStr = table.concat( t, ", " )
  108. return printStr
  109. end
  110. -- 实现打印输出变量详细信息数据, 需对外公开
  111. function zimao.TracePrint(...)
  112. -- 通过VarInfo函数获取参数的详细数据信息
  113. local info = zimao.VarInfo(...)
  114. try {
  115. function()
  116. -- 在保护模式下打印输出这个数据内容
  117. traceprint(info)
  118. end,
  119. catch {
  120. function (errors)
  121. traceprint("发生运行时错误!错误代码:TracePrint(),错误信息:", errors)
  122. end
  123. }
  124. }
  125. end
  126. -- 遍历按键精灵的LuaAuxLib库下所有函数命令
  127. function zimao.ScanLuaAuxLib()
  128. -- 以保护模式运行, 避免插件错误造成脚本终止
  129. try {
  130. function()
  131. -- 遍历LuaAuxLib内的内容
  132. for k, v in pairs(LuaAuxLib) do
  133. -- 使用自定义函数traceprint在按键精灵中打印函数名
  134. traceprint("名称: " .. k, "类型: " .. type(v))
  135. end
  136. end,
  137. catch {
  138. function (errors)
  139. traceprint("发生运行时错误!错误代码:ScanLuaAuxLib(),错误信息:", errors)
  140. end
  141. }
  142. }
  143. end
  144. -- 数组排序, false为升序, true为降序, 省略默认为false
  145. function zimao.Sort(list, comp)
  146. return try {
  147. function ()
  148. -- 定义排序规则函数
  149. local f = function(a, b)
  150. if comp then
  151. return a > b
  152. else
  153. return a < b
  154. end
  155. end
  156. -- 返回排序结果
  157. return table.sort(list, f)
  158. end,
  159. catch {
  160. function (errors)
  161. traceprint("发生运行时错误!错误代码:Sort(),错误信息:", errors)
  162. end
  163. }
  164. }
  165. end

相关文章:

[按键安卓ios脚本辅助插件开发]数组排序函数例子

按键安卓ios工具辅助脚本插件开发教程&#xff0c;教程目的是让大家掌握Lua基本语法与按键精灵手机版的插件开发制作。 在按键精灵中排序需要我们自己写算法实现&#xff0c;例如快速排序&#xff0c;冒泡排序等&#xff0c;而在Lua中有内置的table.sort()排序命令。 这个命令…...

【BotSharp框架示例 ——实现聊天机器人,并通过 DeepSeek V3实现 function calling】

BotSharp框架示例 ——实现聊天机器人&#xff0c;并通过 DeepSeek V3实现 function calling 一、一点点感悟二、创建项目1、创建项目2、添加引用3、MyWeatherPlugin项目代码编写4、WeatherApiDefaultService项目代码编写5、WebAPI MyWeatherAPI 的项目代码编写6、data文件夹中…...

记录一个单独读取evt.bdf的方法

问题描述 之前只能使用eeglab的工具&#xff0c;读取博瑞康达的data.bdf和evt.bdf时&#xff0c;使用的是eeglab的下面这个读取文件的插件。 evt.bdf使用记事本文件查看是乱码的形式。 实现方法 事实上&#xff0c;我们可以直接对这个文件的16进制进行解析。 对文件的位和…...

是否想要一个桌面哆啦A梦的宠物

是否想拥有一个在指定时间喊你的桌面宠物呢&#xff08;手动狗头&#xff09; 如果你有更好的想法&#xff0c;欢迎提出你的想法。 是否考虑过跟开发者一对一&#xff0c;提出你的建议&#xff08;狗头&#xff09;。 https://wwxc.lanzouo.com/idKnJ2uvq11c 密码:bbkm...

防爆风扇储能轴流风机风量风压如何保障通风安全?

在化工车间、煤矿巷道等高危环境中&#xff0c;通风安全是保障生产与人员生命安全的关键防线。防爆风扇储能轴流风机凭借独特的风量风压设计与性能优势&#xff0c;成为守护通风安全的可靠屏障。那么&#xff0c;它究竟是如何发挥作用的呢?​ 从风量设计来看&#xff0c;防爆风…...

Centos 7系统 宝塔部署Tomcat项目(保姆级教程)

再看文章之前默认已经安装好系统&#xff0c;可能是云系统&#xff0c;或者是虚拟机。 宝塔安装 这个比较简单&#xff0c;参考这个老哥的即可&#xff1a; https://blog.csdn.net/weixin_42753193/article/details/125959289 环境配置 进入宝塔面板之后会出现环境安装&…...

Electron读取本地文件

在 Electron 应用中&#xff0c;可以使用 Node.js 的 fs 模块来读取本地文件。以下是如何实现这一功能的详细步骤。 1. 设置项目结构 假设你的项目目录如下&#xff1a; my-electron-app/ ├── main.js ├── index.html └── renderer.js2. 使用 fs 模块读取文件 在主…...

Plesk 下的 IP 地址管理

Plesk是一个方便管理的控制面板&#xff0c;可以简化网站主机和服务器数据中心的自动化管理。它专为提供Windows和Linux服务器的供应商设计。Plesk面板适用于虚拟主机和独立服务器 服务器管理员可以使用Plesk来配置新网站、电子邮件系统和转售商账户&#xff0c;也可以通过Ple…...

基于STM32、HAL库的DS28E15P安全验证及加密芯片驱动程序设计

一、简介: DS28E15P是Maxim Integrated (现为Analog Devices)生产的一款1-Wire EEPROM芯片,具有以下特点: 1-Wire接口通信,仅需单根数据线加地线 1024位(128字节)EEPROM存储器 每个器件具有唯一的64位ROM ID 工作电压范围:2.8V至5.25V 内置CRC16校验功能 可编程写保护功能…...

浅析localhost、127.0.0.1 和 0.0.0.0的区别

文章目录 三者的解释三者的核心区别总结使用场景示例什么是回环地址常见问题开发工具中的地址使用为什么开发工具同时支持localhost和127.0.0.1&#xff1f;实际应用示例VSCode中的Live Server插件VSCode中的VUE项目IDEA中的Spring Boot应用 最佳实践建议 localhost、 127.0.0…...

antd+react实现html图片预览效果

import { Image } from ‘antd’; import { useEffect, useRef, useState } from ‘react’; import styles from ‘./index.module.less’; interface PreviewHtmlWithImagesProps { htmlContent: string; } const PreviewHtmlWithImages: React.FC ({ htmlContent }) >…...

【React】轻松掌握 React 中 useEffect的使用

你有没有想过&#xff0c;为什么你的 React 组件能够轻松应对周围发生的变化&#xff0c;比如每当有新数据到来时自动更新&#xff0c;或者处理可以动态响应实时事件的组件&#xff1f;这就是 useEffect 的用武之地&#xff01;这个强大的钩子&#xff08;Hook&#xff09;就像…...

请简述一下什么是 Kotlin?它有哪些特性?

1 JVM 语言的共性&#xff1a;编译成字节码文件 Kotlin 和 Java 同属于 JVM&#xff08;Java Virtual Machine&#xff09;语言&#xff0c;它们的代码最终都会被编译成 JVM 字节码&#xff08;.class&#xff09;文件。 编译流程&#xff1a; Kotlin 编译&#xff1a;Kotli…...

Post与Get以及@Requestbody和@Pathvariable标签的应用

Post的使用场景&#xff1a;简单来讲适用于有安全性限制的&#xff0c;因为post请求的内容会被存在某个封装内容中&#xff08;比如表单、jason格式等&#xff09;&#xff0c;这部分内容是不会被浏览器的cache所捕捉&#xff0c;安全性较强。 Get的使用场景&#xff1a;与pos…...

基于tabula对pdf中的excel进行识别并转换成word(三)

上一节中是基于PaddleOCR对图片中的excel进行识别并转换成word优化&#xff0c;本节改变思路&#xff0c;直接从pdf中读取表格的信息&#xff0c;具体思路如下所述。 PDF中的表格数据如下截图所示&#xff1a; 一、基于tabula从PDF中提取表格 df_list tabula.read_pdf("…...

k8s集群环境部署业务系统

k8s集群环境部署业务系统&#xff0c;通过shell脚本整合部署过程&#xff0c;简化部署流程。操作流程如下&#xff1a; A&#xff0c;B为业务系统服务名。 一.部署前准备。在k8s集群各节点执行该脚本&#xff0c;完成业务系统镜像加载。 #!/bin/bash # 1.删除deployment ech…...

MySQL 8.4.4 安全升级指南:从漏洞修复到版本升级全流程解析

目录 二、升级前关键注意事项 1. 数据安全与备份 2. 版本兼容性与路径规划 三、分步升级操作流程 1. 环境预检与准备 2. 安装包部署 3. 强制升级组件 4. 验证与启动 一、背景与必要性 近期安全扫描发现生产环境的 MySQL 数据库存在多个高危漏洞(CVE 详情参见Oracle 官…...

“假读“操作在I2C接收流程中的原因

在I2C接收流程中&#xff0c;"假读"操作是NXP I2C控制器工作特性要求的必要操作&#xff0c;具体原因如下&#xff1a; // 接收函数关键代码 void i2c_master_read(I2C_Type *base, unsigned char *buf, unsigned int size) {// ...dummy base->I2DR; /* 假读 *…...

TA学习之路——2.3图形的HLSL常用函数详解

1.基本数学运算 函数作用max(a,b)返回a,b值中较大的那个min(a,b)返回a,b值中较小的那个mul(a,b两变量相乘,常用于矩阵abs(a)返回a的绝对值sqrt(x)返回x的平方根rsqrt(x)返回x的平方根的倒数degrees(x)将弧度转成角度radians(x)将角度转成弧度noise(x)噪声函数1.1 创建一个测试…...

Python数据容器:数据容器的分类、数据容器特点总结、各数据容器遍历的特点、数据容器通用操作(统计,转换,排序)

目录 数据容器的分类 数据容器特点总结 数据容器遍历的特点 通用操作 通用统计len()、max()、min() 通用转换list()、tuple()、str()、set() 通用排序sorted 数据容器的分类 分类&#xff1a; 是否支持下标索引 支持&#xff1a;列表、元组、字符串-序列类型不支持&…...

FastAPI的发展历史

参考&#xff1a;https://zhuanlan.zhihu.com/p/710831974 FastAPI 于 2019 年发布&#xff0c;由 Sebastian Ramirez 创建。他是 Pydantic 框架的创建者&#xff0c;也是多个开源项目的贡献者。 FastAPI 的设计初衷是为了解决 Python Web 框架在数据类型验证和文档生成方面的问…...

本地大模型编程实战(28)查询图数据库NEO4J(1)

本文将基于langchain 框架&#xff0c;用LLM(大语言模型)查询图数据库NEO4J。 使用 qwen2.5 做实验&#xff0c;用 llama3.1 查不出内容。 文章目录 安装 NEO4J准备图数据查询图数据总结代码 安装 NEO4J 参见&#xff1a;在windows系统中安装图数据库NEO4J 。 准备图数据 我…...

从厨房到云端:从预制菜到云原生

小美&#xff1a;小猿&#xff0c;你最近在忙什么呢&#xff1f;看你总是加班。 小猿&#xff1a;唉&#xff0c;公司在搞什么“云原生”改造&#xff0c;说是要把我们的应用搬到云上&#xff0c;搞得我头都大了。 小美&#xff1a;云原生&#xff1f;听起来很高大上啊&#…...

单片机-89C51部分:9、串行口通讯

飞书文档https://x509p6c8to.feishu.cn/wiki/WSh3wnADkixHspk7kc8c5esRnad 一、什么是串口&#xff1f;它的作用&#xff1f; 串行口&#xff0c;简称为串口&#xff0c;什么是串口&#xff1f;它的作用是什么&#xff1f; 两个人交流&#xff0c;一般通过在说话在空气中产生…...

C++程序退出时的对象析构陷阱:深度解析与避坑指南

C++程序退出时的对象析构陷阱:深度解析与避坑指南​ 一、从诡异案例说起:局部对象为何"神秘消失"?二、全局对象 vs 局部对象1. 全局对象生命周期2. 局部对象生命周期三、程序终止的两种姿势:exit() vs return四、atexit():最后的救命稻草1.基础用法2. 核心特性3…...

为什么 Vite 速度比 Webpack 快?

一、webpack会先进行编译&#xff0c;再运行&#xff0c;vite会直接启动&#xff0c;再按需编译文件。 首先看两张图&#xff0c;可以清晰的看到&#xff0c;上面的图是webpack编译过的&#xff0c;而下面的图是vite直接使用工程内文件。 二、区别于Webpack先打包的方式&am…...

指针变量存放在哪?

指针的存储位置取决于其声明方式和作用域&#xff0c;以下是详细分析&#xff1a; 1. 栈&#xff08;Stack&#xff09; 局部指针变量&#xff1a;在函数内部声明的指针&#xff08;非静态&#xff09;&#xff0c;作为局部变量存储在栈中。void func() {int *p; // p本身存储…...

Kafka 消息可靠性深度解析:大流量与小流量场景下的设计哲学

在分布式消息系统的设计中&#xff0c;消息可靠性保障本质上是系统在一致性、可用性、吞吐量三者之间动态博弈的结果。Kafka作为现代流式架构的核心组件&#xff0c;其消息可靠性机制在不同流量场景下呈现出截然不同的设计哲学。本文将从系统设计原理层面&#xff0c;解构大流量…...

python数据分析(六):Pandas 多数据操作全面指南

Pandas 多数据操作全面指南&#xff1a;Merge, Join, Concatenate 与 Compare 1. 引言 在数据分析工作中&#xff0c;我们经常需要处理多个数据集并将它们以各种方式组合起来。Pandas 提供了多种强大的多数据操作方法&#xff0c;包括合并(merge)、连接(join)、连接(concaten…...

在K8S迁移节点kubelet数据存储目录

默认k8s节点kubelet数据目录在 /var/lib/kubelet&#xff0c;如果在部署前没有做好规划&#xff0c;其实默认就存储在系统盘/分区下了&#xff0c;这样会导致一个问题&#xff0c;如果数据量过大会导致kubelet服务异常&#xff0c;其次&#xff0c;系统盘下有一些系统服务引用&…...

k8s 学习记录 (六)_Pod 污点和容忍性详解

一、前言 在 Kubernetes 集群中&#xff0c;我们已经了解了节点亲和性和 Pod 亲和性&#xff0c;它们在 Pod 调度方面提供了很大的灵活性。今天&#xff0c;我们来探讨另外两个重要的概念 ——Pod 污点&#xff08;Taints&#xff09;和容忍性&#xff08;Tolerations&#xf…...

hutools工具类中isNotEmpty与isNotBlank区分

基于以下两种情况。在判断的变量是String类型时&#xff0c; 判断是否为空&#xff0c;推荐使用isNotBlank(). 1. isNotEmpty 不会验证str中是否含有空字符串&#xff0c;而 isNotBlank方法会验证 public static boolean isNotEmpty(CharSequence str) {return false isEmpty…...

C#解析USB - HID手柄上摇杆按键数据

1. 了解相关知识 ​​HID设备通信原理​​&#xff1a;HID设备通过端点报告其状态和数据&#xff0c;设备通过报告描述符来描述数据用途&#xff0c;操作系统通过这个描述符了解设备发送数据的结构。通常一个完整的报告以特定的格式从设备传输至主机。​​Windows API函数​​…...

k8s术语pod

Pod概览 理解Pod Pod是kubernetes中你可以创建和部署的最小也是最简的单位,pod代表着集群中运行的进程。 Pod中封装着应用的容器(有的情况下是好几个容器),存储、独立的网络IP,管理容器如何运行的策略选项。Pod代表着部署的一个单位:kubemetes中应用的一个实例,可能由一个…...

使用高德MCP+AI编程工具打造一个旅游小助手

开始之前&#xff0c;我们先来回顾一下&#xff0c;什么是mcp MCP(Model Context Protocol) 模型上下文协议是 2024 年 11 月由 Anthropic 公司推出并开源的一个新标准 核心内容 架构2&#xff1a;MCP 采用客户端 - 服务器架构。AI 应用程序&#xff08;如聊天工具或 IDE&a…...

AgeTravel | 银发文娱旅游一周新鲜事

银发文娱旅游一周新鲜事 整理 | AgeClub吕娆炜 一周银发文娱旅游产业资讯速览 星期一 4月28日 1 企业动态 携程老友会联合喜悦盛年&#xff0c;首发“旅游兴趣课堂”模式 华寿中心“这YOUNG的老年派”合作聚焦老龄文化需求 通用技术康养Q1营收同比增长129% 2 行业风向…...

【记】Laya2.x数字末尾导致换行异常问题

文章目录 图示 图示...

jspm老年体检信息管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 信息化时代&#xff0c;各行各业都以网络为基础飞速发展&#xff0c;而医疗服务行业的发展却进展缓慢&#xff0c;传统的医疗服务行业已经逐渐不满足民众的需求&#xff0c;有些还在以线下预约的方式接待病人&#xff0c;特别是针对于老年体检的服务&#xff0c;是少之又…...

point-cloud-annotation-tool工具windows复现,史诗巨制(windows 11)

point-cloud-annotation-tool 前期准备1.安装Qt52.安装Cmake3.安装VS 20194.编译构建 VTK 8.15.安装 PCL 1.86.编译Boost 软件环境适配准备1 Boost2 VTK 开始编译开始生成 前期准备 point-cloud-annotation-tool是一款三维标注软件&#xff0c;本次介绍的是再windows11环境下安…...

欧拉计划 Project Euler60(素数对集合)题解

欧拉计划 Project Euler 60 题解 题干思路code 题干 思路 先欧拉筛预处理出素数&#xff0c;然后dfs&#xff0c;注意剪枝&#xff0c;不然太容易炸了 code //13 5197 5701 6733 8389 //26033 #include <bits/stdc.h>using namespace std;using ll long long;bool i…...

DeepSeek破界而来:重构大规模深度检索的算力与边界

深度检索技术革命&#xff1a;DeepSeek万亿参数框架如何突破实时召回率瓶颈 引言&#xff1a;当千亿参数遇见实时检索 在人工智能技术飞速发展的今天&#xff0c;超大规模语言模型已成为推动产业智能化的核心引擎。然而&#xff0c;随着模型参数量突破万亿级门槛&#xff0c;…...

自定义指令input中前面不能输入空格

vue3加el-input 封装自定义指令 utils/trim.ts import type { Directive, DirectiveBinding } from vue;const trim: Directive {mounted(el, binding: DirectiveBinding) {// 获取 el-input 的 DOM 节点const inputEl el.querySelector(input);if (!inputEl) {console.er…...

esp32将partitions.csv文件启用到工程项目中的配置

在ESP32项目里&#xff0c;partitions.csv 文件用于定义闪存的分区表&#xff0c;它规定了不同类型数据&#xff08;如代码、文件系统、OTA 分区等&#xff09;在闪存中的存储位置和大小。下面为你详细介绍如何将 partitions.csv 文件集成到工程项目中以及相应的配置步骤。 1.…...

Windows系统下,导入运行 RuoYi-Vue3 项目

基于SpringBootVue3前后端分离的Java快速开发框架 一、后端 1.git下载代码 RuoYi-Vue&#xff1a;RuoYi-Vue: 基于SpringBoot&#xff0c;Spring Security&#xff0c;JWT&#xff0c;Vue & Element 的前后端分离权限管理系统 git clone https://gitee.com/y_project/R…...

Spark 配置 YARN 模式

在大数据处理领域&#xff0c;Spark 是一个强大的分布式计算框架&#xff0c;而 YARN&#xff08;Yet Another Resource Negotiator&#xff09;则是 Hadoop 生态系统中出色的资源管理器。将 Spark 配置为 YARN 模式&#xff0c;可以充分利用 YARN 高效的资源管理和调度能力&am…...

【Linux学习笔记】进程替换和自定义shell

【Linux学习笔记】进程替换和自定义shell &#x1f525;个人主页&#xff1a;大白的编程日记 &#x1f525;专栏&#xff1a;Linux学习笔记 文章目录 【Linux学习笔记】进程替换和自定义shell前言一.进程程序替换1.1 替换原理1.2 替换函数1.2.1函数解释1.2.2命名理解 二.自主…...

HarmonyOS运动开发:如何监听用户运动步数数据

前言 在开发运动类应用时,准确地监听和记录用户的运动步数是一项关键功能。HarmonyOS 提供了强大的传感器框架,使得开发者能够轻松地获取设备的运动数据。本文将深入探讨如何在 HarmonyOS 应用中实现步数监听功能,同时分享一些开发过程中的经验和技巧,帮助你更好地理解和实…...

Vuex状态管理及其持久化使用指南

1. 安装 Vuex Vue 2 或 Vue 3 项目&#xff1a; npm install vuex4 # Vuex 4 兼容 Vue 2 和 Vue 3 2. 创建 Store 新建 store/index.js&#xff1a; import { createStore } from vuex; import createPersistedState from vuex-persistedstate; // 持久化插件// 定义子模…...

k8s学习笔记

1查看默认命名空间pod kubectl get nodes 查看所有名空间的pod kubectl get pods -A 查看所有节点node kubectl get nodes 2根据配置文件,给集群创建资源 kubectl apply -f xxxx.yaml 3查看集群部署了哪些应用? kubectl get pods -A 4生成、删除、获取所…...

HarmonyOS ArkUI安全控件开发指南:粘贴、保存与位置控件的实现与隐私保护实践

目录 安全控件1. 粘贴控件1.1 约束与限制1.2 开发步骤 2. 保存控件2.1 约束与限制2.2 开发步骤 3. 位置控件3.1 约束与限制3.2 开发步骤 安全控件 安全控件是系统提供的一组系统实现的ArkUI组件&#xff0c;其中保存控件在用户首次使用时&#xff0c;会弹出通知弹窗&#xff0…...