首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Ruby中的chr()的对立面是什么?

Ruby中的chr()的对立面是什么?
EN

Stack Overflow用户
提问于 2008-11-21 13:27:54
回答 8查看 82.6K关注 0票数 102

在许多语言中,有一对函数chr()ord(),它们在数字和字符值之间进行转换。在某些语言中,ord()被称为asc()

Ruby有Integer#chr,它工作得很好:

代码语言:javascript
复制
>> 65.chr
A

当然可以。但是你怎么走另一条路呢?

代码语言:javascript
复制
"A".each_byte do |byte|
   puts byte
end

打印:

代码语言:javascript
复制
65

这和我想要的非常接近。但我确实希望避免循环--在声明const时,我想要的是足够短以便可读的内容。

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2013-12-11 01:50:39

如果String#ord在1.9中不存在,那么它在2.0中存在:

代码语言:javascript
复制
"A".ord #=> 65
票数 85
EN

Stack Overflow用户

发布于 2008-11-21 14:19:09

在Ruby 1.8系列及之前的版本中,以下代码都将生成65 (对于ASCII):

代码语言:javascript
复制
puts ?A
'A'[0]

在Ruby 1.9中,这一行为发生了变化,以上两种情况都将生成"A“。在Ruby 1.9中,正确的方法是:

代码语言:javascript
复制
'A'[0].ord

不幸的是,Ruby1.8中不存在ord方法。

票数 33
EN

Stack Overflow用户

发布于 2008-11-21 13:44:18

尝试:

代码语言:javascript
复制
'A'.unpack('c')
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/308749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档