情迁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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,390评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,821评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,632评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,170评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,033评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,098评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,511评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,204评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,479评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,572评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,341评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,893评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,171评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,486评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,676评论 2 335