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

我的解决方案就像

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

但我相信有一些更简单的东西……

我可能会这样做:

 @results = @results.to_s + "run" 

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

你是对的:

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

澄清a || b a || ba ? a : b a ? a : b ,意思是它试图使用值a如果a是“truthy”(不是false或nil),但是如果a是“falsey”则使用b 。 因此,如果变量为nil,则使用||=仅更新变量。 然后, <<追加字符串。