J'ai quelques variables:Attribution d'une valeur de remplacement en cas de nul
name
age
address
phone
social_security
email
weight
Et un tableau appelé personal_details
avec chacune de ces valeurs dans les positions 0-6.
J'assignez des valeurs comme ceci:
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]
Dans certains cas, cependant, les données sur le côté droit n'existe pas.
Quelle est une façon plus élégante de gérer cela que d'écrire quelque chose comme ça pour chaque élément du tableau?
if !personal_detail[0].nil?
name = personal_details[0]
else
name = ""
end
if !personal_detail[1].nil?
address = personal_details[1]
else
address = ""
end
Êtes-vous sûr que 'fetch' fonctionne comme vous le pensez? De la docs: Essaie de retourner l'élément à l'index de position. Si l'index * se trouve en dehors du tableau * ... renvoie default. Une expérience rapide avec 'irb' suggère qu'il ne retourne pas la valeur par défaut s'il y a un élément * any * à l'index demandé (même' nil'). Donc ça ne marche pas dans le cas de l'OP, puisqu'il ne s'interroge pas sur les objets au-delà de la fin de son tableau. – Telemachus
Vous avez raison - j'avais testé le code et je n'ai vu rien affiché et je supposais juste qu'il retournait la chaîne vide. Au lieu de cela, il revenait à zéro qui a semblé la même au premier coup d'œil. Je vais éditer la réponse. –