零、本讲学习目标
- 了解Scala语言的特点
- 学会搭建Scala开发环境
- 了解命令行模式与编译模式
一、Scala简介
(一)Scala概述
- Scala是Scalable Language的简写,是一门多范式的编程语言,由联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计,设计初衷是要集成面向对象编程和函数式编程的各种特性。
- Scala是一种将面向对象和函数式编程结合在一起的高级语言,旨在以简洁、优雅和类型安全的方式表达通用编程模式。Scala功能强大,不仅可以编写简单脚本,还可以构建大型系统。
- Scala运行于Java平台,Scala程序会通过JVM被编译成class字节码文件,然后在操作系统上运行。其运行时候的性能通常与Java程序不分上下,并且Scala代码可以调用Java方法、继承Java类、实现Java接口等,几乎所有Scala代码都大量使用了Java类库。
- Scala 是完全兼容Java的,其实Scala就是在Java语言的基础上增加了一层编码的 “壳”,让程序人员可以通过函数式编程的方式来开发程序。由于Scala最终被编译为.class,所以其实本质上还是Java,所以在Scala中可以任意的调用Java的API。好处显而易见:让Jva程序员可以更无障碍的转到Scala;让原先Java的API仍然可以在Scala中使用;公司中的Java平台不用替换就可以使用Scala。
(二)函数式编程
-
函数式编程:将所有复杂的问题的解决,拆分为若干函数的处理。每一个函数可以去实现一部分功能,利用很多次函数的处理,最终解决问题。 -
函数式编程相对于面向对象编程,更加抽象,好处是,代码可以非常简洁,更多采用常量而不是变量来解决问题,这样额外带来的好处:在线程并发时,可以减少甚至杜绝多线程并发安全问题,特别适合于应用在处理高并发场景、分布式场景下的问题。函数式编程可以使用高阶函数,函数是一等公民,可以更加灵活的进行程序的编写。 -
函数式编程并不是面向对象编程的发展,而是另外一种解决问题的思路,两者之间也并没有绝对的好坏之分,在不同的场景中各有各的优缺点。
(三)Scala特性
- 在很多地方
Scala 都很像Java ,也是静态类型语言,但是比Java 更为函数式编程,这句话主要从三句话就可以理解“一切都是对象”,“一切都是函数”以及“一切都是表达式”三方面理解。
1、一切都是对象
Scala 里一切都是对象,这大概和Python 很像,因为即便是数字1 都有一系列的方法,所以我们可以调用1.toDouble 将Int 类型的1 转换为Double 类型的1 。
2、一切都是函数
- 表现为可以重载操作符,跟
Python 很像,在一定程度上Scala 是Java 和Python 生的孩子,只不过遗传基因比较大的卵子是Java 提供的,而比较小的那颗精子则是Python 提供的。
3、一切都是表达式
- 在
Scala 里,一切都是表达式,即使像if(){}else{} 这样的语句块也是有返回值的。
(四)在线运行Scala
- 通过浏览器访问:Scala在线工具
- 单击【点击运行】按钮,可以查看代码运行结果
- 大家可以对照一下
Java 的HelloWorld 程序,两者完全一一对应,相似度极高
二、Windows上安装Scala
(一)到Scala官网下载Scala
(二)安装Scala
- 双击安装程序图标,进入安装向导
- 单击【Next】按钮
- 单击【Next】按钮
- 单击【Next】按钮
- 单击【Install】按钮
- 单击【Finish】按钮,完成Scala的安装
(三)配置Scala环境变量
变量名 | 变量值 |
---|
SCALA_HOME | C:\Program Files\scala | Path | %SCALA_HOME%\bin |
- 通常Scala安装完成后会自动将Scala的bin目录的路径添加到系统Path变量中。若Path变量中无该路径,则需要手动添加。
(四)测试Scala是否安装成功
1、查看Scala版本
- 启动命令行窗口,执行
scala -version 命令,若能正确输出当前Scala版本信息,则说明安装成功
2、启动Scala,执行语句
- 在命令行提示后输入
scala ,则会进入Scala的命令行模式,在此可以编写Scala表达式和程序
三、Linux上安装Scala
(一)到Scala官网下载Scala
(二)安装Scala
1、启动ied虚拟机
- 在hw_win7虚拟机上利用SecureCRT登录ied虚拟机
2、上传scala安装包到ied虚拟机
- 进入/opt目录,利用rz上传scala安装包
3、解压scala安装包到指定目录
- 执行命令:
tar -zxvf scala-2.13.8.tgz -C /usr/local
(三)配置Scala环境变量
- 执行命令:
vim /etc/profile
JAVA_HOME=/usr/local/jdk1.8.0_231
HADOOP_HOME=/usr/local/hadoop-2.7.1
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
SPARK_HOME=/usr/local/spark-2.4.4-bin-hadoop2.7
SCALA_HOME=/usr/local/scala-2.13.8
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$SCALA_HOME/bin:$PATH
export JAVA_HOME HADOOP_HOME SPARK_HOME SCALA_HOME PATH CLASSPATH
- 存盘退出后,执行命令:
source /etc/profile ,让环境配置生效
(四)测试Scala是否安装成功
1、查看Scala版本
- 执行
scala -version 命令,若能正确输出当前Scala版本信息,则说明安装成功
2、启动Scala,执行语句
- 在命令行提示后输入
scala ,则会进入Scala的命令行模式,在此可以编写Scala表达式和程序
四、?Scala的使用
(一)交互模式
1、命令行方式
- 直接在
scala> 提示符后敲代码执行 - 在
scala> 提示符之后输入:quit ,退出scala交互模式
2、文件方式
- 将代码写在
xxx.scala 文件中,通过scala xxx.scala 执行文件中的代码 - 创建
/scala_work 目录,进入该目录,执行命令:vim sum.scala - 存盘退出
- 执行命令:
scala sum.scala
(二)编译模式
- 将代码写在
.scala 文件中,通过编译命令将.scala 编译为.class ,然后去解释执行。在.scala 文件中编写好代码,创建对象,包含入口函数。通过scalac 或 fsc 命令进行编译,产生对应的.class 文件。再通过scala 命令来解释执行对象。scalac 和fsc 都可以进行编译工作,区别是fsc 会启动后台服务常驻系统后台,这样后续再进行编译的时候,速度就可以很快。
1、创建源程序
- 在
\scala_work 目录里创建文件HelloWorld.scala - 存盘退出
2、编译成字节码
- 利用
scalac 将HelloWorld.scala 编译成字节码文件HelloWorld.class - 查看生成的同名字节码文件
3、解释执行对象
- 执行命令:
scala HelloWorld ,运行程序,查看结果
五、课后作业
任务1、在你的笔记本上安装Windows版的Scala
任务2、在你的私有云虚拟机上安装Linux版的Scala
任务3、练习命令行模式与编译模式运行Scala
|