Ruby n00b在这里尝试创建一个简单的方法来添加到Array类,但是有相当大的难度。我正在尝试编写一个方法,该方法不仅返回整数数组的最大值,还返回它发生的索引。这是我的代码:
class Array
def self.maxplus(matrix)
i = 0
maximum = 0
while i < matrix.length-1
if matrix[i] > maximum
maximum = matrix[i]
index = i
end
i += 1
end
puts index
puts maximum
end
end
当我尝试运行[0, 2, 4, 6, 8].maxplus
时,出现以下编译错误:
undefined method 'maxplus' for [0, 2, 4, 6, 8]:Array (No Method Error)
我很茫然,并且一直试图解决我的问题。非常感谢你的帮助和教育。
答案 0 :(得分:2)
您已为Array
类定义了静态方法,即Array.maxplus(matrix)
,但您尝试在Array
的实例上调用它}。所以要么像这样称呼它:
Array.maxplus(matrix)
或者将其作为实例方法:
class Array
def maxplus
i = 0
maximum = 0
while i < self.length-1
if self[i] > maximum
maximum = self[i]
index = i
end
i += 1
end
puts index
puts maximum
end
end
[1, 2, 3].maxplus