情迁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使用Mail构建邮件功能的完整指南

    《Java使用Mail构建邮件功能的完整指南》JavaMailAPI是一个功能强大的工具,它可以帮助开发者轻松实现邮件的发送与接收功能,本文将介绍如何使用JavaMail发送和接收邮件,希望对大家有所... 目录1、简述2、主要特点3、发送样例3.1 发送纯文本邮件3.2 发送 html 邮件3.3 发送带

    Python结合Flask框架构建一个简易的远程控制系统

    《Python结合Flask框架构建一个简易的远程控制系统》这篇文章主要为大家详细介绍了如何使用Python与Flask框架构建一个简易的远程控制系统,能够远程执行操作命令(如关机、重启、锁屏等),还... 目录1.概述2.功能使用系统命令执行实时屏幕监控3. BUG修复过程1. Authorization

    使用Java发送邮件到QQ邮箱的完整指南

    《使用Java发送邮件到QQ邮箱的完整指南》在现代软件开发中,邮件发送功能是一个常见的需求,无论是用户注册验证、密码重置,还是系统通知,邮件都是一种重要的通信方式,本文将详细介绍如何使用Java编写程... 目录引言1. 准备工作1.1 获取QQ邮箱的SMTP授权码1.2 添加JavaMail依赖2. 实现

    Rust中的Drop特性之解读自动化资源清理的魔法

    《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

    nginx-rtmp-module构建流媒体直播服务器实战指南

    《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

    浅析Rust多线程中如何安全的使用变量

    《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

    利用Python编写一个简单的聊天机器人

    《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

    五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

    《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

    Python中构建终端应用界面利器Blessed模块的使用

    《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

    Golang使用etcd构建分布式锁的示例分享

    《Golang使用etcd构建分布式锁的示例分享》在本教程中,我们将学习如何使用Go和etcd构建分布式锁系统,分布式锁系统对于管理对分布式系统中共享资源的并发访问至关重要,它有助于维护一致性,防止竞... 目录引言环境准备新建Go项目实现加锁和解锁功能测试分布式锁重构实现失败重试总结引言我们将使用Go作