Matrix 클래스를 만들고 코드의 여러 부분에서 사용하고 싶습니다.Ruby Class # new - 왜`new`가 private 메소드입니까?
class Matrix
def initialize(x, y, v=0)
@matrix = Array.new
(0..y).each do |j|
@matrix[j] = Array.new
(0..x).each do |i|
@matrix[j][i] = v
end
end
end
end
이 코드가이 코드를 사용하는 코드와 동일한 클래스에 포함되어 있으면 모든 것이 정상적으로 실행됩니다. 내가 lib/matrix.rb
에이 코드를 이동하고 필요할 때
, 나는 다음과 같은 오류가 발생합니다 :
그것은 Matrix is a class from the standard ruby library 때문에, 클래스 다른 이름을 부여 시도하거나 모듈 내부에 넣어의./phylograph:30:in `block in run': private method `new' called for Matrix:Class (NoMethodError)
마지막'matrix.rb' 파일을 볼 수 있습니까? 이 특정 코드 블록에 관한 것은 그 종류의 효과가있는 것처럼 보입니다. – Matchu