栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

复习Scala篇

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

复习Scala篇

Scala是基于JVM的语言。

六大特征:

1.与java无缝整合

2.类型推断

3.支持分布式和并发Actor

4.Trait特质特性

5.模式匹配match

6.高阶函数

类和对象:

当new类时,类中除了方法不执行其他都执行;object相当于java中的单例,定义的都是静态的;class可以传参,传参就有默认的构造;重写构造时,第一行要先调用默认的构造;for,(1 to 10),(1 until 10),(for(i<-1 to 10)),while... do ... while i += 1 i -= 1,if...else...

方法和函数:

1.方法的定义:def方法定义,方法中传参要指定类型,方法自己可以推断返回类型,默认将方法体中最后一行计算的结果当做返回值返回。如果要写return返回值,要显式的声明方法体的返回值类型。如果方法体可以一行搞定,可以将方法体“{。。。}”。如果方法名称和方法体之间没有“=”无论方法体返回什么值都会被丢弃,返回Unit。

2.递归方法:要显式的写出返回值类型。

3.参数有默认值的方法:def fun(x:Int=100)

4.可变长参数的方法:def fun(x:String*)

5.匿名函数:()=>{...},可以赋值给一个变量,下次调用变量就是使用的这个匿名函数。

6.偏应用函数

7.嵌套方法

8.高阶函数:函数的参数是函数,函数的返回是函数,函数的参数和返回都是函数。

9.柯里化函数:高阶函数的简化

String:就是java中的String

集合:Array,ArrayBuffer,ListBuffer,Set 可变,不可变,Map:可变,不可变,val option = map.get(key),map.keys,map.values,val value = map.get(key).getOrElse(...),map中的元素就是一个个的二元组。

List:val list = List[String](....),map,flatMap

Tuple:元组,最多支持22个元素,val iter = tuple.prducelterator,二元组中有个swap翻转,元组取值 tuple._xx

Trait:相当于java中的接口和抽象类结合。可以在Trait中定义方法实现与不实现,变量和常量都可以。Trait不可以传参。类继承trait第一个关键字使用extents,之后使用with。

模式匹配:match....case....,模式匹配中既可以匹配值,也可以匹配类型:case 123=>{...},case i:Int =>{...}。模式匹配中,从上往下匹配,匹配上了就自动终止。模式匹配过程中会有值转换。case _=>{...}什么都匹配不上最后匹配,要写到最后。模式匹配match ...case...相当于一大行。

样例类:case calss,样例类可以new也可以不new,样例类中参数,默认有getter setter方法,对外可见。

偏函数:PartialFunction[匹配的类型,匹配上传出的类型],偏函数相当于java中的switch ...case...,只能匹配相同类型。

隐式转换:隐式值与隐式参数,隐式方法,隐式类。

Actor模型:ActorModel是消息传递模型,基本特征就是消息传递;消息发送是异步的;非阻塞的,消息一旦发送成功,不能修改;Actor之间传递时,自己决定去检查消息,而不是一直等待,是异步阻塞的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号