如何使用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"
我想在循环中的每次迭代中查看i
和j
的值。
我确定我在这里遗漏了一些东西,但我无法从文档中弄清楚该怎么做。
您可以键入pi
和pj
来手动检查它们。
那会让我发疯,所以我会插入puts i
并暂时puts j
。
不要在Ruby中使用for
循环。 相反,我们根据我们的目的使用each
或upto
, downto
或times
。 此外,除非您强制代码提前退出,否则在方法结束时不需要显式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"