3

我正在阅读三元速记 if/else 并且想知道用三元速记替换所有(或大部分)我的传统 if/else 语句是否有意义或更有益?这会让它跑得更快吗?还是所有的好处都在于它的代码更少?

感谢您的见解!

4

10 回答 10

7

当有明确的选择时,三元 if/then 语句应用于基本逻辑。当您开始嵌套三元 if/then 语句时,当需要进行更改或需要修复错误时,您只会让自己(或您未来的继任者)更加头疼。

至于速度提升,您不会看到三元语句或普通语句之间的区别。但是,您将减少文件大小的几个字节,尽管这可能还不够明显。

于 2010-12-22T19:00:43.107 回答
6

那将毫无意义。三元仅在非常“原始”的条件下有用,并且大多数ifs 都更复杂。

你会浪费很多时间,却一无所获。

于 2010-12-22T19:00:56.047 回答
3

代码是为人而不是计算机编写的,有些人发现使用三元运算符很难阅读。

就个人而言,我认为作为一名程序员,你会希望你的重点放在可读性上。

于 2010-12-22T19:01:54.767 回答
1

根本没有性能提升。它真的更容易阅读。如果你有一堆 if-else 语句,那么离开它会更容易。三元语句通常用于条件赋值,例如$var = $bool ? "IF TRUE" : "IF FALSE". 如果您正在执行 if 语句来分支代码的执行,那么三元并没有真正的意义。

于 2010-12-22T19:01:11.800 回答
1

不,它们被编译/解释成相同的代码。

最后,您将完成的只是使您的代码更难阅读和更难维护。

于 2010-12-22T19:00:26.313 回答
0

我不认为我建议在工作项目中更改旧的 ifs。考虑向后兼容性,如果您不将项目部署在全新的系统上,它将无法工作。

如果你试图加快速度,我认为这件事有更好的做法。

所以,总而言之,我认为你不

于 2010-12-22T19:02:22.330 回答
0

有明确定义的何时重构现有代码的实例。

从常规 if then 语句更改为三元语句不是其中之一。

它们提供绝对零性能优势,纯粹是为了帮助使代码更简洁,有时更具可读性。

于 2010-12-22T19:08:27.340 回答
0

绝对不是,如果你想添加额外的 else if 怎么办?再加上三元法其实也不是更快

于 2010-12-22T19:00:07.093 回答
0

三元组不会让你的代码运行得更快——它们只是一个捷径(而且更难阅读)。你应该非常小心用三元组替换 if/else 语句。

如果 if/else 链在每个子句中只有一行(并且它不是另一个 if 语句),那么您可能可以安全地将代码简化为三元组,并相信在您之后的任何人都能够理解它。但是,如果您的代码具有多行或嵌套的 if 语句,则不应将它们转换为三元 - 在这种情况下,您所做的只是增加了复杂性。

于 2010-12-22T19:00:17.050 回答
0

这是一个较旧的对话,但我使用的是 VS2010、.NET 4.0,并且三元运算符的性能始终比等效的 if-then 语句好 18% 到 22%。

于 2012-01-05T23:29:07.020 回答