实践32:非空行加前缀

实践32:非空行加前缀 公开

darcyc 分享于 2021-09-29 06:43 | 5 | 39
如何安装动作?

适用于
分类
示例
天马行空0424 学习者234 Wanpeng 用户626003898834403 同心人 5 人赞了这个动作

1 个动作单 收藏了此动作。

更多信息
分享时间 2021-09-29 06:43
最后更新 2021-09-29 06:43
修订版本 0
用户许可 -未设置-
Quicker版本 1.26.20
动作大小 799 B

分享到

简介

$= {行们}.Select(l => l == "" ? l : {前缀} + l)


$=                解释:Quicker的用法,触发解析C#表达式,因此后续的内容都是C#语法,类似的还有 $$ ,那是插值,我们这里不用

{行们}           解释:引用Quicker中已定义的变量,注意为了遍历每一项,此变量的类型是列表,Quicker中的列表变量每一行为一项

.Select(...)    解释:我们使用此方法是为了试图将 变量{行们} 的每一项映射到新的一项。 空缺处 (...) 写一个函数,依次调用函数,调用时依次传入每项(我们的例子中就是每一行),请继续看下面的解释。

... => ...         解释:匿名函数(解释:lambda,没名称的函数,一般函数我们都会取个名称的。),你如果会定义函数就很容易理解。(我不在这里解释什么是C#的函数,或如何定义他。要讲的话篇幅有点长。请提前自己学习下,或者你可以直接理解成Quicker中的子程序。)左侧写参数,右侧写“返回值”,或者用return主动返回返回值,我们这里没用。我们这个例子中,返回的内容是  l == "" ? l : {前缀} + l  这是一个整体,最终这个整体的结果的类型是字符串,请继续看下面的解释

... == ...         解释:判断句。运算符 == 是条件运算符中的 “相等”,类似的还有 >, <, >=, !=(不等于) 等。本例中,相当于在问:参数 l 和 "" 相等吗?(解释:l 是否是空字符串。由于 l 在本例中是 当前行,相当于在问,当前行是空行吗)。注明:此类运算符一定返回布尔值。举例:真 或 假      /       true 或  false       /         1 或 0         /        yes 或 no          /       是 或 否 。

""                  解释:字符串,并且是空的字符串。有内容的字符串是 "你好", 那么这里只是没有内容而已。

{前缀} + l      解释:字符串的拼接,{前缀} 是 字符串(文本) 类型,l 也是字符串类型(因为他从列表中的每一项得来)。将2个字符串合并为一个字符串。你可以继续拼接(如 "a" + " " + "b"),我们这里拼接一次即可。

 ... ? ... : ...    解释:三元操作符。相当于如果(if),3个空缺分别是:条件 ? 满足条件时返回的内容 : 不满足条件时返回的内容。本例中,条件是 l == ""  ,这相当于在问:当前行是空行吗(上面有解释了)。如果是空行的话,本例中我们执行 l (换句话说:就是说,我们不改变当前行的值,匿名函数传入了参数1(l),传出了 l ,相当于啥都不变)。那么如果不是空行(非空行)的话,本例中我们执行 {前缀} + l(上面有解释了)。


总结:此C#表达式已解释完成。大部分都已经解释了。只有一个没有解释的就是如何在C#定义函数以及相关内容如调用等(本例中我们用不到,本例中我们用的是匿名函数,但理解此可以帮助我们理解本例)。由于网上教程很多。希望大家可以主动去网上搜索去系统地学习,这里不再过多解释了。

难点:如果无法理解表达式各个部分的执行顺序,理解起来会困难。可以反复看我的解释。

其他注明:解释部分较为简练并且假设你已经有了一定的编程基础(如果你有Quicker组合动作编辑的基础也可以),因此如果你是直接跳越到此实践动作的话,可能无法理解其中的解释。但如果你已经有一定的基础和经验还是无法理解的话,这是可以理解的。请反复看我的解释。



此动作是Quicker组合动作教程的一部分,从新开始请前往:演示0:你好地球

浏览完整示例请见:动作单

最近更新

修订版本 更新时间 更新说明
0 2021-09-29 06:43

最近讨论

使用问题 · 294
秘银 2021-11-20 09:46 darcyc 2021-11-20 10:15