gpt4 book ai didi

coding-style - 为什么要使用短路码?

转载 作者:行者123 更新时间:2023-12-03 11:11:56 25 4
gpt4 key购买 nike

相关问题:Benefits of using short-circuit evaluationWhy would a language NOT use Short-circuit evaluation?Can someone explain this line of code please? (Logic & Assignment operators)

对于使用短路代码的语言的好处存在疑问,但我想知道对于程序员有什么好处?仅仅是它可以使代码更简洁一点吗?还是有性能原因?

我不是在问无论如何都需要评估两个实体的情况,例如:

if($user->auth() AND $model->valid()){
$model->save();
}

在我看来,原因很明确-由于两者都必须为真,因此如果用户无法保存数据,则可以跳过成本更高的模型验证。

这(对我来说)还有一个明显的目的:
if(is_string($userid) AND strlen($userid) > 10){
//do something
};

因为用非字符串值调用 strlen()是不明智的。

我想知道的是在不影响任何其他语句的情况下使用短路代码。例如,在Zend应用程序默认索引页面中:
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

可能是:
if(!defined('APPLICATION_PATH')){
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
}

甚至作为一个单独的语句:
if(!defined('APPLICATION_PATH'))
define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

那么为什么要使用短路代码?仅出于使用逻辑运算符代替控制结构的“凉爽”因素?要合并嵌套的if语句?因为更快?

最佳答案

对于程序员而言,较少冗长的语法相对于另一个较冗长的语法的好处可能是:

  • 键入较少,因此编码效率更高
  • 较少阅读,因此具有更好的可维护性。

  • 现在,我仅在谈论不太冗长的语法在任何方面都不是棘手或聪明的情况,只是采用相同的公认方法,但字符数较少。

    通常,当您希望使用一种语言查看特定的构造时,可能希望使用该语言,但是以前并不一定意识到这一点。我脑海中浮现出一些例子:

    Java中的
  • 匿名内部类,而不是将指针传递给函数(需要更多代码行)。
  • Ruby中的|| =运算符中的
  • ,可以对表达式求值,如果表达式的计算结果为false或为null,则将其分配给该表达式。当然,您可以通过3行代码来实现同一件事,但是为什么呢?
  • 和更多...
  • 关于coding-style - 为什么要使用短路码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1744632/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com