我在做一个练习题,问题是将行转换为Ruby中的列。移动行到列(限制我可以使用什么方法)
我明白while
循环是“菜鸟式的”在Ruby中,但我认为他们喜欢我使用的基本方法和控制流语句:while
,each
,map
。很显然,我不能使用Array#transpose
。他们希望我从头开始编写Array#transpose
。
它不断告诉我:
undefined method `[]=' for nil:NilClass (NoMethodError)
这里是我的代码:
def transpose(rows)
idx1 = 0
cols = []
while idx1 < rows.count
idx2 = 0
while idx2 < rows[idx1].count
cols[idx1][idx2] = rows[idx2][idx1]
idx2 += 1
end
idx1 += 1
end
return cols
end
puts transpose(rows = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8]
])
什么是你的问题? – sawa 2015-03-09 02:25:04