在Ruby中,为什么?z返回字符串“z”?

时间:2015-09-16 19:56:27

标签: ruby

我正在查看ActiveModel :: Validations源代码并找到一条注释,其中包含以下代码片段:

    validates_each :first_name, :last_name do |record, attr, value|
      record.errors.add attr, 'starts with z.' if value.to_s[0] == ?z
    end

我理解片段的演示内容,但引起我注意的是

    ?z

正在比较字符串的第一个字符。所以我旋转了irb,当然,?z计算为一个字符串,其中“z”为值(而?[返回“[”,??返回“?”,并且?后跟多个字符抛出一个异常)。

我已经公平分享了谷歌搜索,但却无法弄清楚这里发生了什么。

有什么想法吗?

0 个答案:

没有答案