在稳定版本3.3.5发放之后,一个【选择】函数被越来越多的人注意到,其带来的并非仅仅是对于【随取】的替代和完善,更多的是一个更加便利的写法和更加清晰的逻辑。

编辑于2020.10.3 转载请注明原作者

“选择”函数是什么

【选择[序号或逻辑组]>=<[返回1]>=<[返回2]……】 从多个结果中按照约定选择指定返回。

当[序号或逻辑组]为数值的时候,选择第[序号或逻辑组]个返回。

当[序号或逻辑组]为逻辑组时,选择第 "首个成立的逻辑表达式序号" 个返回。

引用于变量说明

选择对象为数值时的示例

当选择对象为数值的时候,其会返还后面第[数值]个参数。

可以看到,在上文的例子中,根据不同的选择数值,对于后文的参数有了不同的反馈。而超出了选择上限之后(即数值为4的情况下)则是选择了最后一个作为输出结果。

回忆一下之前我们所了解过的东西,这个最为类似的函数就是我们曾经在好感度那篇文章中提到的【区间比较】函数,其存在的意义就是按照一个数值条件,选择性的输出后面的参数。

因此,我们可以确定的第一个事情就是。
选择可以用来替代区间回复,这意味着无论是时间回复(根据时间进行的回复)还是好感度回复还是什么抽卡的回复,都是可以用选择来替换原有的区间回复的,且效率会更高。

  • 优点
    • 处理速度较快
    • 不会出现奇怪的转义bug
  • 缺点
    • 数值需要进行公式运算进行转换
    • 书写并不方便

选择对象为逻辑组时的示例

当选择对象为逻辑组时,会选择首个成立的逻辑组作为输出

为了了解如何使用逻辑组,我们需要首先了解【逻辑】这个函数是如何使用的。

“逻辑”函数是什么

【逻辑[表达式]】 若逻辑正确返回真,否则返回假。

[表达式]代表的是一个逻辑表达式,逻辑表达式的规格包括简单的数值比较,如:10<30,20<=10等,也可以是逻辑关系【逻辑10<20】||【逻辑20>100】,也可以是正则查找或者简单的包含关系。

带有逻辑的选择行为

可以看到,在有逻辑组的情况下,铃心的选择函数变得相当灵活——以至于可以完成多种任务,在某些情况下可以比【比较】【判断】这些函数简单方便的多得多(因为选择本身是顺序执行的,其可以等价于一个多层比较或者多层的判断)

至此,我们可以得到最后对于选择函数的评判

  • 一个对于铃心代码有着极大精简作用的函数
  • 异常灵活,逻辑清晰。
  • 配合逻辑组的情况下可以替代大量变量。
  • 吹爆,说这玩意仅仅是【随取】替代品的都给x爬。

题外话,【随取】的逻辑其实是非重取出。比如说【随取1>=<2>=<3】,其多次取出的结果必定有如下规律:
1.三个三个为一组,一组内必定包括三个不同的数字。
2.非重信息储存在常量内。

“选择”函数带来的巨大改变

对于原有的系统,通过选择可以极大地简化和改进

开关系统的改变

  • 优势
    • 可以摆脱原有嵌套模式的问题
    • 可以任意插入,自行选择何时进行开关截断
    • 可以通过增加选择长度,自由切换开关类别
    • 可以针对回复设定独自的返回回复
    • 稳定的雅痞

重写每日上限

直接把自己的复制上来了,仅供参考

  • 优势
    • 不用忍受默认【一天上限】的优先级问题
    • 可以根据回复自定义超出上限后的行为
    • 方便
    • 自己心里踏实
    • 稳定的雅痞
    • 数据库版本的比铃心自带的快(大量人群使用的情况下)

后记

本篇中并没有叙述什么实质性的,可以直接拿去用的代码,更多的是在强调选择函数的强大之处。

虽然选择可以替代很多原有的变量,但是我并不是很推荐用选择代替原本的比较、判断和随取,因为在可读性的方面,原有的变量更为清晰些。

上文中我所描述的两个巨大改变是针对于整体代码而言的,而选择自己的用途是多之又多,还请各位读者自行参悟。

最后,愿大风暴中的各位,且行且珍惜。


我什么都不懂,我只会现学现卖,谢谢配合。