题
当我使一个新的数组/散列的 IRB 下,它打印出一个很好的格式来显示的结构中,前
["value1", "value2", "value3"]
{"key1" => "value1"}
...但是当我尝试打印出来使用puts
我的变量,我让他们崩溃了:
value1
value2
value3
key1
value1
据我了解,puts
不是我想什么是正确的命令,但究竟是什么?我希望能够查看我的变量 IRB 在第一格式,而不是第二。
解决方案
您既可以使用inspect
方法:
a=["value1", "value2", "value3"]
puts a.inspect
,或者甚至更好,使用PP(漂亮打印)LIB:
require 'pp'
a=["value1", "value2", "value3"]
pp a
其他提示
可以做的另一件事是使用其将输入到所述YAML方法y
。产生相当不错的输出...
>> data = { 'dog' => 'Flemeale', 'horse' => 'Gregoire', 'cow' => 'Fleante' }
=> {"cow"=>"Fleante", "horse"=>"Gregoire", "dog"=>"Flemeale"}
>> y data
---
cow: Fleante
horse: Gregoire
dog: Flemeale
在漂亮的打印效果很好,但 Awesome_Print 宝石,甚至更好!你将不得不require awesome_print
但它使用“AP”处理嵌套哈希和数组精美的色彩加上他们在终端,而不是“P”,以使输出。
您还可以在包括它的〜/ .irbrc有此作为显示对象的默认方法:
require "awesome_print"
AwesomePrint.irb!
尝试.inspect
>> a = ["value1", "value2", "value3"]
=> ["value1", "value2", "value3"]
>> a.inspect
=> "[\"value1\", \"value2\", \"value3\"]"
>> a = {"key1" => "value1"}
=> {"key1"=>"value1"}
>> a.inspect
=> "{\"key1\"=>\"value1\"}"
您也可以使用该p()方法来进行打印:
>> p a
{"key1"=>"value1"}
我的个人这种选择的工具是“漂亮打印”和pp
方法
require 'pp' # <- 'Pretty Print' Included in ruby standard library
pp({ :hello => :world, :this => ['is', 'an', 'array'] })
=> {:hello=>:world, :this=>["is", "an", "array"]}
不隶属于 StackOverflow