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 + -
显示快捷键?