【发布时间】:2011-10-31 13:01:32
【问题描述】:
在 scala 中是否可以在 for 理解中专门研究 if 内的条件?我的想法是:
val collection: SomeGenericCollection[Int] = ...
trait CollectionFilter
case object Even extends CollectionFilter
case object Odd extends CollectionFilter
val evenColl = for { i <- collection if(Even) } yield i
//evenColl would be a SomeGenericEvenCollection instance
val oddColl = for { i <- collection if(Odd) } yield i
//oddColl would be a SomeGenericOddCollection instance
要点是,通过产生i,我得到了一个可能不同类型的新集合(因此我将其称为“专业化”)——而不仅仅是相同 GenericCollection 类型的过滤版本。
我问的原因是我看到了一些我无法弄清楚的东西(可以找到一个示例on line 33 of this ScalaQuery example。它的作用是为数据库创建一个查询(即SELECT ... FROM ... WHERE ...),我会在那里预计它会迭代所述查询的结果。
【问题讨论】:
-
这个问题没有多大意义。我将回答我认为被问到的问题,但请尝试改进它。
-
'For expressions' 应该会有所帮助。
-
我添加了一些内容以试图澄清这个问题,尽管您对我所问的问题的看法似乎是正确的。
标签: scala