情迁QQ机器人1.8.4新特性 可空变量的构建

2023-10-21 17:10

本文主要是介绍情迁QQ机器人1.8.4新特性 可空变量的构建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

存在的意义

变量的构建方便简化执行过程,特别是执行SQL语句的时候,但是仅仅用到这上面不能充分体现它的优点,实际上在制作卡片消息的时候就非常有作用了,可以方便用户交互,
可以输入卡片 $我的名片直接生成自己的名片卡
可以输入卡片 $他的名片(694886526,default,default,default) 直接生成对应的qq的卡片.
这里有3个694886526但是经过后面的改良增加了{arg传递的参数下标,默认值}也就是{arg0|arg,默认值}语法,因此可以让用户更便捷,也让自己更省心的维护代码。

可空变量的灵感来源于生成个人名片的的默认标题修改,默认标题其实够用了,但是如果给他个性化但是就涉及到一个问题,有的用户不知道该填写啥。所以就像到了一个规则定义,并解析.

select标记占位

语法select(默认值)
select标记的逻辑是优先让%s的参数用完,用完之后呢 比如 变量x(1,2,3,4,5)其中 1 2 3 是用来替换里面3个%s的,那么select(标记找到了之后则从4开始替换,如果有2个,那么刚好替换为4和5,如果 ,不足够了,那么显示的是select()之间的默认值

可空变量比参数变量更加牛逼了,因为允许为空,允许默认值占位。
举例:配置添加变量测试可空变量|变量1=%s 变量2=%s 可空变量1的内容是=select(你好) 可空变量2的内容是=select(我好) 可空变量2的内容是=select(大家好) 可空变量2的内容是=select(你非常棒)
这里面其中select为默认值,如果这个参数长度不够或者长度达到了但是为空或者为null或者为default则依然用原来的,否则用传递的。
使用效果如下:配置print $测试可空变量(我爱你,老婆,default,我不好,default,那天晚上我很开心)

打印的结果:变量1=我爱你 变量2=老婆 可空变量1的内容是=你好 可空变量2的内容是=我不好 可空变量2的内容是=大家好 可空变量2的内容是=那天晚上我很开心配置print $测试可空变量(我爱你,老婆,default,哈哈哈)
打印结果:变量1=我爱你 变量2=老婆 可空变量1的内容是=你好 可空变量2的内容是=哈哈 可空变量2的内容是=大家好 可空变量2的内容是=你非常棒

}D~3OXR)Z`P%S9(YVAV1{GP.png

可空变量的体验需要1.8.4版本的机器人才能体验。
1.8.4版本也会伴随q++插件的更新,

这次主要是优化了进程通讯相关的东西,也就是不用之前的通讯方式了,现在的方式可以双端通讯回调,更便捷,查询大量数据的时候最方便,或者是一下子查询很多昵称,比如输入参数 floor 的时候之前的版本只能显示QQ因为没办法查询,因为不是异步回调,发过去消息那边没法回调回来,为了实现这个不修改qq实现回调,我特么发现除了把机器人直接让qq加载外还有一种方式也可以实现。快哉,这简直为下一步构建更牛逼的机器人奠定了基础啊。

可重复位置变量

1、这个功能只要是借用c#语言的优点,他的优点就是可以避免重复写值,随意控制读取哪个参数,不需要区分先后顺序。
2、如果读取的变量不存在则读取空字符串,或者arg值后面的数值 也就是默认值,这比之前的可空参数更加牛逼了更加灵活了。

首先输入配置添加变量 多参指位变量|变量1=%s 变量2={arg0} 变量3={arg0} 变量4={arg0} 变量5={arg0} 读取参数3={arg2} 读取参数2={arg1} 读取参数5={arg4}

转换的结果

变量1=别重复我哦我是参数1 变量2=别重复我哦我是参数1 变量3=别重复我哦我是参数1 变量4=别重复我哦我是参数1 变量5=别重复我哦我是参数1 读取参数3=参数3 读取参数2=参数2 读取参数5=我是参数5

可重复位置又可定义默认值变量

首先添加变量

配置添加变量 多参指位可默认值变量|变量1=%s 变量2={arg3,arg3的默认值} 变量3={arg0,arg0的默认值} 变量4={arg0} 变量5={arg0} 读取参数3={arg2} 读取参数2={arg1} 读取参数5={arg4,arg4的默认值}

验证

执行后输入配置print $多参指位可默认值变量()

变量1= 变量2=arg3的默认值 变量3=arg0的默认值 变量4= 变量5= 读取参数3= 读取参数2= 读取参数5=arg4的默认值

输入配置print $多参指位可默认值变量(发,发发发,default,default,我是参数5)
得出的结果:变量1=发 变量2=arg3的默认值 变量3=发 变量4=发 变量5=发 读取参数3= 读取参数2=发发发 读取参数5=我是参数5

注意点

{arg不能和select()共存,因为后者是用来取%s后面依次对应的值,而{arg也属于这个范围,会导致取错值。比如最后一个参数是select(前面的参数传递了,解析的是{arg那么这里读取的就是前面的,这类似与可变参数为什么只能放到最后面一个道理,这里要想解决矛盾除非select放到前面,另外由于我又进一步升级{arg变量因此select(昙花一现,开发到测试不到半小时,结果又一次更新。。select的优势是不需要记住到底是arg多少了,只需要填写默认值就行了。不过我决定改良select{arg语法同时存在的时候select永远是读取最后面的.那么select{arg}前面,但是解析传递的参数的时候得先计算%s总数+{arg总数,然后从这个位置往后面排。

image.png

默认变量[他的名片]是如何定义的?

image.png

http://www.taodudu.cc/news/show-8023400.html

相关文章:

  • 情迁QQ机器人插件化加载和非插件化的知识普及
  • python爬取电影评论
  • 【原理篇】WebView 实现嵌套滑动,丝滑般实现吸顶效果,完美兼容 X5 webview
  • Java面试宝典——Java基础知识总结
  • GPT-3.5 生成 Fabric Cypher
  • SuperMap iDesktop 8C 地图制图
  • GBase 8c 数据类型-日期时间格式
  • 推荐《全职猎人》
  • 解决巴哈姆特动画疯视频一直加载
  • 目标检测YOLO实战应用案例100讲-复杂场景下的YOLOv5目标检测算法的改进方法研究
  • 运维如何解决终端部门投诉
  • java工程师联通XX面试题目
  • 联通让“打110”,我该怎么办?
  • 脸秀-用颜值和世界刚正面
  • 生活不止眼前的代码和BUG,还有远方的电子厂和新疆摘棉花
  • 新公司第五天(生活不止眼前的苟且)
  • UZH slam 两种相机
  • Hangover poj1003
  • Xilinx 7系列 FPGA选型
  • NUC1003 Hangover【水题】
  • CSS学习(5)--文本属性(下)
  • LaTex 写演示文稿 - Beamer 入门 之 彩色表格
  • Part decomposition and evaluation based on standard design guidelines for AM 论文笔记
  • Hangover(POJ 1003)
  • Poj1003------Hangover
  • POJ1003 Hangover
  • 北大OJ1003题
  • CSS文本:ruby-overhang(转)
  • 周赛反思1
  • overhang.js,一款顶部通知栏
  • 这篇关于情迁QQ机器人1.8.4新特性 可空变量的构建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



    http://www.chinasem.cn/article/255766

    相关文章

    一文全面详解Python变量作用域

    《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作

    基于Python构建一个高效词汇表

    《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

    Python FastMCP构建MCP服务端与客户端的详细步骤

    《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

    详解如何使用Python构建从数据到文档的自动化工作流

    《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化:

    详解如何使用Python从零开始构建文本统计模型

    《详解如何使用Python从零开始构建文本统计模型》在自然语言处理领域,词汇表构建是文本预处理的关键环节,本文通过Python代码实践,演示如何从原始文本中提取多尺度特征,并通过动态调整机制构建更精确... 目录一、项目背景与核心思想二、核心代码解析1. 数据加载与预处理2. 多尺度字符统计3. 统计结果可

    JDK9到JDK21中值得掌握的29个实用特性分享

    《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

    一文教你Java如何快速构建项目骨架

    《一文教你Java如何快速构建项目骨架》在Java项目开发过程中,构建项目骨架是一项繁琐但又基础重要的工作,Java领域有许多代码生成工具可以帮助我们快速完成这一任务,下面就跟随小编一起来了解下... 目录一、代码生成工具概述常用 Java 代码生成工具简介代码生成工具的优势二、使用 MyBATis Gen

    Python使用Reflex构建现代Web应用的完全指南

    《Python使用Reflex构建现代Web应用的完全指南》这篇文章为大家深入介绍了Reflex框架的设计理念,技术特性,项目结构,核心API,实际开发流程以及与其他框架的对比和部署建议,感兴趣的小伙... 目录什么是 ReFlex?为什么选择 Reflex?安装与环境配置构建你的第一个应用核心概念解析组件

    C#特性(Attributes)和反射(Reflection)详解

    《C#特性(Attributes)和反射(Reflection)详解》:本文主要介绍C#特性(Attributes)和反射(Reflection),具有很好的参考价值,希望对大家有所帮助,如有错误... 目录特性特性的定义概念目的反射定义概念目的反射的主要功能包括使用反射的基本步骤特性和反射的关系总结特性

    PyTorch高级特性与性能优化方式

    《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据