Ruby/Struktury sterujące: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje) Nie podano opisu zmian |
Szymon wro (dyskusja | edycje) Nie podano opisu zmian |
||
Linia 7:
Instrukcji <tt>case</tt> używamy do sprawdzenia sekwencji warunków. Na pierwszy rzut oka jest ona podobna do instrukcji <tt>switch</tt> z języka C lub Java ale, jak za chwilę zobaczymy, znacznie potężniejsza.
<source lang="ruby">
def okresl(i)
end
okresl(8) #=> 6..10
</source>
<tt>2..5</tt> jest wyrażeniem oznaczającym przedział zamknięty od 2 do 5. Następujące wyrażenie sprawdza czy wartość <tt>i</tt> należy do tego przedziału:
<source lang="ruby">
(2..5) === i
</
<tt>case</tt> wewnętrznie używa operatora relacji <tt>===</tt> by sprawdzić kilkanaście warunków za jednym razem. W odniesieniu do obiektowej natury Rubiego, <tt>===</tt> jest interpretowany odpowiednio dla obiektu który pojawia się jako warunek w instrukcji <tt>when</tt>. Na przykład, następujący kod sprawdza równość łańcuchów znakowych w pierwszym wyrażeniu <tt>when</tt> oraz zgodność wyrażeń regularnych w drugim <tt>when</tt>.
|