我目前完全停留在學校問題上,並認爲我會伸出一些指導。在RUby中使用散列設置屬性
定義一個名爲User的類。它的初始化方法應該以Hash作爲參數。我們將其命名參數配置和參數的默認值設置爲空哈希:
class User
def initialize(config = {})
end
end
這config = {}
語法用品初始化一個「默認參數」。如果有人初始化一個沒有配置參數的User實例,那麼方法中的配置變量會自動設置爲我們給它的默認值 - 一個空的哈希值。
在配置參數應被用於設置任何對用戶的以下屬性:name
,email
,bio
,age
,和sex
。如果在Hash參數中未提供屬性,則initialize方法應將其默認值設置爲「n/a」。例如:
class User
def initialize(config = {})
@name = config[:name] || "n/a"
@email = config[:email] || "n/a"
...
end
end
設置默認值是Ruby中非常常見的任務。一個基本的方法是使用||
賦值運算符,意思是「或」。考慮以下示例:
a = 3
a = a || 6
a #=> 3
b = b || 9
b #=> 9
解碼上述條件賦值中的邏輯。
我們還需要訪問初始化方法中設置的實例變量。爲此,我們可以使用attr_accessor
方法聲明。 attr_accessor
方法還允許我們在一行上聲明多個屬性。例如:
class User
attr_accessor :name, :email
def initialize(config = {})
@name = config[:name] || "n/a"
@email = config[:email] || "n/a"
# ...
end
end
寫完User
類和initialize
方法來處理所有必需的屬性。
我完全失去了這一點。提前致謝。
只需將所有必需的屬性添加到'attr_accessor'的參數列表中,並將現有模式後面的每個必需屬性添加到'initialize'。或者我錯過了什麼? – spickermann
你到底迷惑了什麼?如何給類添加屬性?你對attr_accessor有困惑嗎?這項任務有哪些其他要求?因爲它看起來已經完成了,所有你需要做的就是將其餘的屬性添加到用戶類中。 –