内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
在许多语言中有一对函数,chr()
并且ord()
在数字和字符值之间进行转换。在某些语言中,ord()
被称为asc()
。
Ruby有Integer#chr
,这很好用:
>> 65.chr
A
"A".each_byte do |byte|
puts byte
end
输出:
65
这与我想要的非常接近。但我真的宁愿避免循环 - 我正在寻找足够短的内容,以便在声明时可读const
。
在Ruby直到并包括1.8系列中,以下都将产生65(对于ASCII):
puts ?A
'A'[0]
Ruby 1.9中的行为已经发生了变化,上述两者都会产生“A”。在Ruby 1.9中这样做的正确方法是:
'A'[0].ord
不幸的是,这个ord
方法在Ruby 1.8中不存在。