web-dev-qa-db-fra.com

Ruby concaténer des chaînes et ajouter des espaces

J'ai 4 variables de chaîne name, quest, favorite_color, speed qui pourrait être vide. Je veux les concaténer tous ensemble, en mettant des espaces entre ceux qui ne sont pas vides. La simplicité du code, c'est-à-dire combien il est simple de regarder et de comprendre, est plus importante que la vitesse.

Donc:

name = 'Tim'
quest = 'destroy'
favorite_color = 'red'
speed = 'fast'

devient

'Tim destroy red fast'

et

name = 'Steve'
quest = ''
favorite_color = ''
speed = 'slow'

devient:

'Steve slow'

Notez qu'il n'y a qu'un seul espace entre 'Steve' et 'slow'.

Comment dois-je procéder (de préférence en 1 ligne)?

37
David Oneill
[name, quest, favorite_color, speed].reject(&:empty?).join(' ')
78
Aaron Hinni

Essayez [name,quest,favorite_color,speed].join(' ').squeeze(' ')

21
bta