无法迭代枚举

时间:2013-06-11 12:52:33

标签: scala

以下是“Scala编程”一书中的一个例子

object Color extends Enumeration {
    //val Red, Green, Blue = Value
    val Red = Value("Red")
    val Green = Value("Green")
}

for (d <- Color) print(d + " ") //Error value foreach is not a member of
                                // object xxx.Color

我有Scala的最新版本。这是错误的原因吗?

2 个答案:

答案 0 :(得分:17)

这应该是:

for (d <- Color.values) print(d + " ")

foreach中曾经有一个Enumeration方法,这就是为什么只做for (d <- Color)工作的原因。但它已被弃用,然后被删除。

答案 1 :(得分:0)

foreach课程中没有方法Enumeration。如果要迭代值,则应使用方法values。因此,for (d <- Color.values) print(d + " ")会按预期打印Red Green。 看一下Enumeration类文档http://www.scala-lang.org/api/current/index.html#scala.Enumeration