在下面的代码中,我试图将矩阵转置 90 度。但是当我运行代码时,我得到一个参数错误:
我不明白为什么会发生这种情况,因为我在方法定义中显然有一个论点。对于为什么会发生此错误,我将不胜感激。谢谢。
irb(main):001:0> matrix1 = [
irb(main):002:1* [1, 5, 8],
irb(main):003:1* [4, 7, 2],
irb(main):004:1* [3, 9, 6]
irb(main):005:1> ]
=> [[1, 5, 8], [4, 7, 2], [3, 9, 6]]
irb(main):006:0> def rotate90(matrix_input)
irb(main):007:1> input_column = 0
irb(main):008:1> input_row = 0
irb(main):009:1> return_column = matrix_input.size - 1
irb(main):010:1> matrix2 = []
irb(main):011:1> mat1_size = matrix_input.size -1
irb(main):012:1> loop do
irb(main):013:2* loop do
irb(main):014:3* matrix2[input_column][return_column] = matrix_input[input_row][input_column]
irb(main):015:3> input_column += 1
irb(main):016:3> break if input_column >= matrix_input[0].size - 1
irb(main):017:3> end
irb(main):018:2> input_row += 1
irb(main):019:2> input_column = 0
irb(main):020:2> return_column -= 1
irb(main):021:2> break if input_row >= mat1_size
irb(main):022:2> end
irb(main):023:1> matrix2
irb(main):024:1> end
=> :rotate90
irb(main):025:0> rotate90(matrix1)
ArgumentError: wrong number of arguments (given 1, expected 0)
from (irb):11:in `length'
from (irb):11:in `rotate90'
from (irb):25
from /usr/bin/irb:11:in `<main>'