Ruby 1.8和Ruby 1.9有什么区别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (18)

我不清楚“当前”版本的Ruby(1.8)和“新”版本(1.9)之间的差异。有一个简单文档吗?

提问于
用户回答回答于

Sam Ruby 的幻灯片cool slideshow that outline the differences.

Ruby 1.8.6

irb(main):001:0> {1=>2}.index(2)
=> 1

1.9

irb(main):001:0> 5.to_sym
NoMethodError: undefined method 'to_sym' for 5:Fixnum

Ruby 1.8.6

irb(main):001:0> 5.to_sym
=> nil

1.9

# Find an argument value by name or index.
def [](index)
  lookup(index.to_sym)
end

散列键现在无序

1.9

irb(main):001:0> {:a=>"a", :c=>"c", :b=>"b"}
=> {:a=>"a", :c=>"c", :b=>"b"}

1.8.6

irb(main):001:0> {:a=>"a", :c=>"c", :b=>"b"}
=> {:a=>"a", :b=>"b", :c=>"c"}

更严格的Unicode正则表达式

1.9

irb(main):001:0> /\x80/u
SyntaxError: (irb):2: invalid multibyte escape: /\x80/

1.8.6

irb(main):001:0> /\x80/u
=> /\x80/u

还有很多建议查看文档

用户回答回答于

一个巨大的差异将是从Matz的解释器转移到YARV,这是一个字节码虚拟机,对性能有很大帮助。

扫码关注云+社区