我正在尝试检索数组中字母的值。我的数组是:
a = ["a","b","c","d","e","f","g","h"].
如果我想检索一个字母的值,代码是:
?a
但是,当我尝试 ?a[5]
时,它给了我 0
。有谁知道为什么会这样?
--抱歉澄清我使用的是 1.8.7 :)
最佳答案
实际上,从 Ruby 1.9 开始。 ?a
将为您提供字符串“a”,它曾经为您提供该字符的 ASCII 代码。此时它只是另一种(有限的)字符串文字机制。
如果你想要一个字符值,你需要使用 ord
方法,如 a[5].ord
或 ?a.ord
。 ord
记录在 http://ruby-doc.org/core-2.0.0/String.html#method-i-ord
?
运算符和字符串 []
方法在传递单个 Fixnum 时的行为在 Ruby 1.9 中同时发生了变化,两者都返回一个字符用于返回 Fixnum 的字符串。
顺便说一句,我在同一官方引用文献的 Literals/String 部分找不到 ?
运算符的文档。
关于ruby - 如何检索数组中字母的字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19070763/