Scala为了表达序列解析提供了一种轻量级的符号。解析式的形式如for (enumerators) yield e,其中enumerators是以分号分隔的枚举器列表。一个枚举器要么是产生新变量的生成器,要么是一个过滤器。解析式对于由枚举器生成的每一个绑定的主体e进行赋值,并且返回这些值的一个序列。
下面是示例:
1 | case class User(val name: String, val age: Int) |
这里的for循环使用了yield语句会生成一个List。因为这里的yield user.name是一个List[String]。user <- userBase是一个生成器,而if (user.age >=20 && user.age < 30)是一个守卫,用于过滤出20多岁的用户。