Ruby, получающий диагональные элементы в 2-м Массиве

Я пробовал некоторые проблемы со своим 2D рубиновым массивом, и мой 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], например, выше. Есть ли какой-либо волшебный код Ruby остроты, который может достигнуть этого? 3.times делают {некоторый волшебный материал?}

9
задан Andrew Grimm 2 December 2011 в 01:45
поделиться