puts WINNING_ROWS.each{ |solution| "[ #{solution.map{ |space| "#{space}"}} ]"}
私は上記を実行しようとしましたが、後でそれぞれの値を改行文字でリストします。Ruby:2D配列をどのように印刷しますか?
私は出力を取得しようとしている:
[stuff,in,row,1]
[stuff,in,row,2]
etc
puts WINNING_ROWS.each{ |solution| "[ #{solution.map{ |space| "#{space}"}} ]"}
私は上記を実行しようとしましたが、後でそれぞれの値を改行文字でリストします。Ruby:2D配列をどのように印刷しますか?
私は出力を取得しようとしている:
[stuff,in,row,1]
[stuff,in,row,2]
etc
一つは、このような何かを行うことができます:
WINNING_ROWS = [[1,2,3],[4,5,6]]
WINNING_ROWS.map { |x| x.inspect }.join("")
あなたは
これはデバッグのためだけであれば、通常の方法では
p expression
または
puts expression.inspect
のいずれかを言うことです。 ..同じことです。
pp
も使用できます。
require 'pp'
pp expression
pp(expr)
あなたは配列のデフォルトのto_sに依存しています。 #eachは配列自体を返します。あなたがやっていることは、WINNING_ROWSを置くのと同じです。また、putsは最後に改行が追加されているので、putsのようにカーネルモジュールでは使用できないwriteを使用しなければならない場合は、STDOUT出力で直接呼び出す必要があります)。
WINNING_ROWS = [[1,2,3],[4,5,6]]
WINNING_ROWS.each {|row| STDOUT.write row.inspect }
=> [1, 2, 3][4, 5, 6]
# or this may work for you as well
# STDOUT.write WINNING_ROWS.inspect
.inspectがSOOOO便利です要求されたとして、あなたにフォーマットされた文字列を取得します
は、おそらくのような何かをしたいです。 ..聖なる牛。 – NullVoxPopuli
@DerNaliaスタックオーバーフローオーバーフローオーバーフロー? –