روبي: كيفية جعل IRB بنية الطباعة لصالحة وتجزئات
سؤال
وعندما جعل مجموعة جديدة / التجزئة في على IRB ، أو فإنه يطبع خارج بنسق جميل لإظهار الهيكل، السابق.
["value1", "value2", "value3"]
{"key1" => "value1"}
و... ولكن عندما أحاول طباعة المتغيرات بي باستخدام puts
، أحصل عليها انهار:
value1
value2
value3
key1
value1
وأجمع أن puts
ليس الأمر المناسب لما أريد، ولكن ما هو؟ أريد أن أكون قادرا على عرض المتغيرات في بلدي على IRB في شكل الأول، لا الثاني.
المحلول
ويمكنك إما استخدام الأسلوب inspect
:
a=["value1", "value2", "value3"]
puts a.inspect
وأو حتى أفضل، واستخدام ليب ص (طباعة جميلة):
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
ولكنه يعالج التجزئة المتداخلة والمصفوفات جميل زائد ألوان لهم في الصالة باستخدام 'ا ف ب' بدلا من 'ع' ليضع الإخراج.
ويمكن أن تشمل أيضا وضعه في ~ / .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 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"]}