Ruby:Ubuntu Gedit可能与Spaces有关

时间:2011-06-03 06:06:20

标签: ruby syntax ubuntu gedit

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

def initialize (product_id,category_id,category_name)

但事实并非如此。它产生语法错误,并说我错过了一个“)”

def initialize (product_id, category_id, category_name)

我花了大约2个小时来完成所有其余的代码,这就是修复语法错误的原因。我必须在我调用方法及其定义的地方更改它。我的其余代码是100%相同.. gedit是用我的空间做某事吗?感谢

2 个答案:

答案 0 :(得分:3)

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

def initialize(product_id, category_id, category_name)

答案 1 :(得分:-1)

在同意@Ryan同意你不应该在initialize和括号之间有空格时,两个版本在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 on karmic koala:

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拒绝接受代码,那就太懒了。

作为附注,你应该提供错误的堆栈跟踪(只要它没有绝密信息),并且理想情况下提供我上面的代码,这样有人可以将其剪切并粘贴到他们的计算机中。让我们更轻松!