如何使用pry逐步执行循环并查看迭代器的值?

我将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" 

我想在循环中的每次迭代中查看ij的值。

我确定我在这里遗漏了一些东西,但我无法从文档中弄清楚该怎么做。

您可以键入pipj来手动检查它们。

那会让我发疯,所以我会插入puts i并暂时puts j

不要在Ruby中使用for循环。 相反,我们根据我们的目的使用eachuptodowntotimes 。 此外,除非您强制代码提前退出,否则在方法结束时不需要显式return语句。

我写的代码类似于:

 require 'pry' def longest_palindrome(s) max_palindrome_len = 0 s.length.times do |i| binding.pry i.upto(s.length) do |j| binding.pry substr = s[i..j] if substr == substr.reverse && substr.length > max_palindrome_len max_palindrome_len = substr.length end end end max_palindrome_len end longest_palindrome "racer"