3

以下のコードは正常に動作します。しかし、それは不格好に見えます。

次のコードを 1 行にまとめるにはどうすればよいですか?

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 に答える