Ruby 如何检索数组中字母的字符串值?
我试图检索数组中字母的值。我拥有的阵列是:Ruby 如何检索数组中字母的字符串值?,ruby,ascii,Ruby,Ascii,我试图检索数组中字母的值。我拥有的阵列是: a = ["a","b","c","d","e","f","g","h"]. 如果要检索字母的值,代码为: ?a 然而,当我尝试时,一个[5]给了我0。有人知道为什么会这样吗 --很抱歉澄清,从Ruby 1.9开始,我实际上使用的是1.8.7:)?a将为您提供字符串“a”,其中它用于为该字符提供ASCII代码。这只是另一种(有限的)字符串文字机制 如果需要字符值,则需要使用ord方法,如a[5].ord或?a.ord中所述作战需求文件记录在 在Ru
a = ["a","b","c","d","e","f","g","h"].
如果要检索字母的值,代码为:
?a
然而,当我尝试时,一个[5]
给了我0
。有人知道为什么会这样吗
--很抱歉澄清,从Ruby 1.9开始,我实际上使用的是1.8.7:)<代码>?a将为您提供字符串“a”,其中它用于为该字符提供ASCII代码。这只是另一种(有限的)字符串文字机制 如果需要字符值,则需要使用
ord
方法,如a[5].ord
或?a.ord
中所述<代码>作战需求文件记录在
在Ruby 1.9中,?
运算符和String[]
方法在传递单个Fixnum时的行为同时发生了变化,两者都返回了一个字符串,而它们在返回Fixnum时使用的是一个字符串
顺便说一句,我在同一官方参考的Literals/String部分找不到
?
操作符的文档。实际上,从Ruby 1.9开始<代码>?a将为您提供字符串“a”,其中它用于为该字符提供ASCII代码。这只是另一种(有限的)字符串文字机制
如果需要字符值,则需要使用ord
方法,如a[5].ord
或?a.ord
中所述<代码>作战需求文件记录在
在Ruby 1.9中,?
运算符和String[]
方法在传递单个Fixnum时的行为同时发生了变化,两者都返回了一个字符串,而它们在返回Fixnum时使用的是一个字符串
顺便说一句,我在同一官方参考的Literals/String部分找不到
?
操作符的文档。在Ruby 1.8中,a=='a'[0]
。有关的信息(搜索:“整数和浮点数”)
因此,您可以通过以下方法获取数组a
中字母的值:
a[5][0]
而在Ruby>1.9中,使用方法
ord
:a[5]。在Ruby 1.8中,ord
?a=='a'[0]
。有关的信息(搜索:“整数和浮点数”)
因此,您可以通过以下方法获取数组a
中字母的值:
a[5][0]
而在Ruby>1.9中,使用方法
ord
:a[5]。ord
是因为关联性/优先级<代码>?将[5]解释为(?a)[5]
,而不是?(a[5])
。我想你期待的是后者,但实际上是前者。这是因为联想性/优先性<代码>?将[5]解释为(?a)[5]
,而不是?(a[5])
。我想你期望的是后者,但实际上是前者。你能链接文档吗,我从来没有见过这种方法。我知道String\ord
,但不知道?a
。。寻找同样的。。文件记录在哪里……)嗯,它不在,我认为它应该在哪一个地方。你能链接文档吗,我从来没有见过这种方法。我知道String\ord
,但不知道?a
。。寻找同样的。。文件记录在哪里……)嗯,它不在,我认为它应该在哪一个地方。?a=='a'[0]
在1.9和2.0中仍然是正确的,因为'a'[0]
在1.9和2.0中是“a”。0@PeterAlfvin:是的,你说得对。但这仅仅是因为这两个方法的返回值都以相同的方式进行了更改。?a=='a'[0]
在1.9和2.0中仍然是正确的,因为'a'[0]
在1.9和2.0中是“a”。0@PeterAlfvin:是的,你说得对。但这仅仅是因为两个方法的返回值都以相同的方式进行了更改。