Betrachtet wird eine Funktion query_item
, die entweder ein zu bearbeitendes Objekt zurückgibt oder null
, wenn nichts mehr verarbeitet werden soll.DRY bei Zuweisung eines neuen Wertes für jede Schleife
let item = query_item();
while(item !== null){
process(item);
item = query_item();
}
Offensichtlich ist dies eine kleine Verletzung von DRY (Do wiederholt sie nicht), meist durch query_item()
als dedizierte Funktion abgeschwächt.
Ich bin mir bewusst, dass in diesem einfachen Fall die Klarheit viel wichtiger ist als die Vermeidung von Wiederholungen.
Gibt es dennoch eine Möglichkeit, eine Schleife wie diese zu schreiben, ohne die Zuweisung zu wiederholen?
Das einzige, was mir einfiel, war ein For-Loop-Ansatz, aber das hat die gleiche Wiederholung und ist - zumindest in meinen Augen - etwas schwieriger zu lesen.
for(let item = query_item();
item !== null;
item = query_item()
){
process(item);
};
[Diese Antwort] (http://stackoverflow.com/questions/151850/why-have-you-use-ein-assignment-in-a-condition/151870 # 151870) könnte Ihnen helfen. –