Ist es etwas "durchlaufen" oder "durchlaufen"? [geschlossen]

73

Ich habe nur darüber nachgedacht. Gibt es eine semantische Unterscheidung oder können wir frei wählen?

EDIT Ich akzeptierte @roygbivs Antwort , weil die meisten Antworten vorgeschlagen , dass es eine Frage des Geschmacks ist , die man zu wählen, und dass es nicht wirklich die Bedeutung ändert. In diesem Fall können sie weggelassen werden, da das Durch und das Über überhaupt keine Informationen enthalten (in diesem speziellen Kontext).

Björn Pollex
quelle
5
Ich würde sagen "durchlaufen", aber Englisch ist nicht meine Muttersprache.
Zneak
9
Es ist weder throughnoch over. Beide sind nutzlose Adverbien. Du würdest einfach sagen iterate. I am writing code to iterate the collection. Ansonsten ist es so, als würde man die Bedeutung von iterieren zweimal angeben.

Antworten:

75

"durch" und "über" sind nutzlose Adverbien.

Beispiele:

  • Während der Iteration dieser Sammlung gibt mein Code einen Fehler aus.

  • Dieser Code wiederholt die Sammlung.

  • Ihre Aufgabe ist es, Code zu schreiben, der die Sammlung iteriert.

Es ist, als würde man "im Norden" oder "im Süden" sagen. "hoch" und "runter" sind nutzlos. Stattdessen solltest du sagen: "Ich gehe für den Sommer nach Norden." oder "Im Süden bauen sie Baumwolle an."

Benutzer113476
quelle
9
Ich habe das Gefühl, dass sie mehr Präpositionen als Adverbien sind, aber die Definitionen für beide scheinen flexibel zu sein und es hängt davon ab, wie Sie den Satz analysieren. Ist es ein Phrasenverb, das Sie vereinfachen? Iterieren über => iterieren? Oder iterieren Sie als intransitives Verb mit einer Präposition, die sich dann zu einem transitiven Verb vereinfacht?
Mark Canlas
7
Wie Mark bemerkt hat, sind "durch" und "über" Präpositionen. Wie würden Sie es dann sagen? Iterieren Sie einfach den Container? Das klingt für mich überhaupt nicht richtig.
Michael Aaron Safyan
1
@Michael, es klingt möglicherweise nicht richtig, weil wir (gemeinsam) iterate in Verbindung mit through oder over verwenden . Roy gibt ein gutes Beispiel für das Auf und Ab mit der Richtung. Ich habe die Liste / Steuerelemente wiederholt und nach einer Weile fühlte es sich natürlicher und weniger überladen mit nutzlosen Wörtern an.
IAbstract
1
Etwas zu wiederholen bedeutet für mich, es zu wiederholen . es klingt nicht richtig als Synonym für das Schleifen darüber. Auf der anderen Seite werden in diesem Sinne häufig Iterationen über oder durch verwendet.
ondra.cifka
51

Nicht richtig oder falsch, nur einige Statistiken:

= term =           = Google =   = Github =
"iterate over"      1,440,000   10,569,846 search results
"iterate through"     908,000    5,605,973
"iterate thru"         44,200      141,982
——————————————————————————————————————————
"iterate on"          402,000      187,576
"iterate in"           63,300      117,962
"iterate across"       10,900      208,342
"iterate within"        8,470       14,577
"iterate along"         8,060        6,396
"iterate among"         5,970        2,960
"iterate against"       2,580        3,255
"iterate inside"        2,450       35,060
"iterate amongst"         406       22,274
"iterate amidst"           66            0

Google-Statistiken aktualisiert am 25.04.2008. Nachfolgende Suchen zeigen, dass die Ergebnisse instabil sind.
Github-Statistiken aktualisiert am 25.04.2008. Es werden nur Codevorkommen gezählt.

kennytm
quelle
Interessante Antwort, ich wusste nicht, dass Google diesen so schönen Bericht liefert, wie man auf Google so sucht?
Lucas Pires
1
@ LucasPires Dies ist manuell zusammengebaut 🙃
kennytm
18

Ich denke, es hängt vom Objekt der Präposition ab; Sie iterieren über den Iterator, über die Sammlung, über den Container, über die Liste, über den Bereich usw., aber Sie iterieren durch (den Inhalt) der Liste, durch (die Elemente) des Containers, durch die (Elemente von) ) die Reichweite, durch (die Elemente) der Sammlung usw. In fast allen Fällen sind sie austauschbar; Der einzige Ort, an dem ich "über", aber nicht "durch" verwenden würde, ist in Bezug auf den Iterator selbst; aber für jedes iterierbare Objekt würde ich entweder "über" oder "durch" verwenden.

Michael Aaron Safyan
quelle
1
Diese Unterscheidung klingt am besten. Übrigens klingt "Over" oberflächlicher, als wären Sie ein externer Verbraucher. Aber '' durch '' klingt persönlicher, intimer. Vielleicht sind Sie der Implementierer und schreiben den Enumerator.
Mark Canlas
1
Ich habe keine Probleme (als englischer Muttersprachler), eine Liste, einen Bereich oder eine Sammlung zu durchlaufen. Tatsächlich klingt "Durchlaufen" für mein Ohr immer falsch. @Mark, Iteration ist per Definition extern. Also vorbei ist immer am besten.
jmucchiello
@jmucchiello, ich glaube wir haben ein Missverständnis; Beachten Sie, dass ich "über den Bereich iterieren" und "durch (die Elemente) des Bereichs" geschrieben habe. Ich bin damit einverstanden, dass Over natürlicher klingt, aber ich denke, dass "Through" in den meisten Fällen in Ordnung klingt, mit Ausnahme des Iterators selbst. In diesem Fall klingt "Through" viel unangenehmer als "Over".
Michael Aaron Safyan
Ich denke, Mark hat es richtig gesagt. Over ist draußen und Through klingt drinnen. Mein Problem ist, dass ich nicht denke, dass der Iterator jemals drinnen ist und daher niemals richtig durchdacht, selbst in Ihrem Fall, Michael. Wenn ich eine Liste von Autos habe, werde ich die Liste der Autos durchlaufen. Ich würde nicht sagen "Ich iteriere durch die Autos des Containers." oder durch die Wagenelemente des Containers. oder durch die Reichweite von Autos im Container. Nichts davon klingt gut.
jmucchiello
16

Ich würde sagen, iterieren Sie über, und so habe ich es immer geschrieben gesehen.

Cocowalla
quelle
6
In Google liefert "Durchlaufen der Sammlung" jedoch deutlich mehr Ergebnisse als "Über" und ohne Präposition ...
Timwi
7

Beides bedeutet im Wesentlichen dasselbe!

Sie können also frei wählen, was zu Ihnen passt.

Mahesh Velaga
quelle
3

Ich würde immer "iterieren über " sagen, weil es die (relativ wichtige) Tatsache betont, dass die Iteratoren selbst nicht in dem Container enthalten sind, der Gegenstand der Iteration ist.

"Durchlaufen" zu sagen, würde für mich bedeuten, dass man jedes Element des Containers der Reihe nach betrachtet, was nicht wirklich der Fall ist.

Im Gegensatz dazu sagen „Iterierte über“ bedeutet für mich , dass man einen äußeren Griff zu jedem Element des Behälters wiederum empfängt, das ist wirklich , was geschieht.

Es ist jedoch nichts Falsches an "Durchlaufen", und jeder, der Iteratoren versteht, würde sicherlich beide Sätze verstehen.

Tyler McHenry
quelle
1

Technisch gesehen ist es wahrscheinlich nur eine "iterierte" Periode. Aber es ist offensichtlich, was Sie in beiden Fällen meinen.

Josh
quelle
1

Ich benutze "Loop Over". Einfach.

AMissico
quelle
1

Der Zusammenfassungstext für System.Collections.Generic.IEnumerator GetEnumerator () lautet:

Gibt einen Enumerator zurück, der die Auflistung durchläuft .

Persönlich sage ich durch ... aber ich denke wirklich nicht, dass es wichtig ist, welches Sie verwenden.

Erdnuss
quelle
0

Das wichtige Wort ist iterieren, welcher Füllstoff Sie damit platzieren, spielt wirklich keine Rolle.

Bernstein
quelle
0

Ich stelle mir vor, wie ich etwas "durchlaufe", wie ich einen Aktenschrank mache. Vielleicht ist es aufgrund meines mentalen Images nur eine persönliche Präferenz - ich denke, "Iterieren über" ist die häufigere Verwendung.

SqlRyan
quelle
0

Ich benutze beide zufällig, manchmal im selben Satz. Das Löschen des Verbindungsworts ist eine schlechte Grammatik und keines von beiden ist sinnvoll.

Joshua
quelle
0

Ich denke, sie sind für die meisten praktischen Zwecke austauschbar, aber in meinen Kommentaren tendiere ich persönlich dazu, sie mit einem kleinen Unterschied zu verwenden: Ich interpretiere, um etwas zu "iterieren", ähnlich dem Gefühl, dass Sie sagen würden: "Ich werde darüber nachdenken." ". Das heißt, es ist keine gründliche Inspektion: Sie stöbern darin und suchen nach etwas. Umgekehrt bedeutet "Durchlaufen", jeden einzelnen gezielt durchzugehen.

Wenn ich also nur nach einem Element in einer Liste suchen würde, würde ich sagen, dass ich die Liste "durchlaufen" würde ..... wenn ich eine Transformation auf jedes Element anwenden würde, würde es "durchlaufen".

MisterMister
quelle
0

Das Wörterbuch sagt, dass "iterieren" ein transitives Verb ist, das bedeutet "sagen oder wieder tun; wiederholen".

Würden Sie etwas, das Sie gerade gesagt haben, "wiederholen" oder "wiederholen"? Ich denke, du würdest es einfach wiederholen. Oder wiederholen Sie es einfach, wie Sie es bevorzugen.

Wenn Sie jedoch "iterieren" als eine Art Synonym für "Schleife" verwenden ... Daten möglicherweise eine Iteration nach der anderen durchlaufen, dann sind Sie vielleicht "iterieren". Dies ist ein Minenfeld!

Sunneversets
quelle
0

Beides ist eine rhetoische Tautologie . Sie sollten die überflüssige Präposition entfernen. Wie in

"Diese Schleife wiederholt die Top 10 Produkte"

oder vielleicht

"Ich wiederhole die Antworten und suche die, die ich akzeptieren kann."

serg10
quelle
+1 für die einfache Angabe, dass es sich um eine Tautologie handelt, die ich hinzufügen wollte. eher als so lange "es ist ein nutzloses Adverb": D
0

Das LOOP-Makro von Common Lisp verwendet for element in list, aber for element across array(es ist anders, damit der Compiler effizienteren Code generieren kann ... ja, es ist komisch), was darauf hindeutet, dass die Präposition nicht wirklich so wichtig ist.

Ken
quelle
0

Es gibt einen besseren Weg.

J's members are dissimilar, but all can be incremented.
Having incremented every member of 'J' ...
J contains incrementable elements.
J refers to several items.
J refrances several items.
Everything in J is incrementable.
Everything J refers to should necessarily be thought of as being storable in a set.
Sequentially referring to J's contents ...
Apply between each element of J and R until all possible compatible pairs have been found.
Ask J using it's 'ask' function to sequentially apply addition between it's contents and return the result.

Es ist wie das Wort "hat", das so oft eine ganze Empfindung auf ein einziges Wort reduzieren kann.

Warum nicht für die Iteration iterieren, wie folgt -> Kreis, Dreieck, Achteck, Fünfeck, Sechseck.

alan2here
quelle