2013-06-11 32 views
8

Dưới đây là một ví dụ từ cuốn sách trong Lập trình ScalaKhông thể lặp qua Enumeration

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 

Tôi có phiên bản mới nhất của Scala. Đó có phải là lý do cho lỗi không?

Trả lời

17

này nên là:

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

Đã từng có một phương pháp foreach trong Enumeration, đó là lý do làm chỉ for (d <- Color) làm việc. Nhưng nó đã không được chấp nhận, và sau đó loại bỏ.

0

Không có phương pháp foreach trong lớp Enumeration. Nếu bạn muốn lặp lại các giá trị, bạn nên sử dụng phương thức values. Vì vậy, for (d <- Color.values) print(d + " ") sẽ in Red Green như bạn mong đợi. Hãy xem Tài liệu về lớp học liệt kê http://www.scala-lang.org/api/current/index.html#scala.Enumeration