如果包含 Pry 调试器语句,函数将返回不同的值
Function Returning Different Values If Pry Debugger Statements Included
我编写的 ruby 函数遇到了一个奇怪的问题,该函数用于从通过解析 JSON 字符串创建的散列中删除不需要的项目。该函数将 return 当我在函数中包含 pry 语句时所期望的,如本 post 底部所示。当我删除 pry 语句时,函数 returns 是别的东西。我不太确定为什么会这样,我想在我尝试找出解决我的问题的替代方案时会在这里问。
下面,slides 是一个由 space 分隔的整数组成的字符串,因此 slides.split(' ') return 是一个整数数组。幻灯片组是经过解析的 JSON 哈希。如果需要,我可以提供一个带有 JSON 散列的文件,但尝试在此处输入它会让人感到沮丧。我认为没有必要查看散列,因为问题似乎出在 pry 及其对函数的影响上。
def selected_slides_and_groups
selected_slide_ids = slides.split(' ')
slide_groups = master_presentation.slide_groups
slide_groups.each do |slide_group|
delete_slides_from_group(slide_group, selected_slide_ids)
end
end
def delete_slides_from_group(slide_group, selected_slide_ids)
binding.pry
slide_group[:content].delete_if do |item|
if item[:type] == 'group'
delete_slides_from_group(item, selected_slide_ids)
elsif selected_slide_ids.include? item[:id]
next
else
true
end
end
binding.pry
end
Ruby return 中的方法最后计算值(除非另有说明)和 binding.pry
调用 returns nil
.
我编写的 ruby 函数遇到了一个奇怪的问题,该函数用于从通过解析 JSON 字符串创建的散列中删除不需要的项目。该函数将 return 当我在函数中包含 pry 语句时所期望的,如本 post 底部所示。当我删除 pry 语句时,函数 returns 是别的东西。我不太确定为什么会这样,我想在我尝试找出解决我的问题的替代方案时会在这里问。
下面,slides 是一个由 space 分隔的整数组成的字符串,因此 slides.split(' ') return 是一个整数数组。幻灯片组是经过解析的 JSON 哈希。如果需要,我可以提供一个带有 JSON 散列的文件,但尝试在此处输入它会让人感到沮丧。我认为没有必要查看散列,因为问题似乎出在 pry 及其对函数的影响上。
def selected_slides_and_groups
selected_slide_ids = slides.split(' ')
slide_groups = master_presentation.slide_groups
slide_groups.each do |slide_group|
delete_slides_from_group(slide_group, selected_slide_ids)
end
end
def delete_slides_from_group(slide_group, selected_slide_ids)
binding.pry
slide_group[:content].delete_if do |item|
if item[:type] == 'group'
delete_slides_from_group(item, selected_slide_ids)
elsif selected_slide_ids.include? item[:id]
next
else
true
end
end
binding.pry
end
Ruby return 中的方法最后计算值(除非另有说明)和 binding.pry
调用 returns nil
.