23. maj 2005 - 18:49Der er
2 kommentarer og 1 løsning
Enumerator vs Iterator
De fleste er nok bekendt med at .Net undersøtter den dejlige foreach-syntaks, som under kølerhjelmen benytter sig af en Enumerator.
Men nu har jeg studset lidt over, hvorfor at MS har valgt at kalde det et enumerator når at det i Java hedder en iterator.
Ved at enumerere må vel forstås at man kører igennem i numerisk rækkefølge, 1-2-3-4-5, mens at man, når man iterere, ikke går efter nogen logisk indexering.
Man itererer f.eks. over de forskellige keys i en HashTable.
Men nu er det bare sådan, at et IEnumerator-object, ikke behøves at gå slavisk efter nummeringsindekseringen. Man kan f.eks. hoppe fra index 1 til 6 og tilbage til 4 (selvom det nok vil give en ret træls foreach-løkke.
Så mit spørgsmål er egentlig. Hvorfor har MS konsekvent valgt at bruge ordet Enumerator og Enumerable, når det i Java hedder Iterator.
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
Faktisk startede Java med at have Enumeration fra Java 1.0.
I Java 1.2 opfandt man så Iterator.
Citat fra docs:
NOTE: The functionality of this interface is duplicated by the Iterator interface. In addition, Iterator adds an optional remove operation, and has shorter method names. New implementations should consider using Iterator in preference to Enumeration.
GOF pattern hedder Iterator.
C++ kalder det også iterator.
Bedste bud jeg kan komme på er at: MS Java kom kun i version 1.0 og 1.1 Anders Hejlsberg arbejdede på MS Java måske huskede han enumerator !?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.