boolexprs.scala

来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 62 行

SCALA
62
字号
//############################################################################// Boolean Expressions//############################################################################// $Id: boolexprs.scala 5359 2005-12-16 15:33:49Z dubochet $class Counter {  private var n: Int = 0;  def incrThen(b: Boolean) = if (b) n = n + 1;  def value = n;}object Test1 {  var flag = false;  def flip: boolean = { val tmp = flag; flag = !flag; tmp }   def run: Int = {    val c = new Counter;    c.incrThen(flip || flip);    c.value  }}object Test2 {  val a = Array(false);  def run: Int = {    val c = new Counter;    c.incrThen(true && a(0));    c.incrThen(false || Nil.length > 0);    c.value  }}//############################################################################// 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);      }    }    Console.println;  }  def main(args: Array[String]): Unit = {    check_success("Test1", Test1.run, 1);    check_success("Test2", Test2.run, 0);    Console.println;  }}//############################################################################

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?