我没有得到一个简单方法的输出

时间:2013-06-24 15:24:55

标签: ruby

local_var = "account"
def account.add_nums(num1, num2)
    num1 + num2
end

account.add_nums(2,5)

当我检查输出时。它表示“未定义的局部变量或方法`帐户'用于main:Object(NameError)”

有人可以帮帮我吗?

编辑:我使用的编译器是“http://www.learnstreet.com/scratchpad/ruby”。那是我学习红宝石的地方。不幸的是,我坚持了

谢谢, 西

3 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

class Account
  def self.add_nums(num1, num2)
    num1 + num2
  end
end

Account.add_nums(2, 5)

答案 1 :(得分:0)

问题在于,在本教程中,您将在已为您定义Account类和对象account的上下文中编写代码。

在该环境之外,您必须自己定义这些内容,最简单的方法是使用预定义的核心类Object声明一个对象。所以,如果你写

account = Object.new

然后你可以继续做

def account.add_nums(num1, num2)
  num1 + num2
end

account.add_nums(2, 5)

,结果将如您所料7

请注意,account不是Account类的实例,因此它没有balancewithdraw!deposit!方法,也没有实例变量@balance。事实上,它真的很无聊。

我建议您使用不同的在线开发工具来测试您的Ruby代码,因为LearnStreet专门用于实现本教程。 compileonline.com特别好,支持多种语言。

重要的是要注意本教程教授仅在单个对象上定义的所谓单例方法。这种方法很不寻常。通常,您希望在类中定义方法,以便从该类创建的每个对象都具有这些可用的方法。我猜他们已经做到了,所以他们可以在他们告诉你关于课程之前教授方法。

答案 2 :(得分:-1)

方法名中不允许使用点,除非在变量account上声明单例方法,但未定义。试试这个:

def add_nums(num1, num2)
    num1 + num2
end

add_nums(2,5)

或者把它放在课堂上:

class Account
  def add_nums(num1, num2)
    num1 + num2
  end
end

account = Account.new
account.add_nums(2, 5)

不要将其作为单身方法。单身方法不合适。