ruby中的ruby1.9方法1.8.6
是否有gem或库来获得ruby 1.9方法
[1, 2, 3].combination(2) [1, 2, 3].permutation(2) [1, 2, 3].product([1, 2, 3]) [1, 2, 3, 4, 5].cycle
这正是我的gembackports
的目标。
它在纯Ruby中实现了Ruby 1.8.7的所有新function以及许多Ruby 1.9.x和2.0。 这当然包括#combination
, #permutation
, #product
和#cycle
。
你可以,例如:
require 'backports/1.8.7/array/combination' [1, 2, 3].combination(2) # => works, even in Ruby 1.8.6
在backports
的实现传递大多数RubySpecs (对于facets
来说不是这种情况),以保证不存在兼容性问题。
您可以尝试1.8.x版本的Ruby Facets( http://facets.rubyforge.org/ )。 Facets已经变得有点混乱(在网站上注释404),但我安装了旧版本的gem(1.8.54),其中包含一些这些标准前的更改。
> gem install --version=1.8.54 facets
然后:
gem 'facets', "~>1.8" require 'enumerator' require 'facets/core/enumerable/cartesian_product' require 'facets/core/enumerable/permutation' require 'facets/core/enumerable/each_combination' [1, 2, 3].enum_for(:each_combination,2).to_a # note - only each form is available [1, 2, 3].permutation(2) [1, 2, 3].cartesian_product([1, 2, 3]) # note - rename # Can't find .cycle equivalent after a quick search, maybe nothing there
您可能希望为这些方法中的某些方法添加别名以获得代码兼容性。
对不起,它不是很好。