发布于 2016-12-24 01:25:41 | 215 次阅读 | 评论: 0 | 来源: 网友投递
Ruby编程语言
Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。
Ruby 2.4.0 正式版发布了。
此文档是除了错误修复之外的用户可见的功能更改的列表。注意:每个条目保持如此简短,以致不提供背后的原因或参考信息。有关具体所有的完整更改列表,请参阅 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.
下载地址