关于Ruby 2.0: 我们的计划

这是Matz在去年10月份做的一个关于Ruby 2.0的主题演讲,正如他所说,Ruby 2.0在特性方面只是向前迈进了一小步,更多的改变将发生在实现层面。

Ruby 2.0的新特性包括:

  1. Keyword arguments
  2. Selector namespace
  3. Traits
  4. Method combination

1. Keyword arguments

现在的step:

1.step(a, b) do |i|
  p i
end
# 是从a到b,还是从b到a

Ruby 2.0:

1.step(by: 2, to: 20) do |i|
  p i
end

2. selector namespace

减少monkey patch对系统可能造成的负面影响

class Integer
  def +(other)
    return 42
  end
end

p 1+2 => 42

Ruby 2.0:

namespace Stupid do
  class Integer
    def +(other)
      return 42
    end
  end

  p 1+2 => 42
end
p 1+2 => 3

3. Traits

traits主要是为了解决mixin带来的命名冲突问题

module  Foo
  ...
end

module Bar
  mix Foo
end

class C
  mix Foo
  mix Bar, :m => :m_bar
end

4. Method combination

这主要是为了解决method alias chain带来的负面问题,现在你可以通过prepend将mixin的方法放在后面:

module Foo
  def foo
     p :before
     super
     p :after
    end
end

class Bar
  def foo
    p :foo
  end

  prepend Foo
end

Bar.new.foo #  :before, :foo, :after

当然除了特性,对实现的改进也是必不可少的:

  1. 更快,Matz承诺到了2.0,将不会再有人抱怨Ruby的性能问题
  2. 更小
  3. 可嵌入
  4. 软运行时

唯一的问题就是他没有讲我们什么时候可以用上Ruby 2.0,不过早上刚得到消息,第三届RubyConChina将于8月30号在北京举行,或许到时我们可以问问Matz这个问题。

无觅猜您也喜欢:
Ruby 1.9正式发布
Writing Efficient Ruby Code Short Cut
财付通Ruby插件更新
Ruby技巧3则
无觅

你可能感兴趣的:(其它)