【问题标题】:Why does not this case expression cause a syntax error?为什么这个 case 表达式不会导致语法错误?
【发布时间】:2015-12-24 22:27:47
【问题描述】:

我写了一个类似的case表达式

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

它不会导致语法错误,并且无论x 的值如何,总是返回nil。我认为这应该会导致语法错误,但实际情况并非如此。为什么?

【问题讨论】:

  • 顺便说一句,在此示例中,哈希可能比 case 块更快...
  • 试试x"oneI" :)

标签: ruby syntax string-literals


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2013-12-04
    • 2012-05-14
    • 2019-08-01
    • 2022-11-14
    • 2010-12-09
    • 2015-05-15
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多