"foo"[0] = ?b # "boo"
Run Code Online (Sandbox Code Playgroud)
我正在看上面的例子并试图找出:
为什么有必要? - 我不能写这个:
"foo"[0] ='b'#"boo"
Tel*_*hus 10
Ed Swangren:?返回字符的字符代码.
不是在Ruby 1.9中.从1.9开始,?a返回'a'.看到这里: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
Run Code Online (Sandbox Code Playgroud)
编辑:一个非常充分说明在Ruby 1.9的变化.
另一个编辑:请注意,'a'.ord如果您希望字符串在1.8 via中进行数字转换,现在可以使用?a.
此更改与Ruby 1.9的UTF-8更新有关.
Ruby 1.8版本?仅使用单字节字符.在1.9中,他们更新了所有内容以使用多字节字符.麻烦的是,不清楚应该从哪个整数返回?€.
他们通过改变它的回报来解决它.在1.9中,以下所有内容都是单元素字符串并且是等效的:
?€
'€'
"€"
"\u20AC"
?\u20AC
Run Code Online (Sandbox Code Playgroud)
他们应该放弃符号,IMO,而不是(有点随机)改变行为.但它甚至没有正式弃用.
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |