2017-06-02 50 views
0

我正在嘗試在類中找到一個找到素數總和的方法。這是我到目前爲止有:查找小於100的素數總和

class Primes 

    require 'rspec' 
    require 'prime' 

    def self_sum_to num 
    Prime.each(num).inject(&:+) 
    end 

end 

Primes.self_sum_to 100 

我得到的錯誤是:

LoadError: cannot load such file — rspec 
method require in kernel_require.rb at line 55 
method require in kernel_require.rb at line 55 
method <class:Primes> in primes.rb at line 3 
method <main> in primes.rb at line 1' 

如果我刪除'require rspec',我得到的錯誤:

NoMethodError: undefined method ‘self_sum_to’ for Primes:Class 
method <main> in primes.rb at line 11 

我不知道爲什麼我得到這個錯誤,因爲方法self.sum_to已被聲明。

任何與此有關的幫助將不勝感激。

+0

_「self.sum_to已申報」 _ - 你似乎是知道了正確的語法,所以我投票「通過簡單的打字錯誤造成的」關閉此爲_。 – Stefan

回答

1

def self_sum_to更改爲def self.sum_to

self_sum_to只是一個普通的方法,而self.sum_to定義了整個類的方法。

require 'prime' 

class Primes 
    def self.sum_to(num) 
    Prime.each(num).inject(&:+) 
    end 
end 

Primes.sum_to 100 
+0

非常感謝。我知道我很親密。這已經修復了錯誤,但是當我在最後調用方法時,我沒有得到任何輸出到控制檯。這是爲什麼? –

+0

@ sledge_909可能是因爲你沒有輸出任何東西。試試'把Primes.sum_to(100)' – Stefan

+0

謝謝斯蒂芬。一直在圈子裏走動,我錯過了簡單的東西。 –