情迁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

    相关文章

    Java 接口定义变量的示例代码

    《Java接口定义变量的示例代码》文章介绍了Java接口中的变量和方法,接口中的变量必须是publicstaticfinal的,用于定义常量,而方法默认是publicabstract的,必须由实现类... 在 Java 中,接口是一种抽象类型,用于定义类必须实现的方法。接口可以包含常量和方法,但不能包含实例

    Nginx内置变量应用场景分析

    《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

    Python之变量命名规则详解

    《Python之变量命名规则详解》Python变量命名需遵守语法规范(字母开头、不使用关键字),遵循三要(自解释、明确功能)和三不要(避免缩写、语法错误、滥用下划线)原则,确保代码易读易维护... 目录1. 硬性规则2. “三要” 原则2.1. 要体现变量的 “实际作用”,拒绝 “无意义命名”2.2. 要让

    使用Node.js和PostgreSQL构建数据库应用

    《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

    Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

    《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

    Docker多阶段镜像构建与缓存利用性能优化实践指南

    《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

    SpringBoot中@Value注入静态变量方式

    《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

    Three.js构建一个 3D 商品展示空间完整实战项目

    《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

    GO语言短变量声明的实现示例

    《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

    Python利用PySpark和Kafka实现流处理引擎构建指南

    《Python利用PySpark和Kafka实现流处理引擎构建指南》本文将深入解剖基于Python的实时处理黄金组合:Kafka(分布式消息队列)与PySpark(分布式计算引擎)的化学反应,并构建一... 目录引言:数据洪流时代的生存法则第一章 Kafka:数据世界的中央神经系统消息引擎核心设计哲学高吞吐