programming-languages - 这个概念的名称是什么?

标签 programming-languages powershell coding-style

我的注意力几乎可以忽略不计,而且由于我目前正沉浸在 La Vida Powershell 中,所以我的代码将被格式化为这样

如果在其他地方讨论过这个问题,我提前道歉,但由于我的问题是我不知道这叫什么,我的谷歌搜索努力毫无结果,这是可以理解的。

设想三个函数:

function GrowGrapes(){...} #grows grapes.
function MakeWine(){...} #uses said grapes to make wine
function DrinkWine(){...} #drinks said wine

如果第一次失败,那么您不想,也绝不能尝试第二次。如果第二个失败,或者从未运行过,那么尝试执行第三个就没有意义了。

而不是像这样一大堆讨厌的 IF 语句......

IF ([bool]GrowGrapes()) {
   IF ([bool]MakeWine()) {
      DrinkWine()
   }
}

在某些语言中(我相信我在引用 C 时学到了这一点...)您可以执行以下操作:

IF ([bool]GrowGrapes() -AND [bool]MakeWine()) {DrinkWine()}

甚至

$rslt = ([bool]GrowGrapes() -AND [bool]MakeWine()) -AND [bool]DrinkWine()

并且相信你的条件语句的第二部分只有在第一个返回为真/成功/无论什么的情况下才会执行。

同样,您可以对两个表达式进行 OR,并相信只有当第一个表达式返回为 false 时,第二个表达式才会被执行和测试

[bool]MakeWine() -OR [bool]BuyWine()      #only attempt to purchase wine if 
                                          #the attempt to make it has failed

我的问题是:这种行为叫什么?还有,powershell支持吗?

最佳答案

它被称为短路评估,Powershell 确实支持它。请参阅有关 -and-or 的部分 here .

编辑 原始链接似乎已损坏(截至 2014-11-05);一个合适的选择是 about_Logical_Operators .

关于programming-languages - 这个概念的名称是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4382499/

相关文章:

java - 函数有点像静态方法吗?

PowerShell - 如何使在模块内的函数中声明的变量可供调用脚本使用

powershell - 在 Powershell 中比较和比较文件

powershell - "date"是什么? "Get-Command date"抛出 CommandNotFoundException

实现分词器的 Pythonic 方式

lua - Terra lang 和 Lua

android vs iOS 哪个选择

coding-style - 在新工作中继承应用程序

java - 如果类只有构造函数,我应该在类中声明变量吗?

c++ - 有一个 n 个数字的数组。一个数字重复 n/2 次,其他 n/2 个数字不同