The*_*uit 2 powershell programming-languages coding-style
我的注意力可以忽略不计,而且由于我现在沉浸在La Vida Powershell中,我的代码将被格式化为
如果在其他地方已经讨论过,我会事先道歉,但由于我的问题是我不知道这是什么,我的谷歌搜索努力已经毫无结果.
想象三个功能:
function GrowGrapes(){...} #grows grapes.
function MakeWine(){...} #uses said grapes to make wine
function DrinkWine(){...} #drinks said wine
Run Code Online (Sandbox Code Playgroud)
如果第一次失败,那么你不想,也绝不能尝试第二次.如果第二次失败,或者从未跑过,那么就没有必要尝试执行第三次.
而不是像这样的一个令人讨厌的IF语句嵌套......
IF ([bool]GrowGrapes()) {
IF ([bool]MakeWine()) {
DrinkWine()
}
}
Run Code Online (Sandbox Code Playgroud)
在某些语言中(我相信我在参考C ...时学到了这一点)你可以做到以下几点:
IF ([bool]GrowGrapes() -AND [bool]MakeWine()) {DrinkWine()}
Run Code Online (Sandbox Code Playgroud)
甚至
$rslt = ([bool]GrowGrapes() -AND [bool]MakeWine()) -AND [bool]DrinkWine()
Run Code Online (Sandbox Code Playgroud)
并且相信如果第一次回归真实/成功/无论如何,你的条件的下半部分将只会执行.
同样你可以使用两个表达式,并且相信第二个只会在第一个回复为假时执行和测试
[bool]MakeWine() -OR [bool]BuyWine() #only attempt to purchase wine if
#the attempt to make it has failed
Run Code Online (Sandbox Code Playgroud)
我的问题是:这个行为叫什么?另外,powershell支持吗?
Gab*_*art 12
它被称为短路评估,Powershell确实支持它.请参阅此处-and和-or 此处的部分.
编辑原始链接似乎被破坏(截至2014-11-05); 一个合适的替代方案是about_Logical_Operators.
| 归档时间: |
|
| 查看次数: |
630 次 |
| 最近记录: |