• scala学习笔记(8)


    1.trait

    -------------------------------

     如果只有一个trait就使用extends进行扩展,如果是多个,就使用with对生于trait进行扩展

     trait logger1{
    
        def log()= println("hello log1");
      }
    trait logger2{
    
        def log()= println("hello log2");
      }
      class Dog with logger{      }

     

    //trait之间也存在扩展

      trait logger2 extens logger1{}

    //with trait 是需要对每个trait都使用trait

    自身类型

    ----------------------------------------------

      this:类型=>

    操作符

    ---------------------------------

      1.中置操作符

        a 标识符 b    //标识符代表一个有两个参数的方法(一个隐式的参数和一个显示的参数)

        如:1 + 2<===> 1.+(2)    //这样的表达式叫做中置(infix)表达式,因为操作符位于两个参数之间

      2.单元操作符

      scala> 1 toString  //单元操作符

      scala> +: -:  !:boolean取反    ~:按位取反       //

      赋值操作符

      $scala>+=  /  -=  *=   /=

      结合性:

        当有一些列的相同优先级的操作符的时候,操作符的结合性决定了其实从左到右求值还是从右到左求值

        scala中所有的操作符都是左结合的,除了:(1)以冒号:结尾的操作符;(2)赋值操作符;(3)Nil:空集合

        在Nil结合中追加元素:1::Nil    //List[Int]=List(1)    1::2::Nil    //List[Int] = List(1,2)

        运算顺序:val list=2::Nil    1::list    //返回值:List[Int] = List(1,2)

        //:表示右结合,优先级从右边开始

        scala>val l = Nil      //构造空集合

        scala>1::2::Nil      //

    3.apply和update方法

    ---------------------------------------------------------

      Array(100)    //Array.apply(100);

      Array(100) = 200  //Array.update(200)  进行更新操作

      unapply(),是apply的逆向过程

      object Dog{

        //

        def apply(str):Int = {str.Int+100}

        def unapply(i:Int) = {(i-100).toString}

      }

    upapply(),是apply()的逆向过程

    ------------------------------------------------

      class Fraction(n:Int,d:Int){

      }

      object Fraction{

        def apply(n:int,d:int)=new Fraction(n,d)  

      }

  • 相关阅读:
    JAVA生成问答式验证码图片,支持加减算法
    kaptcha Java验证码
    字母数字、字母、汉字验证码 (java)
    java实现点击图片文字验证码
    java随机生成字符串(字符随机生成类 生成随机字符组合)
    分布式和集群的区别
    【nginx】配置Nginx实现负载均衡
    【Tomcat】一台电脑上运行多个tomcat
    【nginx+tomcat集群】Nginx1.12.2+Tomcat7集群+负载均衡+Session共享
    【nginx】nginx的安装及测试
  • 原文地址:https://www.cnblogs.com/bigdata-stone/p/9684615.html
Copyright © 2020-2023  润新知