我将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
的值。
我确定我在这里遗漏了一些东西,但我还没有能够从文档中弄清楚该做些什么。
答案 0 :(得分:1)
您可以输入p i
和p j
来手动检查它们。
这让我很生气,所以我暂时插入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"