control_flow/case_array_destructure.rb
tests/_examples/control_flow/case_array_destructure.rb in the metorex repository.
# Array destructuring in case/when statements
# Simple array destructuring
arr = [1, 2, 3]
case arr
when [a, b, c]
puts "a=#{a}, b=#{b}, c=#{c}"
end
# Array with rest pattern
numbers = [1, 2, 3, 4, 5]
case numbers
when [first, ...rest]
puts "First: #{first}"
puts "Rest: #{rest}"
end
# Rest in the middle
case numbers
when [first, ...middle, last]
puts "First: #{first}, Last: #{last}"
puts "Middle: #{middle}"
end
# Nested array patterns
data = [[1, 2], [3, 4]]
case data
when [[a, b], [c, d]]
sum = a + b + c + d
puts "Sum: #{sum}"
end
# Wildcard in array patterns
data2 = [1, 2, 3, 4]
case data2
when [1, _, _, last]
puts "First is 1, last is #{last}"
end
Output:
a=1, b=2, c=3
First: 1
Rest: [2, 3, 4, 5]
First: 1, Last: 5
Middle: [2, 3, 4]
Sum: 10
First is 1, last is 4