为什么这个 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
.
我写了一个 case 表达式像
case x
when "one" "I"
when "two" "II"
end
它不会导致语法错误,并且总是returns nil
而不管x
的值。我觉得应该是语法错误,但实际情况并非如此。为什么?
白色-space 分隔的字符串文字被连接起来(参见this post)。这会将您的 when
语句变成合法的潜在匹配项,无需执行任何操作,这就是为什么您总是得到 nil
.