如何将字符串附加到存在与否的变量?

时间:2011-06-01 04:59:37

标签: ruby

我的解决方案就像

if (not (defined?(@results).nil?))
  @results += "run"
else
  @results = "run"
end

但我相信有更简单的事情......

2 个答案:

答案 0 :(得分:24)

我可能会这样做:

@results = @results.to_s + "run"

这是有效的,因为NilClass定义了一个返回零长度String的#to_s方法,因为实例变量会自动初始化为nil。

答案 1 :(得分:12)

你是对的:

(@results ||= "") << "run"

要澄清一点,a || ba ? a : b,这意味着如果a是“真实的”(非假或零),它会尝试使用值a但是使用{ {1}}如果b为“falsey”。因此,如果变量为nil,则仅使用a更新变量。然后,||=附加字符串。

相关问题