Scala for循环与枚举产量问题

时间:2013-05-24 10:33:08

标签: scala

我正在尝试使用Scala中的funky for循环遍历Case类对象列表:

case class SimpleCredits(credits: CreditType, quantity: Int)

val s = for{
   i <- Users.findCreditsByUser(u)
   t <- i.credits
   if(i.quantity > 0)
} yield t

Intellij不喜欢结果,我无法弄清楚原因。

当我尝试编译它时,我得到:

value filter is not a member of enums.CreditType.CreditType

我用谷歌搜索了这个帖子,看到了几个有类似问题和可能包袱的人的帖子,却找不到具体的东西。

那么,它应该起作用还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

我认为你想要实现的是:

val s = for{
   i <- Users.findCreditsByUser(u)
   if (i.quantity > 0)
   t = i.credits
} yield t

或等效地:

val s = for{
   i <- Users.findCreditsByUser(u)
   if(i.quantity > 0)
} yield i.credits