笔者最近在维护前人弃坑的C# 专案的程序码看到?跟:,这是啥东西?
一开始以为是lambda 在C#中的应用,後来经查询後才发现是三元运算子
什麽是三元运算子呢?
三元运算子是由 两个表达式 跟一个运算式组成,以C 为例 ,大约是下面的表达方式,但笔者是有看没有懂
hello ? monkey: money
以python 的呈现方式如下:
hello = monky if x.sayhello() else money
上面的叙述等同下面的写法
if x.sayhello():
hello = monky
else:
hello = money
快速理解:
三元运算式 = 两个表达式 加上一个运算元组成
事件为真 if 条件存在 else 事件为假
缺点:
- 条件分支只能为运算式,不支持多条陈述句
- 容易被滥用,很多人将其用于替代if陈述句或是简化复杂的if嵌套,这会导致上一条中所描述的结果
引用自三元运算子缺点
结论:
笔者觉得这可以让原始码变得更简洁,但笔者在比较lambda 及三元运算子後 还是觉得lambda 比较好用跟好阅读。 笔者目前在维护前人弃坑的专案中就发现三元运算式被滥用的情况,让後续维护变成超痛苦。
<<: Day27 :【TypeScript 学起来】Module 模组
>>: Day28: 今天来聊一下将syslog 资料连线到 Azure Sentinel
前言 (Sorry标题取的很烂,但我有点难抓到整个演讲想讲的重点XD|||) 这篇蛮general...
最近在思考,为什麽要雇人呢? 37Signals 的老板写的 Rework 这本书,被奉为 indi...
//装备药水:实现药水单向(若装备栏内没药水可直接装备)、双向置换(若装备栏内已经有药水,直接点击新...
大话资料结构中物理结构的定义 资料的逻辑结构在电脑中的储存形式 循序储存结构 定义:把资料元素储存在...
原理说明 SVM (support vector machine 支援向量机),是在特徵空间中找到一...