当我在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
您可以做的另一件事是使用y
将输入转换为Yaml 的方法.这产生了相当不错的输出......
>> 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"}