Ruby 2.4.0 正式版发布

来源:开源中国社区 作者:局长
  

Ruby 2.4.0 正式版发布了。Ruby 是一门跨平台、面向对象的动态类型编程语言。Ruby 体现了表达的一致性和简单性,它不仅是一门编程语言,更是表达想法的一种简练方式。

此文档是除了错误修复之外的用户可见的功能更改的列表。注意:每个条目保持如此简短,以致不提供背后的原因或参考信息。有关具体所有的完整更改列表,请参阅 ChangeLog 文件或 Redmine。

部分更新内容:

Changes since the 2.3.0 release

Language changes

  • Multiple assignment in conditional expression is now allowed. [Feature #10617]

  • Refinements is enabled at method by Symbol#to_proc.  [Feature #9451]

  • Refinements is enabled with Kernel#send and BasicObject#__send__. [Feature #11476]

  • Rescue modifier now applicable to method arguments. [Feature #12686]

  • Toplevel return is now allowed.  [Feature #4840]

Core classes updates (outstanding ones only)

Array

  • Array#concat [Feature #12333]

Now takes multiple arguments.

  • Array#max and Array#min.  [Feature #12172] 

This may cause a tiny incompatibility: if you redefine Enumerable#max and call max to an Array, your redefinition will be now ignored.  You should also redefine Array#max.

  • Array#pack [Feature #12754]

Now takes optional argument `buffer:' to reuse already allocated buffer.

  • Array#sum  [Feature #12217]

This is different from Enumerable#sum in that Array#sum doesn't depend on the definition of each method.

Comparable

  • Comparable#clamp.  [Feature #10594]

Dir

  • Dir.empty?.  [Feature #10121]

Enumerable

  • Enumerable#chunk called without a block now return an Enumerator [Feature #2172]

  • Enumerable#sum  [Feature #12217]

  • Enumerable#uniq  [Feature #11090]

Enumerator::Lazy

  • Enumerator::Lazy#chunk_while  [GH-1186]

  • Enumerator::Lazy#uniq  [Feature #11090]

File

  • File.empty?.  [Feature #9969]

Float

  • Float#ceil, Float#floor, and Float#truncate now take an optional digits, as well as Float#round. [Feature #12245]

  • Float#round now takes an optional keyword argument, half option, and the default behavior is round-up.  [Bug #12548] [Bug #12958]

  • half option can be one of :even, :up, and :down.  [Feature #12953]

Hash

  • Hash#compact and Hash#compact!  [Feature #11818]

  • Hash#transform_values and Hash#transform_values!  [Feature #12512]

Integer

  • Fixnum and Bignum are unified into Integer  [Feature #12005]

  • Integer#ceil, Integer#floor, and Integer#truncate now take an optional digits, as well as Integer#round.  [Feature #12245]

  • Integer#digits for extracting columns of place-value notation [Feature #12447]

  • Integer#round now takes an optional keyword argument, half option, and the default behavior is round-up now.  [Bug #12548] [Bug #12958]

  • half option can be one of :even, :up, and :down.  [Feature #12953]

IO

  • IO#gets, IO#readline, IO#each_line, IO#readlines, IO.foreach now takes an optional keyword argument, chomp flag.  [Feature #12553]

Kernel

  • Kernel#clone now takes an optional keyword argument, freeze flag. [Feature #12300]

MatchData

  • MatchData#named_captures [Feature #11999]

  • MatchData#values_at supports named captures [Feature #9179]

Module

  • Module#refine accepts a module as the argument now. [Feature #12534]

  • Module.used_modules [Feature #7418]

Numeric

  • Numeric#finite?, Numeric#infinite? [Feature #12039]

Process

  • Support CLOCK_MONOTONIC_RAW_APPROX, CLOCK_UPTIME_RAW, and CLOCK_UPTIME_RAW_APPROX which are introduced by macOS 10.12.

完整更新内容发布主页

下载地址


时间:2016-12-24 09:52 来源:开源中国社区 作者:局长 原文链接

好文,顶一下
(0)
0%
文章真差,踩一下
(0)
0%
------分隔线----------------------------


把开源带在你的身边-精美linux小纪念品
无觅相关文章插件,快速提升流量