gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:22 27 4
gpt4 key购买 nike

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

那么他们对 2.0 有什么计划?它会与 ruby​​ 1.9.x 有很大不同吗?

最佳答案

特征 (mix) 和 Module#prepend 已经在 YARV 中实现,并且很可能最终会出现在 Ruby 2.0 中。

>

mix 方法与当前的 include 方法不同,它获取模块的列表,并同时混合所有模块,确保它们没有冲突的方法。它还为您提供了一种轻松解决冲突的方法,例如您要混合的两个模块定义相同的方法。所以,基本上,虽然 include 方法允许您将模块视为 mixin,但 mix 方法允许您将模块视为特征。

Module#prepend 将一个模块混合到一个类或模块中,就像 include 所做的那样,但不是将它插入到上面<的继承链中/em> 类,它插入到类的下方。这意味着模块中的方法可以覆盖类中的方法,并且它们可以使用 super 委托(delegate)给被覆盖的方法,这两者在使用 include 时是不可能的。这基本上使 alias_method_chain 过时了。

已经讨论了几个月(或 10 年,具体取决于您如何计算)的一个功能是改进。现在已经讨论了 10 多年,以添加一种在 Ruby 中进行作用域安全猴子修补的方法。 IE。一种我可以猴子修补核心类的方法,但只有我的代码看到那个猴子补丁,其他代码看不到。多年来,这种安全的猴子补丁的领跑者是选择器命名空间,但是最近,类框得到了很多关注,甚至最近,提炼的原型(prototype)实现和规范,类框的变体,被提出转发。

一般来说,Ruby 2.0 的大主题是可扩展性:向上扩展到更大的团队、更大的代码库、更大的问题规模、更大的机器、更多的核心。而且还可以缩小到较小的机器,例如嵌入式设备。

我上面提到的三个功能是为了扩展到更大的团队和更大的代码库。一些建议的用于扩展到更大问题规模和更多核心的功能是并行集合和并行实现 Enumerable 方法(例如 map),以及更好的并发抽象(例如 futures、promises) 、代理、 Actor 、 channel 、加入模式或类似的东西。

关于ruby - ruby 1.9.2 和 ruby​​ 2.0 之间的主要/次要区别是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5506498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com