enums.scala
来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 82 行
SCALA
82 行
//############################################################################// Enumerations//############################################################################// $Id: enums.scala 9116 2006-11-02 08:46:39Z mihaylov $object Test1 { object WeekDays extends Enumeration { val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value } def isWorkingDay(d: WeekDays.Value) = ! (d == WeekDays.Sat || d == WeekDays.Sun); def run: Int = { val it = WeekDays filter (isWorkingDay); it.toList.length }}object Test2 { object ThreadState extends Enumeration { val New = Value("NEW"); val Runnable = Value("RUNNABLE"); val Blocked = Value("BLOCKED"); val Waiting = Value("WAITING"); val TimedWaiting = Value("TIMED_WAITING"); val Terminated = Value("TERMINATED"); } def run: Int = { val it = for (val s <- ThreadState; s.id != 0) yield s; it.toList.length }}object Test3 { object Direction extends Enumeration("North", "South", "East", "West") { val North, South, East, West = Value; } def run: Int = { val it = for (val d <- Direction; d.toString() startsWith "N") yield d; it.toList.length }}//############################################################################// Test codeobject Test { def check_success(name: String, closure: => Int, expected: Int): Unit = { Console.print("test " + name); try { val actual: Int = closure; if (actual == expected) { Console.print(" was successful"); } else { Console.print(" failed: expected "+ expected +", found "+ actual); } } catch { case exception: Throwable => { Console.print(" raised exception " + exception); exception.printStackTrace(); } } Console.println; } def main(args: Array[String]): Unit = { check_success("Test1", Test1.run, 5); check_success("Test2", Test2.run, 5); check_success("Test3", Test3.run, 1); Console.println; }}//############################################################################
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?