博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
语法的省略不能造成编译器的歧义
阅读量:4332 次
发布时间:2019-06-07

本文共 1562 字,大约阅读时间需要 5 分钟。

package exp {    object Main {        def main(args: Array[String]): Unit = {             B[String].say("hello"); //B[String]后的括号可以省略,编译器知道这不是要用类型B而是要调用B.apply[String]             A().say("hello"); //括号省略了不知道是要用object的类型A还是A.apply()        }    }    class A    {        def say(x:String) = println(x);    }    object A    {        def apply():A = new A;    }    class B[T]    {        def say(x:T) = println(x);    }    object B    {        def apply[T]():B[T] = new B[T];    }}

  

trait Stu {        val age: Int;        lazy val x = 100 / age;    }    abstract class S {        val name: String;        def say = println(s"hello $name");    }    object Main {        def main(args: Array[String]): Unit = {            abstract class Sa extends S with Stu;            val y = new Sa() { val name = "Fred"; val age = 28 };            // val y = new S(){val name="wengmj";val age=28} with Stu;  直接这么写就不行;  怎样直接构造一个继承抽象类和特质的匿名具体类            y.say            println(y.x);        }    }

 scala 的内部类

class Outer    {        class Inner;    }    object Main {        def main(args: Array[String]): Unit = {            val o = new Outer;            val i = new o.Inner;            println(i.isInstanceOf[Outer#Inner]);                    }    }

 java 的内部类

public class Ppp {    public static void main(String[] args) {        Outer a = new Outer();        Outer.Inner b = a.new Inner(); Outer.Inner i = new Outer().new Inner();        System.out.print(b instanceof Outer.Inner);    }}class Outer{    class Inner{}  }

  

转载于:https://www.cnblogs.com/scala/p/3697005.html

你可能感兴趣的文章
编译Libgdiplus遇到的问题
查看>>
【NOIP 模拟赛】Evensgn 剪树枝 树形dp
查看>>
java学习笔记④MySql数据库--01/02 database table 数据的增删改
查看>>
两台电脑如何实现共享文件
查看>>
组合模式Composite
查看>>
程序员最想得到的十大证件,你最想得到哪个?
查看>>
我的第一篇CBBLOGS博客
查看>>
【MyBean调试笔记】接口的使用和清理
查看>>
07 js自定义函数
查看>>
jQueru中数据交换格式XML和JSON对比
查看>>
form表单序列化后的数据转json对象
查看>>
[PYTHON]一个简单的单元測试框架
查看>>
iOS开发网络篇—XML数据的解析
查看>>
[BZOJ4303]数列
查看>>
一般处理程序在VS2012中打开问题
查看>>
C语言中的++和--
查看>>
thinkphp3.2.3入口文件详解
查看>>
POJ 1141 Brackets Sequence
查看>>
Ubuntu 18.04 root 使用ssh密钥远程登陆
查看>>
Servlet和JSP的异同。
查看>>