Heim >Backend-Entwicklung >PHP-Tutorial >Erfahren Sie mehr über den Unterschied zwischen for-Schleife und foreach
Der Unterschied zwischen for-Schleife und foreach
foreach basiert auf IEnumerable.
Wenn var a in GetList() zum ersten Mal aufgerufen wird, wird GetEnumerator aufgerufen, um das erste Objekt zurückzugeben und es zuzuweisen zu a,
MoveNext wird jedes Mal aufgerufen, wenn var a in GetList() ausgeführt wird
Die GetList()-Methode wird nur einmal ausgeführt
foreach (var a in GetList()) { ... } = var a; IEnumerator e = GetList().GetEnumerator(); while (e.MoveNext) { a = e.Current; }
for-Schleife basiert auf der tiefgestellten Positionierung. List[3] entspricht *(list + 3).
for(int i = 0; i < GetCount(); i++) { .... } = int i = 0; while(i < GetCount()) { ... }
Die for-Schleife ruft GetCount() auf, um die Länge zu vergleichen Bei jeder Schleife berücksichtigt foreach die Länge nicht und ruft GetList nur einmal auf ().
Fazit.
Die for-Schleife ist effizienter als foreach, wenn die Länge festgelegt ist Die Länge muss nicht berechnet werden.
Es hat eine Leistung, wenn die Länge unsicher ist oder die Länge berechnet wird. Bei der Erschöpfung ist es bequemer, foreach zu verwenden.
Und die Objekte in Die Sammlung wird während foreach gesperrt. Sie können während des Zeitraums nicht geändert werden.
Das obige ist der detaillierte Inhalt vonErfahren Sie mehr über den Unterschied zwischen for-Schleife und foreach. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!