caseclasses.scala
来自「JAVA 语言的函数式编程扩展」· SCALA 代码 · 共 58 行
SCALA
58 行
case class Foo(x: int)(y: int)case class Barcase class Baz(override val x: Int, y: Int) extends Foo(x)(y)abstract class Baseabstract case class Abs(x: Int) extends Baseobject M { abstract case class C(x: String) {} object C extends (String => C) { def apply(x: String): C = { println("creating C("+x+")") new C(x) {} } }}object Test extends Application { def Abs(x: Int) = new Abs(x * 2){} Abs(2) match { case Abs(4) => ; } def fn[a,b](x: a => b) = x; val f = fn(Foo(1)) (f(2): AnyRef) match { case Foo(1) => Console.println("OK") case Bar() => Console.println("NO") } (Baz(1, 2): AnyRef) match { case Baz(1, 2) => ; case Bar() => Console.println("NO") } try { Bar() productElement 3 throw new NullPointerException("duh") } catch { case x:IndexOutOfBoundsException => } M.C("hi") match { case M.C("hi") => println("OK") case _ => println("NO") } try { f(2) productElement 3 throw new NullPointerException("duh") } catch { case x:IndexOutOfBoundsException => }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?