Ruby 进展近况:Ruby 1.9.0-5 发布、JRuby 跳过 1.8.7、用于 Case 测试的 Procs#===

  • Mirko Stocker
  • 李明(nasi)

2008 年 10 月 11 日

话题:Ruby语言 & 开发

Thomas EneboCharles Nutter也表示了赞同,并补充到,用户应该直接切换至 1.9,而不是编写只能在 1.8.7 下正常工作的代码(在 JRuby 中获得对 Ruby 1.9 的支持可以启用--1.9)。Charles 也将他的看法发布到 Ruby-core 邮件列表中,但是就此事还没有开始进行任何讨论。

将 Procs 用于 Case 相等性测试

Ruby 在 case 语句中使用 === 来比较不同的情况。Ruby 1.9 的 Proc 类最近也实现了 === 方法,基本上就是一个调用 Proc 的 call 方法的别名。现在,这意味着可以在 case 语句中使用 Proc 对象了;可以将 case 参数作为 Proc 的参数。这种技巧是由 Aimred 发现的,并在 Matz 将其继承到 Ruby 1.9 以前自行实现了改方法。

Dave Thomas展示了一个更为复杂的应用程序,采用这种方法来创建若干 Proc 以检验的星期的某一天。

查看英文原文:Ruby Future Roundup: Ruby 1.9.0-5 Released, JRuby Skips 1.8.7, Procs#=== For Case Testing

Ruby语言 & 开发