下面的两个代码片段应该打印相同的东西,但它们没有。
ary = %W(1 2 5 6 B 8 5 4 6 5 6 9 7 A)
indx1 = 0...ary.index("B")
indx2 = (ary.index("A") + 1)..-1
ary[indx1], ary[indx2] = ary[indx2], ary[indx1]
puts ary.inspect
ary = %W(1 2 5 6 B 8 5 4 6 5 6 9 7 A)
ary[0...ary.index("B")], ary[(ary.index("A") + 1)..-1] = ary[(ary.index("A") + 1)..-1], ary[0...ary.index("B")]
puts ary.inspect
第一个打印:
["B", "8", "5", "4", "6", "5", "6", "9", "7", "A", nil, nil, nil, nil, "1", "2", "5", "6"]
第二个:
["B", "8", "5", "4", "6", "5", "6", "9", "7", "A", "1", "2", "5", "6"]
他们不应该打印同样的东西吗?他们似乎和我一样。
(使用 Mac OSX 10.6.7 和 ruby 1.9.2-p180)