我目前正在尝试转换这个Ruby数组:
[5, 7, 8, 1]
将其转化为以下内容:
[[5], [7], [8], [1]]
我目前是这样做的:
[5, 7, 8, 1].select { |element| element }.collect { |element| element.to_a }
但是我收到了以下警告:
warning: default `to_a' will be obsolete
以无参考样式:
[5, 7, 8, 1].map(&method(:Array))
试试这个:
[5, 7, 8, 1].map {|e| [e]}
map
和collect
,select
是另一回事(在Smalltalk中也称为select
,在其他一些语言中称为filter
)。例如,请参见http://smalltalk.gnu.org/blog/sblinn/list-comprehension-using-select-and-collect - Michael Kohl你现在所做的没有明显的问题。我认为他们指的是将来可能会弃用FixNum的to_a方法,因为对于FixNum来说,to_a方法到底应该做什么不太清楚。
你可以按照以下方式重写代码行,从而消除错误:
[5, 7, 8, 1].select { |element| element }.collect { |element| [element] }
你可以这样做:
[5, 7, 8, 1].collect { |i| [i] }
map(&:name)
是什么意思?,Ruby中的&:capitalize
到底是什么?,Ruby/Ruby on Rails中的:快捷方式,Ruby:&:symbol
语法,... - Jörg W Mittag&:last
构造叫什么?, 你如何称呼 Ruby 中的&:
运算符?, 在 Ruby 代码map(&:name)
中&:name
是干什么的?, Ruby 中的:+
和&+
是什么意思?,Post.published.collect(&:views_count)
中的&:views_count
是什么意思?, Ruby Proc 语法, 在 Ruby 中 "(1..4).inject(&:+)
" 怎么用? - Jörg W Mittag&:property
是什么意思?在Ruby语法中,&
代表什么意思?为什么要在属性上使用一元运算符,如:first
?Array#map
如何有参数执行此操作? - Jörg W MittagArray(5)
,而不是5.Array
。我想知道这种习惯用法是否会影响性能。 - Andrew Grimm