Scala学习笔记

2020-6-25 Stone Scala

一、映射Map

六、Set集合

    1、Set集合是没有重复的对象集合,所有元素都是唯一的。

    2、不可变Set集合

        

#创建空集合
val/var 变量名= Set[类型]()

Scala > val sets = Set[Int]()

#创建非空Set集合
val/var 变量名 = Set[类型](元素1,元素2,元素3)

Scala> val a = Set(5,2,1,3,2,4,6)


    3、可变Set集合

    

import scala.collection.mutable.Set

val b = Set(5,1,2,3,4)  4、获取Set集合的大小以及循环输出Set集合数据  5、添加删除元素   七、List列表

1、ListScala中最重要的、最常用的数据结构

 List列表是可以保存重复的值,也是有先后顺序的。

2、不可变List (列表元素和长度都不可变)

val/var 变量名 = List(元素1,元素2,元素3)

//使用Nil创建空的不可变列表

val/var 变量名 = Nil


3、可变List



4、toList 将一个可变列表生成不可变列表,原列表不变

5、toArray 将一个可变列表生成不可变数组,原列表不变


八、函数式编程

1、 foreach遍历

foreach(f: (A) => unit) : unit


 

2、映射 - map



3、扁平化映射 - flatMap


4、过滤 - filter


5、排序 - sort

sorted

sortBy

sortWith


6、分组 - groupBy


7、聚合 - reduce

8、折叠 - fold



九、高阶函数

1、使用函数作为参数,或者返回值为函数值的“函数”或者“方法”,称之为高阶函数。

2、函数值作为参数


3、匿名函数


4、柯里化

5、闭包


函数里面引用外部类成员变量叫做闭包



十、Scala面向对象编程

1、类的定义

scala是支持面向对象的,也有类和对象的概念


2、类的构造器

1)、主构造器:是指类名的后面跟上一系列元素

2)、辅助构造器:在类中使用this来定义。

3)、示例


十一、Scala面向对象编程之对象


1、scala中的Object

Scala中没有java中的静态成员,如果用到static变量、static方法,就要用到scala中的单例对象object

定义单例对象和定义类一样,只是把class换成object


(1). 使用object 单例对象名定义一个单例对象,可以用object作为工具类或者存放常量
(2). 在单例对象中定义的变量,类似于Java中的static成员变量
(3). 在单例对象中定义的方法,类似于Java中的static方法
(4). object单例对象的构造代码可以直接写在花括号中
(5). 调用单例对象的方法,直接使用单例对象名.方法名,访问单例对象的成员变量也是使用单例对象名.变量名
(6). 单例对象只能有一个无参的主构造器,不能添加其他参数


2、 scala中的伴生对象

在同一个scala文件中,有一个classobject同名,那么就称这个objectclass的伴生对象,classobject的半生类。

伴生对象和半生类的最大特点就是可以相互访问。

3、Scalaobjectapply方法


4、Scalaobjectmain 方法





十二、Scala面向对象编程之继承

1、继承extends

2、 overridesuper

3、isInstanceOfasInstanceOf

4、getClassclassOf

5、访问修饰符

Java中的访问控制,同样适用于scala,可以在成员前面添加private/protected关键字来控制成员的可见性。但在scala没有public关键字,任何没有被标为privateprotected的成员都是公共的。

private[this]修饰符:被修饰的成员只能在当前类中被访问。或者可以理解为:`只能通过this.来访问`(在当前类中访问成员会自动添加this.)。

protected[this]修饰符:被修饰的成员只能在当前类和当前类的子类中被访问。也可以理解为:当前类通过**this.**访问或者子类通过**this.**访问

 

6、 调用父类的constructor

7、抽象类

8、匿名内部类





 


评论(0) 浏览(986)

Copyright © 2019 by 海角孤星 京ICP备15056837号-1