分享时间 | 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 |