Я пытался решить некоторые проблемы с моим 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 {некоторые магические вещи?}