温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

scala

发布时间:2020-07-06 02:35:57 来源:网络 阅读:235 作者:afeiye 栏目:大数据

模式匹配

  1. 在jdk1.7之前,Java的 switch 关键字只可以处理原生类型(int 、short 、byte 、char)和枚举类型。在jdk1.7以后,switch新增了对String类型的处理。
    scala的模式匹配则可以处理各种复杂的类型以及场景。
  2. 常量匹配、变量匹配、列表和元组匹配
    scala
    在最后一行指令中_是一个通配符,它保证了我们可以处理所有的情况。否则当传进一个不能被匹配的值的时候,你将获得一个运行时错误。
    Nil是一个空的List,定义为List[Nothing]。
    scala
    scala
  3. 类型匹配
    scala
    case 子句支持"或"逻辑,使用|即可;

闭包

闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。
闭包通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数。
比如函数:val multiplier = (i:Int) => i * factor;factor不是形式参数,而是自由变量;这样定义的函数变量 multiplier 成为一个"闭包",因为它引用到函数外面定义的变量,定义这个函数的过程是将这个自由变量捕获而构成一个封闭的函数。
scala

柯里化函数

将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第二个参数为参数的函数。
def sum(x:Int,y:Int)=x+y,柯里化之后就是def sum(x:Int)(y:Int) = x + y。
这个函数是什么意思呢? 接收一个x为参数,返回一个匿名函数,该匿名函数的定义是:接收一个Int型参数y,函数体为x+y

偏函数与偏应用函数

偏函数不是函数,Scala中的Partia Function是一个Trait,其的类型为PartialFunction[A,B],其中接收一个类型为A的参数,返回一个类型为B的结果。scala
偏函数内部有一些方法,比如isDefinedAt、OrElse、 andThen、applyOrElse

  1. isDefinedAt:判断传入的参数是否在处理范围内scala
  2. orElse : 将多个偏函数组合起来使用,效果类似case语句。scala
  3. andThen: 相当于方法的连续调用,比如g(f(x))。scala
  4. applyOrElse:它接收2个参数,第一个是调用的参数,第二个是个回调函数。如果第一个调用的参数匹配,返回匹配的值,否则调用回调函数。
    scala

偏应用函数,是指一个函数有n个参数, 而我们为其提供少于n个参数, 那就得到了一个部分应用函数。
scala

object与class

scala 中没有 static 关键字
所以 对于一个class来说,所有的方法和成员变量在实例被 new 出来之前都是无法访问的;
scala object 中所有成员变量和方法默认都是 static 的;
所以只有object中的main方法是可以直接访问的。

scala中集合

map定义:var verMap = Map[String, String]()
map添加元素:verMap += (mapKey -> categeryName)
list定义:var listNewValue: List[String] = List()
list添加元素:listNewValue :+= mulValue

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI