2017-06-02 84 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

谢谢斯蒂芬。一直在圈子里走动,我错过了简单的东西。 –