Ruby/Iteratory: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje) |
Szymon wro (dyskusja | edycje) mNie podano opisu zmian |
||
Linia 1:
== Iteratory ==
Iteratory nie są oryginalnym pojęciem Rubiego. Są one w powszechnym użyciu w językach programowania zorientowanych obiektowo. Występują również w Lispie, choć nie są tam nazywane iteratorami. Jednakże koncepcja iteratorów jest wielu osobom obca, więc
Czasownik "iterować" oznacza wykonywać tę samą czynność wiele razy, tak więc iterator jest czymś co wykonuje tę samą
Podczas pisania kodu potrzebujemy pętli w wielu różnych sytuacjach. W C, kodujemy je używając
<pre>
Linia 14:
</pre>
Składnia pętla
<pre>
Linia 26:
Wszystkie pliki źródłowe i nagłówkowe języka C w bieżącym katalogu są przetwarzane i powłoka systemowa bierze na siebie detale dotyczące wskazywania i podstawiania po kolei wszystkich nazw plików, jedna po drugiej. To chyba działa na wyższym poziomie niż C, nie sądzisz?
Trzeba zauważyć jeszcze jedno: często język dostarcza iteratorów dla typów wbudowanych, ale rozczarowuje gdy okazuje się, że musimy wracać z powrotem do pętli nisko poziomowych by iterować nasze własne typy danych. W programowaniu zorientowanym obiektowo (OOP - ang. ''Object-Oriented Programming''), użytkownicy zazwyczaj definiują własne typy danych jeden za drugim, więc to może być całkiem poważnym problemem.
Tak więc każdy język wspierający OOP zawiera jakieś udogodnienia do iterowania. Niektóre języki dostarczają w tym celu specjalnych klas; Ruby pozwala na definiowanie iteratorów bezpośrednio.
Typ
<pre>
Linia 38:
</pre>
<pre>
Linia 50:
</pre>
... jednakże, iterator
Innym iteratorem klasy
<pre>
Linia 64:
Zadania które pochłonęły by większość wysiłku w C (wyszukiwanie ograniczników linii, generowanie podłańcuchów, itd.) z użyciem iteratorów mogą być łatwo rozwiązane.
Instrukcja
<pre>
Linia 76:
</pre>
Możemy używać struktury sterującej
<pre>
Linia 94:
</pre>
Zamienienie
012
234
<pre>
Linia 116:
</pre>
Używając
<pre>
|