Подтвердить что ты не робот

Строки конкатенации Ruby и добавление пробелов

У меня есть 4 строковые переменные name, quest, favorite_color, speed, которые могут быть пустыми. Я хочу объединить их всех вместе, помещая пробелы между теми, которые не пусты. Простота кода, а то, как просто смотреть и понимать, важнее скорости.

Итак:

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

становится

'Tim destroy red fast'

и

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

становится:

'Steve slow'

Обратите внимание, что между "Стивом" и "медленным" есть только 1 пробел.

Как это сделать (желательно в 1 строке)?

4b9b3361

Ответ 1

[name, quest, favorite_color, speed].reject(&:empty?).join(' ')

Ответ 2

Попробуйте [name,quest,favorite_color,speed].join(' ').squeeze(' ')

Ответ 3

Вы можете использовать команду:

[name,quest,favorite_color,speed].inject("") {|k,v| v.empty? ? k : k << " " << v }.strip