Actions
Feature #12047
closedSet#=== (aliased to include?)
Status:
Closed
Assignee:
-
Target version:
-
Description
Add Set#===
as an alias for Set#include?
so that sets may be used in case
statements:
require 'set'
GOOD_COMMANDS = Set[ :foo, :bar, :jim ]
BAD_COMMANDS = Set[ :baz, :bax, :jam ]
ODD_COMMANDS = Set[ :quux, :xyzzy ]
case my_command
when GOOD_COMMANDS then puts "Yay!"
when BAD_COMMANDS then puts "Boo!"
when ODD_COMMANDS then puts "Whaa?"
end
Updated by Phrogz (Gavin Kistner) over 9 years ago
- Subject changed from Set#=== to Set#=== (aliased to include?)
Updated by sawa (Tsuyoshi Sawada) over 9 years ago
I think that is ad hoc. Splat could be used, just like with arrays.
case my_command
when *GOOD_COMMANDS then puts "Yay!"
when *BAD_COMMANDS then puts "Boo!"
when *ODD_COMMANDS then puts "Whaa?"
end
And one-time splatting would be also more efficient than calling include?
each time.
Updated by jonathanhefner (Jonathan Hefner) over 5 years ago
This was added in Ruby 2.5, so I think this issue can be closed.
Updated by jeremyevans0 (Jeremy Evans) over 5 years ago
- Status changed from Open to Closed
Actions
Like0
Like0Like0Like0Like0