0

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
4

2 回答 2

1

Sublime Text 2 控制台是 python 控制台,而不是 ruby​​。

此外,您的 ruby​​ 代码不正确。

于 2013-09-05T03:29:56.347 回答
0

我感觉您根本没有为任何对象调用方法 add(1,2)。我的意思是,在这种情况下,您不是在告诉计算器添加,而是对稀薄的空气......它不知道如何添加!

尝试执行以下操作: Calculator.new.add(1,2)

您将要求添加一个计算器实例。

如果您有任何疑问或者我完全错了,请告诉我!

编辑:正如 texasbruce 所说,ST2 控制台是 Python。因此,解决方案如下:添加puts Calculator.new.add(1,2)代码并点击Ctrl+B启动 Ruby。

于 2013-09-05T03:20:31.057 回答