Re: Sowas wie switch() (PHP) gesucht
Michael Neumann <[email protected]> Sun, 01 Aug 2004 20:39:03 +0200
| Newsgroups | gmane.comp.lang.ruby.german |
|---|---|
| Message-ID | <[email protected]> |
Philipp Kern wrote:
> On So, 2004-08-01 at 19:48, Dirk Einecke wrote:
>
>>Gibt es in Ruby sowas wie switch() in PHP in Ruby? Klar ich könnte es so
>>machen:
>
>
> case foo
> when 1 then puts 1
> end
>
Is sogar noch besser als in C, da du nicht aufpassen musst, das "break"
zu vergessen:
case foo
when 1
...
when 2
...
when 3,5,7 # auch mehrfach vergleiche möglich
...
when 8..10 # ranges gehen auch
...
else
# 'default:' zweig
end
natürlich geht das für jedes beliebige objekt, nicht nur zahlen. hierbei
wird per === verglichen (nicht ==), deshalb funktioniert das auch mit
den ranges, da z.B. (8..10) === 5 wahr ergibt. also das beispiel oben
ist äquivalent zu:
if 1 === foo then
...
elsif 2 === foo then
...
elsif 3 === foo or 5 === foo or 7 === foo
...
elsif (8..10) === foo
...
else
...
end
Grüsse,
Michael