问题描述
|
我的解决方案就像
if (not (defined?(@results).nil?))
@results += \"run\"
else
@results = \"run\"
end
但我相信有一些简单的事情...
解决方法
我可能会这样:
@results = @results.to_s + \"run\"
之所以有效,是因为NilClass
定义了返回零长度字符串的#to_s
方法,并且实例变量自动初始化为nil。
, 你是对的:
(@results ||= \"\") << \"run\"
为了明确起见,a || b
是a ? a : b
,这意味着如果\7ѭ是\“ truthy \”(不是false或nil),它将尝试使用值a
,但是如果a
是\“ falsey \”,则使用b
。因此,使用||=
仅在变量为nil时更新变量。然后,<<
附加字符串。