当我使一个新的数组/散列的 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"]} 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top