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”。那是我学习红宝石的地方。不幸的是,我坚持了
谢谢, 西
答案 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
类的实例,因此它没有balance
,withdraw!
或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)
不要将其作为单身方法。单身方法不合适。