我正在阅读三元速记 if/else 并且想知道用三元速记替换所有(或大部分)我的传统 if/else 语句是否有意义或更有益?这会让它跑得更快吗?还是所有的好处都在于它的代码更少?
感谢您的见解!
我正在阅读三元速记 if/else 并且想知道用三元速记替换所有(或大部分)我的传统 if/else 语句是否有意义或更有益?这会让它跑得更快吗?还是所有的好处都在于它的代码更少?
感谢您的见解!
当有明确的选择时,三元 if/then 语句应用于基本逻辑。当您开始嵌套三元 if/then 语句时,当需要进行更改或需要修复错误时,您只会让自己(或您未来的继任者)更加头疼。
至于速度提升,您不会看到三元语句或普通语句之间的区别。但是,您将减少文件大小的几个字节,尽管这可能还不够明显。
那将毫无意义。三元仅在非常“原始”的条件下有用,并且大多数if
s 都更复杂。
你会浪费很多时间,却一无所获。
代码是为人而不是计算机编写的,有些人发现使用三元运算符很难阅读。
就个人而言,我认为作为一名程序员,你会希望你的重点放在可读性上。
根本没有性能提升。它真的更容易阅读。如果你有一堆 if-else 语句,那么离开它会更容易。三元语句通常用于条件赋值,例如$var = $bool ? "IF TRUE" : "IF FALSE"
. 如果您正在执行 if 语句来分支代码的执行,那么三元并没有真正的意义。
不,它们被编译/解释成相同的代码。
最后,您将完成的只是使您的代码更难阅读和更难维护。
我不认为我建议在工作项目中更改旧的 ifs。考虑向后兼容性,如果您不将项目部署在全新的系统上,它将无法工作。
如果你试图加快速度,我认为这件事有更好的做法。
所以,总而言之,我认为你不
有明确定义的何时重构现有代码的实例。
从常规 if then 语句更改为三元语句不是其中之一。
它们提供绝对零性能优势,纯粹是为了帮助使代码更简洁,有时更具可读性。
绝对不是,如果你想添加额外的 else if 怎么办?再加上三元法其实也不是更快
三元组不会让你的代码运行得更快——它们只是一个捷径(而且更难阅读)。你应该非常小心用三元组替换 if/else 语句。
如果 if/else 链在每个子句中只有一行(并且它不是另一个 if 语句),那么您可能可以安全地将代码简化为三元组,并相信在您之后的任何人都能够理解它。但是,如果您的代码具有多行或嵌套的 if 语句,则不应将它们转换为三元 - 在这种情况下,您所做的只是增加了复杂性。
这是一个较旧的对话,但我使用的是 VS2010、.NET 4.0,并且三元运算符的性能始终比等效的 if-then 语句好 18% 到 22%。