Ruby: как сделать структуру печати IRB для массивов и хэшей
когда я делаю новый массив / хэш в irb, он печатает хороший формат, чтобы показать структуру, например.
["value1", "value2", "value3"]
{"key1" => "value1"}
... но когда я пытаюсь распечатать мои переменные с помощью puts
, Я получаю их рухнула:
value1
value2
value3
key1
value1
Я понимаю puts
это не правильная команда для того, что я хочу, но что такое? Я хочу иметь возможность просматривать мои переменные в irb в первом формате, а не второй.
5 ответов:
можно использовать
inspect
способ:a=["value1", "value2", "value3"] puts a.inspect
или, еще лучше, используйте pp (pretty print) 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!
попробовать .осмотрите
>> 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"}