Ruby:如何为数组和哈希创buildIRB打印结构
当我在irb中创build一个新的数组/散列时,它将打印出一个很好的格式来显示结构,例如。
["value1", "value2", "value3"] {"key1" => "value1"}
…但是当我尝试打印出我的variables使用puts
,我得到他们折叠:
value1 value2 value3 key1 value1
我认为, puts
不是我想要的正确的命令,但是是什么? 我想能够在第一个格式,而不是第二个在irb中查看我的variables。
您可以使用inspect
方法:
a=["value1", "value2", "value3"] puts a.inspect
或者,更好的办法是使用pp(漂亮的打印)lib:
require 'pp' a=["value1", "value2", "value3"] pp a
你可以做的另一件事是使用y
方法将input转换成Yaml。 这产生相当不错的输出…
>> data = { 'dog' => 'Flemeale', 'horse' => 'Gregoire', 'cow' => 'Fleante' } => {"cow"=>"Fleante", "horse"=>"Gregoire", "dog"=>"Flemeale"} >> y data --- cow: Fleante horse: Gregoire dog: Flemeale
漂亮的打印效果很好,但Awesome_Print的gem更好! 你将不得不require awesome_print
但它处理嵌套散列和数组美丽加上颜色他们在terminal使用'ap'而不是'p'来放置输出。
你也可以把它包含在你的〜/ .irbrc中,把它作为显示对象的默认方法:
require "awesome_print" AwesomePrint.irb!
试试看
>> a = ["value1", "value2", "value3"] => ["value1", "value2", "value3"] >> a.inspect => "[\"value1\", \"value2\", \"value3\"]" >> a = {"key1" => "value1"} => {"key1"=>"value1"} >> a.inspect => "{\"key1\"=>\"value1\"}"
您也可以使用p()方法来打印它们:
>> pa {"key1"=>"value1"}
我个人的select工具是“漂亮打印”和pp
方法
require 'pp' # <- 'Pretty Print' Included in ruby standard library pp({ :hello => :world, :this => ['is', 'an', 'array'] }) => {:hello=>:world, :this=>["is", "an", "array"]}