Wenn viele Low-Level-Boilerplates auftreten, sollten Sie den Grad der Zusammenfassung erhöhen .
Die besten Lösungen sind:
Eine der logischen Regeln lautet:
(nicht A und nicht B) == nicht (A oder B)
Der erste Weg. Variablen:
isStuff = foo is bar.data.stuff
isntOtherStuff = foo isnt bar.data.otherstuff
isStuffNotOtherStuff = isStuff and isntOtherStuff
bothFalse = not (foo or bar)
if isStuffNotOtherStuff or bothFalse
awesome sauce
else lame sauce
Der Hauptnachteil dieser Methode ist ihre Langsamkeit. Wir werden eine bessere Leistung erzielen, wenn wir Features verwenden and
und or
Operatoren verwenden und Variablen durch Funktionen ersetzen:
Wenn A
falsch ist, würde der Operator and
nicht aufrufen
Wenn A
dies der or
Fall ist, würde der Operator nicht anrufen
Der zweite Weg. Funktionen:
isStuff = -> foo is bar.data.stuff
isntOtherStuff = -> foo isnt bar.data.otherstuff
isStuffNotOtherStuff = -> do isStuff and do isntOtherStuff
bothFalse = -> not (foo or bar)
if do isStuffNotOtherStuff or do bothFalse
awesome sauce
else lame sauce
not bar
es eine Möglichkeit in der ersten Klausel gibt (wie die zweite Klausel vorschlägt), dann wird die Referenzbar.data
einen Fehler verursachen ...