首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ruby 1.9.2和ruby 2.0之间的主要/次要区别是什么?

ruby 1.9.2和ruby 2.0之间的主要/次要区别是什么?
EN

Stack Overflow用户
提问于 2011-04-01 05:21:19
回答 1查看 2.5K关注 0票数 16

我被告知ruby 1.9.2是ruby 2.0,但ruby 1.9.3计划在不久的将来发布,它将包含一些性能增强。

那么他们对2.0有什么计划呢?它和ruby 1.9.x有很大的不同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-18 10:00:15

YARV中已经实现的两个特性是特征(mix)和Module#prepend,它们很可能最终出现在Ruby2.0中。

与当前的include方法不同,mix方法接受一个模块列表,并同时混合所有模块,以确保它们没有冲突的方法。它还为您提供了一种轻松解决冲突的方法,例如,如果您想混合使用两个模块来定义相同的方法。因此,基本上,include方法允许您将模块视为mixin,而mix方法允许您将模块视为特征。

include一样,Module#prepend将模块混合到类或模块中,但它不是将模块插入到类的正上方,而是在类的正下方插入。这意味着模块中的方法可以覆盖类中的方法,并且它们可以使用super委托给被覆盖的方法,这在使用include时是不可能的。这基本上使alias_method_chain过时了。

一个已经讨论了几个月(或10年,取决于你的统计方式)的特性就是改进。现在已经讨论了10多年,在Ruby中添加一种范围内的、安全的猴子补丁的方法。多年来,这种安全的猴子补丁的领跑者是Selector命名空间,然而最近,Classboxes得到了很多关注,甚至最近,提出了一个改进的原型实现和规范,这是Classboxes的一个变体。

一般来说,Ruby 2.0的主题是可伸缩性:扩展到更大的团队,更大的代码库,更大的问题规模,更大的机器,更多的内核。但也可以缩小到更小的机器,如嵌入式设备。

我上面提到的三个特性是为了扩展到更大的团队和更大的代码库。为了扩展到更大的问题规模和更多的核心,一些建议的功能是Enumerable方法的并行集合和并行实现,以及更好的并发抽象,如未来、承诺、代理、参与者、通道、连接模式或类似的东西。

票数 32
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5506498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档