2011-06-03 31 views
1

誰能告訴我,爲什麼這部作品在我的gedit在Ubuntu紅寶石:Ubuntu的Gedit的問題可能與空間

def initialize (product_id,category_id,category_name) 

但這並不。它thows一個語法錯誤,並說我缺少「)」

def initialize (product_id, category_id, category_name) 

我花了大約2個小時通過我的代碼其餘全部運行,這是固定的語法錯誤。我必須在我稱之爲方法和定義的地方改變它。我的代碼的其餘部分是100%相同的。是gedit做我的空間的東西?謝謝

回答

3

你不應該在方法名稱和該方法的參數列表之間有一個空格。它應該是:

def initialize(product_id, category_id, category_name) 
-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 on karlao koala:

[email protected]:~$ irb --version 
irb 0.9.5(05/04/13) 
[email protected]:~$ irb1.9.1 --version 
irb 0.9.5(05/04/13) 

因此,如果gedit拒絕接受代碼,這是有點懶。作爲一個方面說明,你應該提供錯誤的堆棧跟蹤(只要它沒有絕密信息),並且理想地提供如上所述的代碼,以便有人可以將其剪切並粘貼到他們的計算機中。讓我們更輕鬆!

+0

@Downvoter:爲什麼downvote?我說的不正確,還是你反對最後一段? (順便說一句,我知道這不是OP誰低估了我) – 2011-06-04 02:10:01