【发布时间】:2010-03-24 09:49:49
【问题描述】:
我正在尝试我的 2D ruby 数组的一些问题,当我进行数组切片时,我的 LOC 减少了很多。比如,
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 做{一些神奇的东西?}
【问题讨论】:
-
你可能知道这一点,但
puts array[1..2][1]等价于puts array[2],而不是puts array[1..2].map{|arr| arr[1]}。我不确定使用数组数组是否是正确的做事方式,但我无法构建更好的东西。 -
那是我的意图。但是你的回答还是很有用的。谢谢:)
标签: ruby multidimensional-array