大多數網上材料具有初始化是這樣的:實例初始化以哈希
class MyClass
attr_accessors :a, :b, :c
def initialize(a,b,c)
@a = a
@b = b
@c = c
end
end
有或沒有默認值。創建一個新的實例是:
n = MyClass.new(1,2,3)
n.a # => 1
n.b # => 2
n.C# => 3
我想知道如何使用哈希語法初始化實例,如:
n = MyClass.new(:a => 1, :b => 2, :c => 3)
這應該是等同於:
n = MyClass.new(:b => 2, :a => 1, :c => 3)
是這很難實現?
你可能會認爲這是顯而易見的,但我沒能得到這個語法沒有把在默認設置(即工作:'高清初始化(一:nil,b:4,c:foo)'。感謝您的幫助。 –
所以,讓我知道這是不是基於。當你添加命名參數他們是要求,你必須通過所有的人。如果你沒有通過它們,初始化新類將失敗 – Austio
我在註釋中列出了它的方式,我沒有。省略參數用默認值初始化。你在IDE上面列出的方式抱怨意想不到的逗號,並且這個應用程序會引起一片神祕例外。它想要'''之後和''之前的東西。 –