2012-06-02 182 views
0

我想了解與多個模塊紅寶石:多個模塊聲明

一段代碼
module a; module b; module c; 

def foo 
    #something 
end 

end 
end 
end 

那麼究竟是什麼上面的代碼是什麼意思?它是否像所有3個模塊都有foo,我可以訪問a.foo或b.foo等。?

+0

你從哪裏找到這段代碼? –

+2

'SyntaxError:類/模塊名稱必須爲CONSTANT' –

+1

請縮進您的代碼,並按照任何ruby模塊,課程教程。 –

回答

1

我可以看到這將如何混淆。這是非常糟糕的佈局。將模塊聲明拆分爲單獨的行,它更有意義。如果寫在一行上,Ruby允許用分號分隔一些東西......這在這裏被濫用並導致混淆。

代碼擴展到這一點,當佈局正確:

module a 
    module b 
    module c 
     def foo 
     #something 
     end 
    end 
    end 
end 

使用分號寫在一行中定義的其他例子包括:

class Foo < Bar; def zip; if @terrifying; puts "Yes"; else; puts "No"; end; end; end 

你或許可以看到爲什麼我說這個寫得不好。此外,模塊名稱應以大寫字母開頭。

+0

謝謝,我想用縮進代碼而不是一個襯墊代碼更好(對於初學者)。 – Pradhan