1

有人可以告诉我为什么这在我的 ubuntu 上的 gedit 中有效

def initialize (product_id,category_id,category_name)

但事实并非如此。它抛出一个语法错误并说我缺少一个“)”

def initialize (product_id, category_id, category_name)

我花了大约 2 个小时来运行我的所有其余代码,这就是修复语法错误的原因。我必须在调用方法的位置及其定义中更改它。我的其余代码是 100% 相同的。gedit 是否对我的空间进行了处理?谢谢

4

2 回答 2

3

您不应该在方法名称和该方法的参数列表之间有空格。它应该是:

def initialize(product_id, category_id, category_name)
于 2011-06-03T06:16:26.110 回答
-1

虽然同意@Ryan,你不应该在初始化和括号之间有空格,但两个版本在 IRB 中对我来说都很好:

class Foo
  def initialize (product_id,category_id,category_name)
  end
end

class Bar
  def initialize (product_id, category_id, category_name)
  end
end

Foo.new(1, 2, 3)
Bar.new(1, 2, 3)

鉴于 irb 对业力考拉的这些版本:

agrimm@csb1:~$ irb --version
irb 0.9.5(05/04/13)
agrimm@csb1:~$ irb1.9.1 --version
irb 0.9.5(05/04/13)

因此,如果 gedit 拒绝接受代码,那就有点懒惰了。

作为旁注,您应该提供错误的堆栈跟踪(只要它没有绝密信息),并且最好提供像我上面那样的代码,以便有人可以将其剪切并粘贴到他们的计算机中。让我们更轻松!

于 2011-06-03T09:13:44.717 回答