روبي: كيفية جعل IRB بنية الطباعة لصالحة وتجزئات

StackOverflow https://stackoverflow.com/questions/703049

  •  22-08-2019
  •  | 
  •  

سؤال

وعندما جعل مجموعة جديدة / التجزئة في على 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"]} 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top