Я вставил binding.pry
в свою программу Ruby и пытаюсь просмотреть значение итератора на каждой итерации моего цикла:
require 'pry'
def longest_palindrome s
max_palindrome_len = 0
for i in (0..s.length)
binding.pry
for j in (i..s.length)
binding.pry
substr = s[i..j]
if substr == substr.reverse && substr.length > max_palindrome_len
max_palindrome_len = substr.length
end
end
end
return max_palindrome_len
end
longest_palindrome "racer"
Я хочу просмотреть значения для i
и j
на каждой итерации в цикле.
Я уверен, что я просто что-то упускаю здесь, но я не смог понять, что делать из документации.
puts
. Например, вставьте строкуputs "i = #{i}"
послеfor i in (0..s.length)
и"puts " j = #{j}"
послеfor j in (i..s.length)
. (Обратите внимание, что я сделал отступ от последнегоputs
на пару пробелов, чтобы его было легче читать.)... - person Cary Swoveland   schedule 11.02.2016arr.group_by.with_index {...}
и вы хотите проверить элементы перечислителяarr.group_by
. Вы можете сделать это следующим образом:arr.group_by.tap { |enum| puts "arr.group_by.to_a = #{enum.to_a}" }.with index {...}
. Это работает, потому что tap возвращает свой получатель, а я не изменил получателя в блокеtap
. - person Cary Swoveland   schedule 11.02.2016