Я хотел бы получить доступ к выражению операторов выбора из затем пункт т.е.
food = "cheese"
case food
when "dip" then "carrot sticks"
when "cheese" then "#{expr} crackers"
else
"mayo"
end
где в этом случае expr был бы текущим значением еды. В этом случае я знаю, я мог просто получить доступ к переменной еде, однако могут быть случаи, где значение больше не доступно (array.shift и т.д.). Кроме выгоняния с квартиры expr в локальную переменную и затем доступ к нему, там способ прямого доступа к значению случаев expr?
Roja
p.s. Я знаю, что этот определенный пример тривиален его мучнистое сценарий в качестве примера.
Как насчет:
food = "cheese"
x = case food
when "dip" then "carrot sticks"
when /(cheese|cream)/ then "#{ $1 } crackers"
else
"mayo"
end
puts x # => cheese crackers
#!/usr/bin/ruby1.8
a = [1, 2, 3]
case value = a.shift
when 1
puts "one (#{value})"
when 2
puts "two (#{value})"
end
# => one (1)
Это грязно, но кажется, что это работает ...
food = "cheese"
case food
when ( choice = "dip" ): "carrot sticks"
when (choice = "cheese" ): "#{ choice } crackers"
else
"mayo"
end