在nil的情况下分配替换值

Ric*_*ard 4 ruby

我有几个变量:

name
age
address
phone
social_security
email
weight
Run Code Online (Sandbox Code Playgroud)

并且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]
Run Code Online (Sandbox Code Playgroud)

但是,在某些情况下,右侧的数据不存在.

除了为数组中的每个元素写这样的东西之外,有什么更优雅的方法来处理这个问题?

if !personal_detail[0].nil?
 name = personal_details[0]
else
 name = ""
end
if !personal_detail[1].nil?
 address = personal_details[1]
else
 address = ""
end
Run Code Online (Sandbox Code Playgroud)

Tel*_*hus 12

您可以这样做,因为nil值返回false并且||仅在左侧为false时才评估右侧:

name = personal_details[0] || ''
Run Code Online (Sandbox Code Playgroud)