我正在尝试一些关于我的2D Ruby数组的问题,当我进行数组切片时,代码行数大大减少。例如:
require "test/unit"
class LibraryTest < Test::Unit::TestCase
def test_box
array = [[1,2,3,4],[3,4,5,6], [5,6,7,8], [2,3,4,5]]
puts array[1][2..3] # 5, 6
puts array[1..2][1] # 5, 6, 7, 8
end
end
我想知道是否有一种方法可以获取一个对角线切片?假设我想从[0,0]开始,想要一个长度为3的对角线切片。那么我将会获得来自[0,0],[1,1],[2,2]的元素,例如上面的例子,我将会得到像[1,4,7]这样的数组。是否有任何神奇的一行代码可以实现这个功能? 3.times do {一些魔法的东西?}
puts array[1..2][1]
等同于puts array[2]
,而不是puts array[1..2].map{|arr| arr[1]}
。我不确定使用数组的数组是否是正确的做法,但我还没有能够构建出更好的东西。 - Andrew Grimm