我想一个然后子句中从访问case语句表达即有什么办法从ruby case语句中访问表达式吗?
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.我知道这个具体的例子并不重要,它只是一个例子场景。
嗯,我在想,这是事实上,这种“方式”的耻辱最终被分配到了全球:S非常欣赏这种煽动! – 2010-01-27 13:47:51
'x'在这里可以是任何范围的变量。如果将其分配给全局,它只会分配给全局。这一切都在ruby中,case状态返回一个值。您只需简单地将该值捕获到您选择的变量中。 – 2010-02-10 17:16:54
这似乎只适用于如果您使用匹配,那么$ 1是匹配的结果。如果你没有使用匹配,那么韦恩康拉德的答案更好,更清晰。 – Josh 2012-04-20 03:13:48