Для начала print_info не является стандартным ruby.Может ли быть вещь рельсов?Я не знаю.
Теперь два фактических варианта ставок vs p
выводит выходные данные, используя to_s для преобразования в строки.Он имеет особый случай для массивов, помещая каждый элемент массива в отдельную строку.Он возвращает ноль
p выводит данные, используя inspect для преобразования в строки.У него нет особого случая для массивов.Он возвращает свои аргументы по отдельности, если есть только один или в массиве, если их больше одного.
Что лучше?Это зависит от того, хотите ли вы или осмотрите.Я считаю, что p полезен в ситуациях отладки, поскольку он может «заглядывать» в значения, не требуя специального кода отладки.
Например, код:
result = my_object.my_method(arg1, arg2)
может быть снабжен как:
result = p my_object.my_method(p(arg1), p(arg2))
Все сказанное, несмотря на то, что put является более популярным, поэтому я обычно использую это.
Также не забывайте, что pp - это просто print, который выводит данные более осмысленным способом.,Перед Ruby 2.6 вам необходимо запомнить:
require 'pp'