为什么这个case表达式不会导致语法错误?

时间:2015-12-24 22:27:48

标签: ruby syntax string-literals

我写了一个像

这样的案例表达式
case x
when "one" "I"
when "two" "II"
end

它不会导致语法错误,并且无论nil的值如何,始终都会返回x。我认为它应该导致语法错误,但事实并非如此。为什么呢?

1 个答案:

答案 0 :(得分:3)

以空格分隔的字符串文字连接起来(参见this post)。这会将您的when语句转换为合法的潜在匹配而无需执行任何操作,这就是您始终获得nil的原因。