此代码形式RubyMonk适用于RubyMonk:
class Calculator
def add(a, b)
a + b
end
def subtract(a, b)
a - b
end
end
我将它复制到Sublime Text 2,将构建系统设置为Ruby,然后我保存了它。当我输入类似add(1, 2)
的控制台时,我得到以下异常:
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'add' is not defined
我找不到解决方法。我尝试重新安装Sublime Text 2,尝试了ST3的测试版,尝试了其他代码,我知道它是好的(同样的错误)等等,没有什么工作。有什么想法吗?
编辑:根据另一位用户的建议,我试过了:
Calculator.new.add(1, 2)
返回:
Traceback (most recent call last):
File "<string>", line 1, in <module>
NameError: name 'Calculator' is not defined
答案 0 :(得分:1)
Sublime Text 2控制台是python控制台,而不是ruby。
此外,您的ruby代码不正确。
答案 1 :(得分:0)
我感觉你在没有Object的情况下调用方法add(1,2)。我的意思是,在这种情况下,你并没有告诉计算器添加,而只是为了空气......它不知道如何添加!
尝试执行以下操作:
Calculator.new.add(1,2)
您将要求添加计算器的实例。
告诉我你是否有任何疑问,或者我是否完全错了!
编辑:正如texasbruce所说,ST2控制台是Python。因此,解决方案如下: 在代码中添加puts Calculator.new.add(1,2)
,然后点击Ctrl+B
启动Ruby。