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

Rad*_*dek 15 ruby

我的解决方案就像

if (not (defined?(@results).nil?))
  @results += "run"
else
  @results = "run"
end
Run Code Online (Sandbox Code Playgroud)

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

Dig*_*oss 25

我可能会这样做:

@results = @results.to_s + "run"
Run Code Online (Sandbox Code Playgroud)

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

  • 其中一个变体是`@results ="#{@ results} run"` (3认同)

Tom*_*Tom 12

你是对的:

(@results ||= "") << "run"
Run Code Online (Sandbox Code Playgroud)

澄清,a || ba ? a : b,意味着它试图使用值a如果a是"truthy"(不是假或零)但使用bif a是"假".||=因此,如果变量为nil,则仅使用更新变量.然后,<<附加字符串.