当你的集合有多个遍历时返回一个枚举器

主要观点:Ruby 集合通常只能为Enumerable模块定义一个#each,但二叉树等有多种有效遍历方式的集合存在问题。
关键信息:

  • 二叉树有前序、中序、后序等多种遍历方式,可作为对象的方法实现。
  • Enumerable要求集合类有#each方法,若将遍历方法别名#each,则只能按该遍历方式使用枚举方法。
  • 可使用Enumerator类返回枚举器,从遍历方法中返回,使调用者可选择遍历方式,如tree.inorder.find等。
  • 推荐在 Ruby 中创建可迭代集合时,若集合有多种有效遍历,返回Enumerator而不是包含Enumerable
    重要细节:
  • 展示了二叉树不同遍历方式的代码实现,如preorder等方法。
  • 提到Object#to_enum方法可将遍历方法构建为枚举器。
  • 推荐观看Teaching Ruby to Count视频深入了解相关内容。
阅读 9
0 条评论