Ich habe eine vernachlässigbare Aufmerksamkeitsspanne, und da ich in La Vida Powershell zur Zeit eingetaucht bin, wird mein Code als solcheWie heißt dieses Konzept?
ich im Voraus entschuldigen formatiert werden, wenn diese an anderer Stelle diskutiert wurden, aber Da mein Problem ist, dass ich nicht weiß, wie das heißt, waren meine Bemühungen um das Googeln verständlicherweise fruchtlos.
drei Funktionen vorstellen:
function GrowGrapes(){...} #grows grapes.
function MakeWine(){...} #uses said grapes to make wine
function DrinkWine(){...} #drinks said wine
, wenn der erste fehlschlägt, dann wollen Sie nicht, und muss die zweite nicht versuchen. Wenn der 2. fehlschlägt oder nie ausgeführt wird, dann hat es keinen Sinn, jemals den 3. durchzuführen.
eher als ein großes widerwärtig Nest von IF-Anweisungen wie diese ...
IF ([bool]GrowGrapes()) {
IF ([bool]MakeWine()) {
DrinkWine()
}
}
in bestimmten Sprachen (I GLAUBEN ich das C in Bezug gelernt ...) können Sie folgendes tun:
IF ([bool]GrowGrapes() -AND [bool]MakeWine()) {DrinkWine()}
oder sogar
$rslt = ([bool]GrowGrapes() -AND [bool]MakeWine()) -AND [bool]DrinkWine()
und Vertrauen dass die 2. Hälfte Ihres Konditionals nur dann ausgeführt würde, wenn der erste als wahr/Erfolg/was auch immer zurück kam.
ebenfalls könnten Sie oder zwei Ausdrücke, und darauf vertrauen, dass die zweiten würde immer nur ausgeführt, und wenn die erste kamen zurück als falsch
[bool]MakeWine() -OR [bool]BuyWine() #only attempt to purchase wine if
#the attempt to make it has failed
Meine Frage ist zu prüfen: Was dieses Verhalten genannt wird? Unterstützt Powershell es auch?
Mind the-Funktion (oder Bug?): Im Gegensatz zu anderen Programmiersprachen '-AND' und' -OR' in Powershell hat die gleiche Priorität: https://connect.microsoft.com/PowerShell/ feedback/details/285170/and-have-have-higher-priority-als-oder-es-ist-in-anderen-Programmiersprachen –
Das war's! Hat mich total umgebracht, als ich versuchte, mich daran zu erinnern. Vielen Dank! – TheGreatTriscuit
Das Äquivalent für Bash (und wahrscheinlich andere Unix-Shells) ist der '&&' Operator: 'foo && bar' führt' foo' aus, und dann wird nur 'bar' ausgeführt, wenn 'foo' erfolgreich ist (exit status 0). Ebenso 'foo || bar' führt nur 'bar' aus, wenn' foo' fehlschlägt (Status nicht-0 verlassen). –