在紅寶石中打印多維數組的首選方法是什麼?如何在ruby中打印多維數組?
例如,假設我有這樣的二維數組:
x = [ [1, 2, 3], [4, 5, 6]]
我嘗試打印:
>> print x
123456
還什麼不工作:
>> puts x
1
2
3
4
5
6
在紅寶石中打印多維數組的首選方法是什麼?如何在ruby中打印多維數組?
例如,假設我有這樣的二維數組:
x = [ [1, 2, 3], [4, 5, 6]]
我嘗試打印:
>> print x
123456
還什麼不工作:
>> puts x
1
2
3
4
5
6
如果你只是在尋找調試輸出,易於閱讀, 「P」 是非常有用的(它調用檢查()陣列上)
p x
[[1, 2, 3], [4, 5, 6]]
遍歷「封閉」數組中的每個條目。該數組中的每個條目都是另一個數組,因此重複該數組。打印。或者,使用join
。
arr = [[1, 2, 3], [4, 5, 6]]
arr.each do |inner|
inner.each do |n|
print n # Or "#{n} " if you want spaces.
end
puts
end
arr.each do |inner|
puts inner.join(" ") # Or empty string if you don't want spaces.
end
PrettyPrint ,附帶了紅寶石,會爲你做到這一點:
require 'pp'
x = [ [1, 2, 3], [4, 5, 6]]
pp x
但是在Ruby中1.9.2輸出(你應該嘗試使用,如果可能的話),這樣將自動:
ruby-1.9.2-p290 :001 > x = [ [1, 2, 3], [4, 5, 6]]
=> [[1, 2, 3], [4, 5, 6]]
ruby-1.9.2-p290 :002 > p x
[[1, 2, 3], [4, 5, 6]]
=> [[1, 2, 3], [4, 5, 6]]
的「根本」的方式做到這一點,那IRB做它的方式,是打印的#inspect
輸出:但是
ruby-1.9.2-p290 :001 > x = [ [1, 2, 3], [4, 5, 6]]
=> [[1, 2, 3], [4, 5, 6]]
ruby-1.9.2-p290 :002 > x.inspect
=> "[[1, 2, 3], [4, 5, 6]]"
pp
產生輕微更好的輸出。
哦,我以爲你的意思是一個網格。沒關係。 –