Ruby/Iteratory: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje) Nie podano opisu zmian |
Szymon wro (dyskusja | edycje) |
||
Linia 94:
</pre>
Zamienienie ''retry'' na ''redo'' w powyższym przykładzie spowoduje, że tylko bieżąca iteracja będzie wykonana ponownie, z następującym wynikiem:
012
234
''yield'' jest wyrażeniem, które pojawia się czasem w definicji iteratora. ''yield'' przenosi sterowanie do bloku kodu który został przekazany do iteratora (wyjaśnimy to dogłębniej w [[Ruby/Procedury jako obiekty|rozdziale]] poświęconym obiektom - procedurom). Następujący przykład definiuje iterator ''repeat'', który powtarza blok kodu określoną ilość razy przekazaną jako argument.
<pre>
Linia 116:
</pre>
Używając ''retry'' można zdefiniować iterator który będzie działał mniej więcej jak standardowa pętla ''while''.
<pre>
Linia 129:
</pre>
Czy już rozumiesz czym jest iterator? Są pewne ograniczenia, ale możesz pisać własne oryginalne iteratory; i rzeczywiście, kiedy tylko definiujesz nowy typ danych, wygodnie jest zdefiniować odpowiednie iteratory które będą na nim operować. W tym sensie, powyższe przykłady nie są szczególnie użyteczne. O bardziej praktycznych iteratorach będziemy mogli powiedzieć, kiedy już lepiej zrozumiemy czym są klasy.
<noinclude>
{{ProstaNawigacja|spis=Ruby|poprzart=Ruby/Struktury sterujące|poprz=Struktury sterujące|nastart=Ruby/Myślenie zorientowane obiektowo|nast=Myślenie zorientowane obiektowo}}
|