复习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之间传递时,自己决定去检查消息,而不是一直等待,是异步阻塞的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TGKD DFN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值