zoukankan      html  css  js  c++  java
  • 语法的省略不能造成编译器的歧义

    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{}  
    }
    

      

  • 相关阅读:
    C++第11课 迭代器与仿函数 (二)
    C++第11课 迭代器与仿函数 (一)
    Python语法的应用
    Python面试
    02_Python之基础编程
    01_Python之_学前准备
    Sorting It All Out (拓扑排序) poj1094
    Codeforces Global Round 13 Editorial补题
    今天做题做到了并查集相关的内容~简单介绍一下关于并查集的东西
    留言板
  • 原文地址:https://www.cnblogs.com/scala/p/3697005.html
Copyright © 2011-2022 走看看