我有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'

Note there is only 1 space between 'Steve' 和 'slow'.

我该怎么做(最好是一行)?

推荐答案

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

Ruby相关问答推荐

在Glade创建的UI中以编程方式填充GtkTreeView

Rbenv说未安装已安装的版本

如何在 Ruby 中反转数字的字节顺序

令人惊讶的有效 Ruby 语法:% 无处不在

有没有一种简单的方法可以在 Ruby 中获取图像尺寸?

如何使用 Ruby 的 optparse 解析没有名称的参数

当没有传入块时,是否有更好的方法来防止屈服?

构造Ruby的现代方法是什么?

Ruby 对象打印为指针

如何在 Ruby 中初始化 Hash 中的数组

出于调试目的,如何打印有关 NET:HTTPRequest 的信息?

从索引到字符串结尾的子字符串的Ruby成语

在 Ubuntu 上安装 Ruby 1.9.1?

是否有等效于 `Array::sample` 的哈希值?

从Electron邮件中删除签名和回复

线程安全:Ruby 中的类变量

STDERR.puts 与 Ruby 中的 puts 有何不同?

有没有办法从该实例内部为 Ruby 类的实例创建方法?

rails 控制台、RVM 和 readline 的问题

运行 Ruby 命令时,PATH 中不安全的世界可写目录 /Users/username,模式 040777