一千萬個為什麽

搜索

關於Ruby中繼承的問題

我一直試圖在過去教自己Ruby,而我一直試圖得到類似下面的東西,但我得到以下錯誤......

file.rb:44:infunc': undefined local variable or method number' # (NameError)

The code that's giving me this error is...

 class A
     def func
          file = File.new("file", "r") 
      file.each_line {|line| @numbers << line.chomp.to_i}
          @number = @array[0]
     end
 end

 class B < A
     def func
       super number
       puts number
     end
 end

Could someone please tell me what I'm doing wrong?

edit// Just a clarification that I want number in class B to inherit the value of @number in class A.

最佳答案

您忘記了'@'符號來引用實例級變量。

無論如何,這是一個非常糟糕的設計。如果'file'中沒有行怎麽辦?永遠不會初始化@numbers。你還使用一個從未定義的變量(@array)在下一行完全消滅@number。停止嘗試將所有內容放在盡可能少的行中並正確初始化變量。

編輯:另外,正如Chuck註意到的那樣,你將一個參數傳遞給一個不帶參數的方法。

轉載註明原文: 關於Ruby中繼承的問題