gpt4 book ai didi

ruby - 为什么 ruby​​ 1.9.2 中的 ?a 命令不返回 ASCII 码

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:55 26 4
gpt4 key购买 nike

当您在 ruby​​ 1.8.7 中执行 ?a 时,您通常会获取 'a' 的 ASCII 字符

在 ruby​​ 1.9.2 中,此代码返回

> ?a
> "a"

这个有什么意义,1.9.2中的输出是什么意思

最佳答案

在 Ruby 1.8 中,"foo"[0] 返回索引 0 处的字符代码,而不是索引 0 处的字符串。作为支持具有各种编码的国际字符串的一部分(而不是作为字节数组),Ruby 1.9 更改了此行为以返回指定索引处的单字符字符串。

随着此更改,?a 也更改为评估为单字符字符串。大概是这样的,所以库中有这样的代码......

if my_string[0] == ?a

...将继续工作。如果您想要字符串第一个字符的字符代码值,请使用 String#ord :

puts "It's a boy!" if my_string[0].ord == 89

有关更多答案,请参阅 this stackoverflow question .

关于ruby - 为什么 ruby​​ 1.9.2 中的 ?a 命令不返回 ASCII 码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4363067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com