我有这样的哈希:
user_info = {
user_id: 1,
first_name: "Henry",
last_name: "Avery",
phone_number: 1234567890,
address: "United Kingdom",
}
当我收到这个哈希时,我需要分配许多这样的变量:
user_id = user_info[:user_id]
first_name = user_info[:first_name]
last_name = user_info[:last_name]
phone_number = user_info[:phone_number]
address = user_info[:address]
令人讨厌,并使代码有更多不必要的行。即使我将所有这些都放在一个句子中,它也会变得混乱,这条线太长了:
user_id, first_name, last_name, phone_number, address = user_info[:user_id], user_info[:first_name], user_info[:last_name], user_info[:phone_number], user_info[:address]
您是否知道将哈希值分配给变量的更快捷方式? 谢谢。
答案 0 :(得分:1)
这一行
user_id, first_name, last_name, phone_number, address = user_info[:user_id], user_info[:first_name], user_info[:last_name], user_info[:phone_number], user_info[:address]
可能是
user_id, first_name, last_name, phone_number, address = user_info.values_at(:user_id, :first_name, :last_name, :phone_number, :address)
虽然它也很长,但我知道
答案 1 :(得分:1)
您也可以使用OpenStruct,如下所示:
o=OpenStruct.new(user_info)
然后,你可以像这样访问变量:
o.user_id
等