这将创建一个无限循环,而我无法确定为什么会发生这种情况。当我不使用push命令时,循环不会发生。
#strings = ["HTML", "CSS", "JavaScript", "Python", "Ruby"]
symbols = [ "a", "b", "c" ]
symbols.each do |x|
symbols.push(x.to_sym)
end
以下代码在迭代时将项目追加到symbols
array(同一array);该块通过追加到数组来提供无限项。(each
将这些项目用于迭代)
symbols.each do |x| symbols.push(x.to_sym) end
#^^^^^^ ^^^^^^^
Enumerable#map
改为使用:
symbols.map { |x| x.to_sym }
# => [:a, :b, :c]
symbols.map &:to_sym
# => [:a, :b, :c]
或使用另一个数组而不是使用同一数组。
new_symbols = []
symbols.each do |x| new_symbols.push(x.to_sym) end
new_symbols
# => [:a, :b, :c]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句