⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 overloads.scala

📁 JAVA 语言的函数式编程扩展
💻 SCALA
字号:
//############################################################################// Overloads//############################################################################// $Id: overloads.scala 6644 2006-03-09 12:12:37Z odersky $//############################################################################object Ops {    def - = 0;    def -(c: Char) = c;    def -(i: Int) = i;    def -- = 0;    def --(c: Char) = c;    def --(i: Int) = i;}object Funcs {    def foo = 0;//  def foo() = 1;    def foo(c: Char) = 2;    def foo(i: Int) = 3;}object M1 {    def f[A](x: A) = 11;    def f[A <: Ordered[A]](x: Ordered[A]) = 12;}object M2 {    def f[A <: Ordered[A]](x: Ordered[A]) = 21;    def f[A](x: A) = 22;}object overloads {    def check(what: String, actual: Any, expected: Any): Unit = {        val success: Boolean = actual == expected;        Console.print(if (success) "ok" else "KO");        var value: String = if (actual == null) "null" else actual.toString();        if (value == "\u0000") value = "\\u0000";        Console.print(": " + what + " = " + value);        if (!success) Console.print(" != " + expected);        Console.println;        Console.flush;    }    def - = 0;    def -(c: Char) = c;    def -(i: Int) = i;    def -- = 0;    def --(c: Char) = c;    def --(i: Int) = i;    def test: Unit = {        check("-('a')", -('a'), -97);        check("-(97)", -(97), -97);        check("Ops.-('a')", Ops.-('a'), 'a');        check("Ops.-(97)", Ops.-(97), 97);        check("--", --, 0);        check("--('a')", --('a'), 'a');        check("--(97)", --(97), 97);        check("Ops.--", Ops.--, 0);        check("Ops.--('a')", Ops.--('a'), 'a');        check("Ops.--(97)", Ops.--(97), 97);        check("Funcs.foo", Funcs.foo, 0);//      check("Funcs.foo()", Funcs.foo(), 1);        check("Funcs.foo('a')", Funcs.foo('a'), 2);        check("Funcs.foo(97)", Funcs.foo(97), 3);        val x = 3;        check("M1.f(" + x +")", M1.f(x), 11);        check("M2.f(" + x +")", M2.f(x), 22);//       val y = new scala.collection.mutable.Stack[Int];//      check("M1.f(" + y +")", M1.f(y), 12);//      check("M2.f(" + y +")", M2.f(y), 21);    }}//############################################################################object Test {  def main(args: Array[String]): Unit = {    overloads.test;  }}//############################################################################

⌨️ 快捷键说明

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