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

Why does not this case expression cause a syntax error?

我写了一个 case 表达式像

case x
when "one" "I"
when "two" "II"
end

它不会导致语法错误,并且总是returns nil 而不管x 的值。我觉得应该是语法错误,但实际情况并非如此。为什么?

白色-space 分隔的字符串文字被连接起来(参见this post)。这会将您的 when 语句变成合法的潜在匹配项,无需执行任何操作,这就是为什么您总是得到 nil.