。 就协同执行而言,从功能上可以分为行为、控制两部分,控制又可进一步细分为控制逻辑和控制状态。行为对应着如何处理目标对象,如上述代码中:行为就是将目标对象打印到控制台;控制则是如何遍历这个 elements 数组,可进一步细分为控制逻辑(顺序遍历)和控制状态(当前遍历到哪个元素)。下面将按照这个逻辑介绍不同语言中如何实现和模拟这些逻辑。 Spark Gray 在其 blog 上有一个系列文章介绍了协同执行的一些概念。 Iterators in Ruby (Part - 1) Warming up to using Iterators (Part 2) 文章第 1, 2 部分以 Ruby 语言(语法类似 Python)介绍了 Iterator 机制是如何简化遍历操作的代码。实际上中心思想就是将行为与控制分离,由语言层面的支持来降低控制代码的薄记工作。 以下内容为程序代码: def textfiles(dir) Dir.chdir(dir) Dir["*"].each do |entry| yield dir+"\"+entry if /^.*.txt$/ =~ entry if FileTest.directory?(entry) textfiles(entry){|file| yield dir+"\"+file} end end Dir.chdir(".."[img]/images/wink.gif[/img] end textfiles(“c:\”){|file| puts file } <页码:[1] [2] [3] [4] [5] [6] [7] [8] 第2页、共8页 |