2013-09-08 14 views
7

Bu benim ilk yakut uygulaması. Başlarken ': basit yakut uygulaması için yanlış argüman sayısı (0 için 1) (ArgumentError)

class NameApp 

def intialize(name) 
    @names = [] 
end 

def name_question 
    print "What is your name? " 
    answer = gets.chomp 
    @names += answer.to_s 
    puts "The number of characters in your name is " + names.length 
end 


def name_length 
    if @names.length > 25 then 
     print "Your name is longer than 25 characters." 
    else 
     print "Your name is too short." 
    end 
end 

end 

name_app = NameApp.new("Test1") 
name_app.class # => NameApp 

name_app.name_question 
name_app.name_length 

Ben bu basit hata mesajı sonuç almak:

name.rb:26:in `initialize': wrong number of arguments(1 for 0) (ArgumentError) 
from nameapp.rb:26:in `new' 
from nameapp.rb:26:in `<main>' 

Bana yardım edebilir aksaklıkları Ve ben bir yığın taşması bakire aşağıdaki programı çalıştırdığınızda ... ben? Eğer NameApp yöntemi initialize tanımlanmamış beri

cevap

7

, varsayılan olarak, sıfır argüman alır, ancak yapıcı new aracılığıyla bir argüman "Test1" geçti.

45

"Başla" yanlış yazıldınız. Ben başladığımda bunu birkaç kez yaptım ve bu hata ayıklaması zordu. Ruby neden "init" demedi, asla bilmeyeceğim.

+1

Günümü @ 7stud kaydettiniz! – FloatingRock

+0

Yıllar sonra bırakıyorum, teşekkür etmek için. – amaleemur

+0

, bu cevabı ilk defa verdikten sonra yıllar sonra tekrar teşekkür etmek için düştü. – lakesare

İlgili konular