当我运行以下代码时:
range = [2,3,4,5,6,7,8,9,10]
range.each {|z| print z, " "}
puts "\n"
range.map! {|y| y /= 3 if y % 3 == 0}
range.each {|z| print z, " "}
我得到以下输出:
2 3 4 5 6 7 8 9 10
nil 1 nil nil 2 nil nil 3 nil
而我期望输出的第二行包含:
2 1 4 5 2 7 8 3 10
我究竟做错了什么?我是否误解了map
操作员的方式及其相关代码块的工作方式?
注意:我在 C/C++ 中广泛编程多年后学习 Ruby,这是我一直坚持的非工作 Ruby 程序的最小片段。如果需要,我可以粘贴原始程序我也用它构建了这个 MWE。