情況下我有幾個變量:指定一個替換值中的零
name
age
address
phone
social_security
email
weight
和陣列稱爲personal_details
與每個在位置0-6這些值。
所以我分配值是這樣的:
name = personal_details[0]
address = personal_details[1]
phone = personal_details[2]
social_security = personal_details[3]
email = personal_details[4]
weight = personal_details[5]
在某些情況下,然而,在右側的數據不存在。
什麼是更好的方法來處理這比寫這樣的數組中的每個元素?
if !personal_detail[0].nil?
name = personal_details[0]
else
name = ""
end
if !personal_detail[1].nil?
address = personal_details[1]
else
address = ""
end
你確定'fetch'按照你的想法工作嗎?從文檔:嘗試返回位置索引處的元素。如果索引*位於數組之外* ...將返回默認值。使用'irb'進行快速實驗表明,如果您請求的索引處有任何*項(即使是'nil'),它也不會返回默認值。所以它不適用於OP的情況,因爲他不知道超出陣列末尾的物品。 – Telemachus 2009-11-15 11:42:40
你是對的 - 我測試了代碼,沒有看到任何內容,只是假定它返回空字符串。相反,它的第一眼看起來是零。我會編輯答案。 – 2009-11-16 01:53:47