zoukankan      html  css  js  c++  java
  • scala(一种静态语言)

    语法:

      关键字 val(表示:值) 不可变

        ex:  val a:Int=1   或者   val a=1(会自动识别类型,无基本类与包装类之分)

            输出:a:Int=1

      关键字var

        ex:  var a:Int=1

            输出: a:Int=1

      方法(API)定义:def 方法名(参数:类型,...,参数:类型):返回值={函数体}    (备注:在{}内的最后一行就是返回值

              API格式:方法名:(参数:类型,...,参数:类型)返回值(ex:  add:  (x:   Int,y:    Int)Int  )

              当不需要返回值类型为:def 方法名(参数:类型,...,参数:类型=默认参数):返回值(Unit){函数体}    ex:add:  (x:   Int,y:    Int)Unit  (Unit代表返回值为空

      def add(x :Int*)={函数体}    可变长参数,备注类型必须都是Int

      函数调用方式:如果一个函数不需要传参时,函数的()可以省略,直接方法名调用。但是:当def是没有()时,调用的时候不能有()

      所有immutable包下面的都是不可变的,mutable包下面都是可变的。

      

      scala是没有static的,使用object来实现(object没有同名的class(伴生类)则称之为游离对象)

      1.to(10)         1 until 10      range(1,2)   range(1,10,2)

      for(i<-1 to 10)  println(i)       for(i<-1 to 10 if(i%2==0))  println(i)

      var array = Array(1,2,3,4)      array(0)

      lazy:   懒加载,当真正调用的时候才会加载

      

      占位符:_

      元组:ex:val a=(1,2,3,4)                                             ****************************************

          访问方式:a._1,a._2

      类加()调用的是object中的apply方法,对象加()调用的是class中的apply方法

      对象 match {

      }

      case class      默认类参数是val类型

      val  _add = add _                _add:表示函数指针        _add:(Int,Int) => Int

      匿名函数:(x:Int,y:Int)=>x+y    res1(1,2)       map(_*2)等价于map((x:Int)=>x*2)

      1::2::3::Nil                 返回的是List

      flatern  flatMap

      <:  , 向上看(上界)能看到什么。ex:[T<%Comparable[T]],T类型向上看必须能看到Comparable特质

      scala隐式转换的规则:

  • 相关阅读:
    solrCloud设置Tomcat jvm内存解决内存溢出的问题
    JAVA 将图片转换为Base64编码
    希望这是一个新的开始,也是一个好的开端
    最全华为鸿蒙 HarmonyOS 开发资料汇总
    iPhone X适配方案
    前端程序员经常忽视的一个JavaScript面试题
    vs for Mac 升级后编译原项目提示找不到“.NETFramework,Version=v5.0”的引用程序集
    使用FastReport的BarCode2D控件生成含中文的PDF417条形码
    vs for Mac中的启用Entity Framework Core .NET命令行工具
    64位Windows7升级IE11后无法启动的解决办法
  • 原文地址:https://www.cnblogs.com/jswang/p/9003709.html
Copyright © 2011-2022 走看看