ruby - 为什么 "?b"在 Ruby 中表示 'b'?

标签 ruby string

"foo"[0] = ?b # "boo"

我正在查看上面的示例并试图弄清楚:

  1. “?b”如何暗示字符“b”?
  2. 为什么有必要? - 我不能只写这个吗:

    "foo"[0] = 'b' # "boo"

最佳答案

Ed Swangren: ? returns the character code of a character.

在 Ruby 1.9 中没有。从 1.9 开始,?a 返回 'a'。看这里:Son of 10 things to be aware of in Ruby 1.9!

telemachus ~ $ ~/bin/ruby -v
ruby 1.9.1p0 (2009-01-30 revision 21907) [i686-linux]
telemachus ~ $ ~/bin/ruby -e 'char = ?a; puts char'
a
telemachus ~ $ /usr/bin/ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
telemachus ~ $ /usr/bin/ruby -e 'char = ?a; puts char'
97

编辑:非常changes in Ruby 1.9 的完整描述.

另一个编辑:请注意,如果您希望通过 ?a 在 1.8 中将字符串转换为数字,您现在可以使用 'a'.ord

关于ruby - 为什么 "?b"在 Ruby 中表示 'b'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/656610/

相关文章:

ruby - cucumber + capybara 文件上传对我不起作用

sql - 计算两个日期时间之间的时间 - ActiveRecord/SQL/Heroku

ruby - 如何在 Ruby 中写入 Windows 文件属性?

Python 在 Apache 日志文件中搜索 IP 数量

java - 使用扫描器返回字符串

ruby - 快速排序不适用于稍大的数组大小

ruby - 如何在 rspec 中测试 .sample 方法?

将多维复杂 numpy 数组打印到字符串的 Pythonic 方法

java - java中将json转换为字符串

java - JOptionPane 并从输入中获取文本