Scala整理

Scala

Scala 重要内容

Scala:
object-oriented and functional programming
对象(类)与函数 都是一等公民,都可以独立存在和运行
建立JVM之上一门语言
    *.scala  -> *.class  -> JVM 
官网:
    https://www.scala-lang.org/
下载:
    https://www.scala-lang.org/download/all.html
兼容性:
    2.11.x   2.10.x   2.9.x  都是相互不同兼容
Scala 提供交互式命令行
    类似Python或bin/hive
    REPL:
        Read -> Evaluate -> Print -> Loop

Scala 中一切皆对象,不存在原生数据类型,
val addNum = 12 + 30
等价于
val addNum2 = 12.+(30)

Scala 中不支持三种操作符
++  --  ?:

Scala 中主要掌握知识    

Scala中的流程控制

While

image_1cifbhabi1b3piqckgq1fihr47j.png-31.4kB

for循环

image_1cifbaf7c416r9f1i521pgihas6c.png-44kB
image_1cifbbuce1i6l1e5c16981sft16a56p.png-39.9kB

image_1cifbfs8r103n1ue61o6odvlhp276.png-34.2kB

Breaks 跳出循环

image_1cifbis3k17i2qkf3nstcpoet80.png-43.1kB

Scala中的集合

-1. 可变集合
    ArrayBuffer
    scala.collection.mutable.ListBuferr
    scala.collection.mutable.Set
    scala.collection.mutable.Map
-2. 不可变集合
    scala.collection.immutable
    Array\List\Set\Map 
-3. 使用集合类的时候,默认情况下使用不可变的集合
Array
创建Array的两种方式

image_1cifaisp0ha61rp6vug39b13d41g.png-40.4kB
image_1cifajml91ffnb3o7ujqn61msk1t.png-17.2kB

Array的添加与转换

image_1cifaokvs11av19okpq911ak197g2a.png-22.8kB

元组的定义

image_1cifaqk6v1n3f114n1hfkce05nm2n.png-56.4kB
image_1cifar07binoqt91ktb6c61leg34.png-13.6kB

List
创建不可变list

image_1cifaujp4sva52d1pnp18811cvp3h.png-45.9kB
image_1cifav68o1iat1trfac4u9p1dv93u.png-19.5kB

可变list

image_1cifb0js6ln719ji3qibo78po4b.png-43.9kB
image_1cifb2r2p14r81p2i1thm53ie5o4o.png-31kB

排序

image_1cifb5fe34pe35qm9jiba180l55.png-41.9kB

分组

image_1cifb6m7h1q9q4tq71uts1ug55i.png-28.5kB

聚合

image_1cifb75v711clq1ddgmngtran5v.png-44.8kB

Set
最大作用 去重

image_1cifbkk6etlurvvg5b1aiaucm8d.png-42.7kB
image_1cifbl34i3v0bsbt0nvr3d778q.png-33.9kB

Map
创建

image_1cifbol746mibjg16s091k1s8v97.png-65.5kB

遍历

image_1cifbpdfhg3gmd811v9upl1mkn9k.png-28.6kB

可变Map创建

image_1cifbqc921utid3p1pps6551t43a1.png-32.7kB

map() 方法  

image_1cifbte16103p1ee313cfpnr26cae.png-38.8kB

flatMap()

image_1cifbv5fnucc1pa410ol15k71f0har.png-35.8kB

Scala中的函数
简单的定义

image_1cifc4aukmi68fa19r11gbf1r1bbo.png-40.7kB

赋值 _

image_1cifc4sld1q6a196b1lti1jhvmmmcl.png-5kB

函数写法的简化 省略

image_1cifc72ok1qke1pmjpsvfuiepcd2.png-32.5kB

默认值

image_1cifc8gh6uib140rrpvblneptdf.png-42.2kB

可变参数

image_1cifcahtm1q0o1cjmcke1fgs1b2uds.png-35.1kB

高阶函数!!!!
即函数中的参数也是函数

image_1cifcdnin1o60141dvpa13h43jke9.png-33.7kB

OOP 面向对象、函数编程

类的简单创建与调用
定义类

image_1cifchi5enu01eon1i1o1kfl1cm8em.png-91.9kB

调用类

image_1cifciomrrt9k3l1bnt1eq61j1nf3.png-69.7kB

类的构造方法
*在SCALA中构造方法分为两种:
 -1.主构造方法:在创建类的对象的时候,进行初始化操作
  只有一个
 直接 紧跟 类Class 后面, 如果没有属性的话, 可以省略()
 -2.附属构造方法
  多个
  -a.在calss类中的方法,但是方法的名称必须是this
  -b.每个附属构造方法第一行代码,必须调用主构造方法或已经存在的附属构造方法
  -c.附属构造方法的参数 不能与主构造方法的参数一致

image_1cifcocqa16qdkqcug16ia1jq5fg.png-41.3kB
image_1cifcoqrqsktqmscgg26jupft.png-20.2kB

伴生对象

image_1cifcsn2469vfil3bo1alm8f8ga.png-105.3kB

image_1cifcuq5d1fvl93gup1gvrc7ign.png-86.7kB

Trait (类似java接口)
创建

image_1cifd0it9108q1m3q1iit1ovhld8h4.png-50.9kB

继承

image_1cifd40lc7vo1h05187ggrr1j90hh.png-102.7kB

异常处理,模式匹配
模式匹配类似于java中的switc case 功能比java的强大很多

image_1cifd5qeu7mvuap10lr1dh91pg2hu.png-49.1kB

基本使用

image_1cifdc4tl2331htm1n7f1hgg1vglib.png-32.9kB
image_1cifdd9b091c16no1dnh1b1fjnkio.png-8.9kB

元组使用

image_1cifdf173bgbfqhpro17b8tclj5.png-25.4kB
image_1cifdga1kbo01bsc2c4no31rilji.png-1.9kB

case calss 样例类
会自动生成伴生对象,不在需要new方法
模式匹配,也弄匹配样例类

image_1cifdnr9j1tmnotgec9iibvgejv.png-73.3kB

隐式函数
举一个超人打怪兽例子

image_1cifdvcqa1laadaf1f501mr9trgkc.png-30.6kB
image_1cife20e05o372e10uo187dq7kp.png-63.1kB

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值