我試圖訪問一個類的實例變量在另一個類的時候,但我得到:獲取未定義的方法爲無:NilClass嘗試接取一個實例varible
:in `lies_outside?': undefined method `x_coordinate' for nil:NilClass (NoMethodError)
這是我真的使用變量:
class Grid
def initialize(size)
@size = size
@current_Location = Point.new(0, 0)
@temp_loaction = Point.new(0, 0)
end
def lies_outside?
if @temp_location.x_coordinate < 0 || @temp_location.x_coordinate >= @size
return false
elsif @temp_location.y_coordinate < 0 || @temp_location.y_coordinate >= @size
return false
end
end
而這正是變量是類:
class Point
attr_reader :x_coordinate
attr_reader :y_coordinate
def initialize (x, y)
@x_coordinate = x
@y_coordinate = y
@x = @y = 0
end
我省略在這些類和所有其他類中的所有其他方法,因爲這是一個任務,我只需要幫助解決這個問題。
重要的是,您的示例代碼至少在語法上是正確的。現在,Ruby甚至無法運行它,因爲您省略了類的關閉'end'語句。寫一個好問題的一部分是你必須包含「重現它所需的最短代碼」,「它」是你所問的問題。 – 2014-09-30 15:53:51