13

这是我的第一个红宝石应用程序。而且我是堆栈溢出处女......当我运行以下程序时:

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

我得到这个简单的错误消息结果:

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>'

你能帮我解决问题吗?

4

3 回答 3

67

您拼写“初始化”错误。我刚开始时也这​​样做了几次,这很难调试。为什么 ruby​​ 没有将其命名为“init”,我永远不会知道。

于 2013-09-08T07:11:34.407 回答
9

由于您没有为 定义方法initializeNameApp默认情况下,它接受零个参数,但您通过"Test1"构造函数传递了一个参数new

于 2013-09-08T02:23:57.430 回答
0

要将旧的“user.rb ”require_relative 'user'上移一级,将“user2.rb”重命名为“user.rb”。此外,还有一个错字。

于 2018-11-10T21:17:40.340 回答