Ruby: проблема Ubuntu Gedit возможна с пробелами - PullRequest
1 голос
/ 03 июня 2011

может кто-нибудь сказать мне, почему это работает в моем gedit на Ubuntu

def initialize (product_id,category_id,category_name)

но это не так. Это выдает синтаксическую ошибку и говорит, что мне не хватает ")"

def initialize (product_id, category_id, category_name)

Я потратил около 2 часов на весь остальной код, и это исправило синтаксическую ошибку. Мне пришлось изменить его там, где я вызываю метод и в его определении. Остальная часть моего кода на 100% одинакова. Gedit что-то делает с моими пробелами? Спасибо

Ответы [ 2 ]

3 голосов
/ 03 июня 2011

Вы не должны иметь пробел между именем метода и списком аргументов этого метода Должно быть:

def initialize(product_id, category_id, category_name)
0 голосов
/ 03 июня 2011

Соглашаясь с @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 отказывается принимать код, это немного лениво.

В качестве примечания вы должны предоставить трассировку стека ошибки (если она не содержит сверхсекретной информации) и в идеале предоставить код, подобный приведенному выше, чтобы кто-то мог вырезать и вставить его на свой компьютер. Облегчи нам!

...