0

我在编写一个 ruby​​ 函数时遇到了一个奇怪的问题,该函数用于从通过解析 JSON 字符串创建的哈希中删除不需要的项目。当我在函数中包含 pry 语句时,该函数将返回我所期望的,如本文底部所示。当我删除 pry 语句时,该函数会返回其他内容。我不太确定为什么会这样,我想我会在这里问,同时我试图找出解决我问题的替代方案。

下面,slides 是一串空格分隔的整数,因此 slides.split(' ') 返回一个整数数组。幻灯片组是经过解析的 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
4

1 回答 1

1

Ruby 中的方法返回最后评估的值(除非另有说明)并binding.pry调用返回nil

于 2018-10-10T17:39:57.347 回答