3

下面的代码工作正常。但它看起来很笨拙。

您如何将以下代码合并为一行?

data = Array.new
@results.each{ |result| data.push(result.get_output) }
data.join("\n")     

红宝石 1.9.3

4

3 回答 3

9

映射原始集合而不是先创建新数组:

@results.map(&:get_output).join("\n")
于 2012-06-25T01:12:45.383 回答
3

我还没有检查这个,但尝试类似:

data = @results.map{ |result| result.get_output }.join("\n")  
于 2012-06-25T01:13:18.750 回答
2
data = @results.collect(&:get_output).join("\") 
  1. 使用collect(或映射)创建数组
  2. (&:get_output),相当于`collect{|result| 结果.get_output}
  3. 链连接到结果的末尾以对其进行格式化

如果您得到空行,请compact在加入前添加。这有助于清理结果。

于 2012-06-25T01:16:29.340 回答