Spark--Scala基础知识总结(第二章)

目录

了解Scala语言

 了解Scala特性

一、安装与运行Scala

1.1 在网页上运行Scala

1.2 Scala环境设置 

1.3 Scala安装

1.3.1 在Linux和macOS系统上安装Scala

1.3.2 在Windows系统上安装Scala 

1.4 Scala运行

二、定义函数识别号码类型

2.1了解数据类型

2.1.1 Scala常用数据类型​编辑

2.1.2 定义与使用常量、变量

2.1.3使用运算符

​2.1.4 定义与使用数组

2.1.5 定义与使用函数

2.1.6 匿名函数 

2.1.7 高阶函数—函数作为参数 

2.1.8 高阶函数—函数作为返回值

 三、循环控制

3.1 for循环

3.2 while循环

四、面向对象编程

4.1 面向对象编程基础

4.1.1 包

4.1.2 导入

4.1.3 类

4.1.4 属性

4.1.5 访问权限

4.1.6 方法

小知识点:

4.1.7构造方法

4.2 面向对象进阶

4.2.1 继承

4.2.2 抽象

4.2.3 特质

五、集合

5.1 数组

5.1.1 不可变数组

5.1.2 可变数组

5.2 Seq集合

5.2.1 不可变List

5.2.2 可变List

5.3 Set集合

5.3.1 不可变Set

5.3.2 可变Set

5.4 Map集合

5.4.1 不可变Map

5.4.2 可变Map

5.5 元组

5.6 常用方法

六、模式匹配

6.1 基本语法

6.2 匹配规则

6.2.1 匹配常量

6.2.2 匹配类型

6.2.3 匹配数组

6.2.4 匹配列表

6.2.5 匹配元组

6.2.6 匹配对象& 样例类

七、映射的遍历

7.1 获取映射中的key    【keySet函数/keys函数】

7.2 获取映射中的键值对  【不使用函数】 

7.3 获取映射中的value值  【values函数】


了解Scala语言

  • Scala是Scalable Language的缩写,是一种多范式的编程语言,由洛桑联邦理工学院的马丁·奥德斯在2001年基于Funnel的工作开始设计,设计初衷是想集成面向对象编程和函数式编程的各种特性。
  • Scala 是一种纯粹的面向对象的语言,每个值都是对象。Scala也是一种函数式语言,因此函数可以当成值使用。
  • 由于Scala整合了面向对象编程和函数式编程的特性,因此Scala相对于Java、C#、C++等其他语言更加简洁。
  • Scala源代码会被编译成Java字节码,因此Scala可以运行于Java虚拟机(Java Virtual Machine,JVM)之上,并可以调用现有的Java类库。

 了解Scala特性

  • 面向对象
  • 函数式编程
  • 静态类型
  • 可扩展

一、安装与运行Scala

1.1 在网页上运行Scala

  • 通过浏览器查找Scastie并进入,即可进入Scala在线运行环境
  • 进入Scastie界面后,在上窗格中输入“println("hello world")”
  • 单击“Run”按钮,输出信息将显示在下窗格中,如下图

1.2 Scala环境设置 

  • Scala运行环境众多,可以运行在Windows、Linux、macOS等系统上。Scala是运行在JVM上的语言,因此必须确保系统环境中安装了JDK,即Java开发工具包,而且必须确保JDK版本与本书安装的Spark的JDK编译版本一致,本书中使用的JDK是JDK(Java 1.8)
  • 查看Java版本

1.3 Scala安装

1.3.1 在Linux和macOS系统上安装Scala

  • 从Scala官网下载Scala安装包,安装包名称为“scala-2.12.15.tgz”
  • 将其上传至/opt目录
  • 解压安装包至/usr/local目录下
  • 配置Scala环境变量

1.3.2 在Windows系统上安装Scala 

  • 从Scala官网下载Scala安装包,安装包名称为“scala.msi”
  • 双击scala.msi安装包,开始安装软件
  • 进入欢迎界面,单击右下角的“Next”按钮后出现许可协议选择提示框,选择接受许可协议中的条款并单击右下角的“Next”按钮
  • 选择安装路径,本文Scala的安装路径选择在非系统盘的“D:\Program Files (x86)\spark\scala\” ,单击“OK”按钮进入安装界面 

  • 在安装界面中单击右下角的“Install”按钮进行安装,安装完成时单击“Finish”按钮完成安装
  • 右键单击“此电脑”图标,选择“属性”选项,在弹出的窗口中选择“高级系统设置”选项。在弹出的对话框中选择“高级”选项卡,并单击“环境变量”按钮,在环境变量对话框中,选择“Path”变量并单击“编辑”按钮,在Path变量中添加Scala安装目录的bin文件夹所在路径,如“D:\Program Files (x86)\spark\scala\bin”

1.4 Scala运行

  • Scala解释器也称为REPL(Read-Evaluate-Print-Loop,读取-执行-输出-循环)
  • 在命令行中输入“scala”,即可进入REPL,如下图
  • REPL是一个交互式界面,用户输入命令时,可立即产生交互反馈
  • 输入“:quit”命令即可退出REPL,如下图

  • 右图是一个Scala类,该类实现了两个数相加的方法
  • 如果要使用该方法,那么需要通过import加载该方法,如左图,其中,add是类名,addInt是方法名

二、定义函数识别号码类型

2.1了解数据类型

2.1.1 Scala常用数据类型

  •  Scala会区分不同类型的值,并且会基于使用值的方式确定最终结果的数据类型,这称为类型推断
  • Scala使用类型推断可以确定混合使用数据类型时最终结果的数据类型
  • 如在加法中混用Int和Double类型时,Scala将确定最终结果为Double类型,如下图

2.1.2 定义与使用常量、变量

  • 常量

        在程序运行过程中值不会发生变化的量为常量或值,常量通过val关键字定义,常量一旦定义就不可更改,即不能对常量进行重新计算或重新赋值。

  • 变量

         变量是在程序运行过程中值可能发生改变的量。变量使用关键字var定义。与常量不同的是,变量定义之后可以重新被赋值。

2.1.3使用运算符

2.1.4 定义与使用数组

  • 数组常用的方法
  • 数组的使用
  • Scala可以使用range()方法创建区间数组
  • 使用range()方法前同样需要先通过命令“import Array._”导入包

2.1.5 定义与使用函数

  • 函数是Scala的重要组成部分,Scala作为支持函数式编程的语言,可以将函数作为对象
  • Scala提供了多种不同的函数调用方式 
  • 如果函数定义在一个类中,那么可以通过“类名.方法名(参数列表)”的方式调用

2.1.6 匿名函数 

  • 匿名函数即在定义函数时不给出函数名的函数
  • Scala中匿名函数是使用箭头“=>”定义的,箭头的左边是参数列表,箭头的右边是表达式,表达式将产生函数的结果
  • 通常可以将匿名函数赋值给一个常量或变量,再通过常量名或变量名调用该函数
  • 若函数中的每个参数在函数中最多只出现一次,则可以使用占位符“_”代替参数。

2.1.7 高阶函数—函数作为参数 

  • 高阶函数指的是操作其他函数的函数
  • 高阶函数可以将函数作为参数,也可以将函数作为返回值
  • 高阶函数经常将只需要执行一次的函数定义为匿名函数并作为参数。一般情况下,匿名函数的定义是“参数列表=>表达式”
  • 由于匿名参数具有参数推断的特性,即推断参数的数据类型,或根据表达式的计算结果推断返回结果的数据类型,因此定义高阶函数并使用匿名函数作为参数时,可以简化匿名函数的写法

2.1.8 高阶函数—函数作为返回值

  • 高阶函数可以产生新的函数,并将新的函数作为返回值
  • 定义高阶函数计算矩形的周长,该函数传入一个Double类型的值作为参数,返回以一个Double类型的值作为参数的函数,如下图(9)函数柯里化
  • 函数柯里化是指将接收多个参数的函数变换成接收单一参数(最初函数的第一个参数)的函数,新的函数返回一个以原函数余下的参数为参数的函数。
  • 定义两个整数相加的函数,一般函数的写法及其调用方式 如下图 
  • 使用函数柯里化

 三、循环控制

3.1 for循环

  • 基本语法:

for ( 循环变量 <- 数据集 ) {

​ 循环体

}

这里的数据集可以是任意类型的数据集合

object ScalaLoop {
    def main(args: Array[String]): Unit = {
        for ( i <- Range(1,5) ) { // 范围集合 [1,5)
            println("i = " + i )
        }
        for ( i <- 1 to 5 ) { // [1,5]
            println("i = " + i )
        }
        for ( i <- 1 until 5 ) { // 不包含5
            println("i = " + i )
        }
    }
}
  • 循环守卫

循环时可以增加条件来决定是否继续循

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值