Ruby 1.9中真正酷炫的功能

23

随着Ruby 1.9.2版本即将到来,现在是让开发者对Ruby 1.9感到兴奋的时候了。Ruby 1.9中有哪些在Ruby 1.8中无法实现的好玩的事情呢?


请查看以下网址以了解Ruby 1.9的更改:http://eigenclass.org/hiki/Changes+in+Ruby+1.9 - andre-r
我已经了解大多数的变化。我希望通过在SO上列出它们,并且给出人们如何使用它们的示例,其他人会感到兴奋和有动力转移到Ruby 1.9。 - shinzui
16个回答

3

YARV。Ruby 1.9中的新VM提供了一个新的现代VM,速度显著提高。


3

改进的正则表达式支持。Ruby 1.9 支持命名正则表达式组,以及许多其他改进,您可以在正则表达式中稍后回忆起来。Dave Thomas 提供了一个不错的例子


3

哦,还有:它的速度是1.8的两倍以上。如果您正在构建具有大量I/O延迟的多线程应用程序,则速度更快。尽管仍然需要进行大量工作来尝试从1.8中提高性能或修复其线程等问题,但我很惊讶人们对1.9的速度或本机线程没有更多的兴趣。


我想他们并没有变得更加兴奋,因为 1.9 是一个开发分支。它不是 2.0(并且在达到那里之前可能会经历很多波动)。 - hurikhan77
它可能是过渡性的,但绝对不是“开发分支”。在我们发布1.9.1之前,我们经历了多年的1.9版本候选版,该版本被宣布为可用于生产。而且,人们正在大规模地从1.8.6转向1.8.7(可以看到JRuby和REE的最近发布),因此我认为你不能简单地称其为对任何变化的抵制。 - SFEley
4
这是胡说八道(请原谅我的措辞)。稳定版本号中的偶数代表稳定版,奇数代表不稳定版的方案已经在多年前被废弃了。Ruby 1.9 是当前这门语言的稳定生产版本。就是这样。 - Jörg W Mittag
2
从技术上讲,这是YARV的一个特性,而不是Ruby 1.9的一个特性。 - Andrew Grimm

2

更好的Unicode支持和线程处理。


1.8版本中的Unicode支持需要使用额外的gem包,这给我带来了很多痛苦。全面支持Unicode将是非常不错的。一些人抱怨实现过程的复杂性,但我想他们从未在C++中使用过ICU!

此外,能够执行"Hello"[3]并获取字符也会很不错。


性能提升

一些基准测试显示,1.9.1相对于1.8.6有显著的性能提升,这得益于Matz's Ruby中的新虚拟机(YARV)。


许多小巧的特性...

如果你有Dave Thomas的《Programming Ruby》(也称为Pick-axe书),内置类和方法部分会很好地标记从1.8到1.9的变化。

比如:

(a) 新的哈希语法:{:hello => "world"} 可以缩短为 {:hello:"world"}

(b) 有序哈希 !!


2

1
在 Ruby 1.9+ 中,也可以在多行上链接方法。这似乎并不是什么疯狂的特性,但它允许使您的代码更易读,这是 Ruby 的一个关键概念。 例如:
@results = Clients
  .from_category(current_category)
  .selected_by(current_user.id)
  .activated
  .order("created ASC")
  .limit(1000)
  .map{ |e| "#{e.id} - {e.fullname}" }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接