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 пространством между 'Steve' и 'медленный'.

Как я делаю это (предпочтительно в 1 строке)?

38
задан Obromios 14 July 2017 в 00:43
поделиться

3 ответа

[name, quest, favorite_color, speed].reject(&:empty?).join(' ')
79
ответ дан 27 November 2019 в 03:11
поделиться

Попробуйте [имя, задание, любимый_цвет, скорость] .join ('') .squeeze ('')

21
ответ дан 27 November 2019 в 03:11
поделиться

Вы можете использовать инъекцию :

[name,quest,favorite_color,speed].inject("") {|k,v| v.empty? ? k : k << " " << v }.strip
5
ответ дан 27 November 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: