Ruby entfernen Sie die implizite break in Case-Anweisung? (Wie man den Fall, wie Switch)

x='bob'
case x
when "bob"
puts 'it stops here'
when 'bob'
puts 'but i want it to stop here'
end

Ist es eh nach Fall Anweisungen Verhalten sich wie die Vanille-Schalter? So dass Sie nacheinander alle "wenn ' s" vor dem ausbrechen? Ich bin überrascht, dass ruby hat es Verhalten sich fast identisch wie ein elsif.

  • Wäre das nicht identisch zu stapeln (nicht-Verschachtelung), wenn Blöcke?
  • Vielleicht eine weniger gekünstelte Beispiel würde helfen. Verwenden Sie das richtige Werkzeug für den job, und ich vermute, dass ein case ist es nicht.
  • ich wollte beweisen, dass der Schalter hätte beiden puts ausgeführt. Wo, wie case bricht aus, nachdem die erste Bedingung erfüllt ist "es endet hier". Stapeln, wenn Blöcke ist eine alternative, aber nicht schön für mehr als one-Liner.
Schreibe einen Kommentar