Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Assigning a substitute value in case of nil

Tags:

ruby

I have a few variables:

name
age
address
phone
social_security
email
weight

And an array called personal_details with each of these values in positions 0-6.

So I assign values like this:

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]

In some cases, however, the data on the right hand side does not exist.

What's a more elegant way to handle this than writing something like this for each element in the array?

if !personal_detail[0].nil?
 name = personal_details[0]
else
 name = ""
end
if !personal_detail[1].nil?
 address = personal_details[1]
else
 address = ""
end
like image 526
Richard Avatar asked Dec 05 '22 04:12

Richard


2 Answers

You could do this since a nil value returns false and || will only evaluate the right-hand side if the left-hand side is false:

name = personal_details[0] || ''
like image 104
Telemachus Avatar answered Jan 04 '23 07:01

Telemachus


name = personal_details[0] || ""
like image 45
eKek0 Avatar answered Jan 04 '23 07:01

eKek0