优化阅读格式

This commit is contained in:
heibaiying
2019-07-31 17:18:07 +08:00
parent ceb868fe13
commit ca7c99802b
91 changed files with 4059 additions and 4058 deletions

View File

@ -10,7 +10,7 @@
### 1.1 概念
Scala全称为Scalable Language即“可伸缩的语言”之所以这样命名是因为它的设计目标是希望伴随着用户的需求一起成长。Scala是一门综合了**面向对象**和**函数式编程概念**的**静态类型**的编程语言它运行在标准的Java平台上可以与所有的Java类库无缝协作。
Scala 全称为 Scalable Language即“可伸缩的语言”之所以这样命名是因为它的设计目标是希望伴随着用户的需求一起成长。Scala 是一门综合了**面向对象**和**函数式编程概念**的**静态类型**的编程语言,它运行在标准的 Java 平台上,可以与所有的 Java 类库无缝协作。
@ -18,11 +18,11 @@ Scala全称为Scalable Language即“可伸缩的语言”之所以这样
#### 1. Scala是面向对象的
Scala是一种面向对象的语言每个值都是对象每个方法都是调用。举例来说如果你执行`1+2`则对于Scala而言实际是在调用Int类里定义的名为`+`的方法。
Scala 是一种面向对象的语言,每个值都是对象,每个方法都是调用。举例来说,如果你执行 `1+2`,则对于 Scala 而言,实际是在调用 Int 类里定义的名为 `+` 的方法。
#### 2. Scala是函数式的
Scala不只是一门纯的面对对象的语言它也是功能完整的函数式编程语言。函数式编程以两大核心理念为指导
Scala 不只是一门纯的面对对象的语言,它也是功能完整的函数式编程语言。函数式编程以两大核心理念为指导:
+ 函数是一等公民;
+ 程序中的操作应该将输入值映射成输出值,而不是当场修改数据。即方法不应该有副作用。
@ -33,19 +33,19 @@ Scala不只是一门纯的面对对象的语言它也是功能完整的函数
#### 1. 与Java的兼容
Scala可以与Java无缝对接其在执行时会被编译成JVM字节码这使得其性能与Java相当。Scala可以直接调用Java中的方法、访问Java中的字段、继承Java类、实现Java接口。Scala重度复用并包装了原生的Java类型并支持隐式转换。
Scala 可以与 Java 无缝对接,其在执行时会被编译成 JVM 字节码,这使得其性能与 Java 相当。Scala 可以直接调用 Java 中的方法、访问 Java 中的字段、继承 Java 类、实现 Java 接口。Scala 重度复用并包装了原生的 Java 类型,并支持隐式转换。
#### 2. 精简的语法
Scala的程序通常比较简洁相比Java而言代码行数会大大减少这使得程序员对代码的阅读和理解更快缺陷也更少。
Scala 的程序通常比较简洁,相比 Java 而言,代码行数会大大减少,这使得程序员对代码的阅读和理解更快,缺陷也更少。
#### 3. 高级语言的特性
Scala具有高级语言的特定对代码进行了高级别的抽象能够让你更好地控制程序的复杂度保证开发的效率。
Scala 具有高级语言的特定,对代码进行了高级别的抽象,能够让你更好地控制程序的复杂度,保证开发的效率。
#### 4. 静态类型
Scala拥有非常先进的静态类型系统Scala不仅拥有与Java类似的允许嵌套类的类型系统还支持使用泛型对类型进行参数化用交集intersection来组合类型以及使用抽象类型来进行隐藏类型的细节。通过这些特性可以更快地设计出安全易用的程序和接口。
Scala 拥有非常先进的静态类型系统Scala 不仅拥有与 Java 类似的允许嵌套类的类型系统还支持使用泛型对类型进行参数化用交集intersection来组合类型以及使用抽象类型来进行隐藏类型的细节。通过这些特性可以更快地设计出安全易用的程序和接口。
@ -55,11 +55,11 @@ Scala拥有非常先进的静态类型系统Scala不仅拥有与Java类似的
### 2.1 前置条件
Scala的运行依赖于JDKScala 2.12.x需要JDK 1.8+。
Scala 的运行依赖于 JDKScala 2.12.x 需要 JDK 1.8+。
### 2.2 安装Scala插件
IDEA默认不支持Scala语言的开发需要通过插件进行扩展。打开 IDEA依次点击 **File** => **settings**=> **plugins** 选项卡搜索Scala插件(如下图)。找到插件后进行安装并重启IDEA使得安装生效。
IDEA 默认不支持 Scala 语言的开发,需要通过插件进行扩展。打开 IDEA依次点击 **File** => **settings**=> **plugins** 选项卡,搜索 Scala 插件 (如下图)。找到插件后进行安装,并重启 IDEA 使得安装生效。
<div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/idea-scala-plugin.png"/> </div>
@ -67,7 +67,7 @@ IDEA默认不支持Scala语言的开发需要通过插件进行扩展。打
### 2.3 创建Scala项目
在IDEA中依次点击 **File** => **New** => **Project** 选项卡,然后选择创建`Scala—IDEA`工程:
IDEA 中依次点击 **File** => **New** => **Project** 选项卡,然后选择创建 `Scala—IDEA` 工程:
<div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/idea-newproject-scala.png"/> </div>
@ -77,7 +77,7 @@ IDEA默认不支持Scala语言的开发需要通过插件进行扩展。打
#### 1. 方式一
此时看到`Scala SDK`为空,依次点击`Create` => `Download` ,选择所需的版本后,点击`OK`按钮进行下载,下载完成点击`Finish`进入工程。
此时看到 `Scala SDK` 为空,依次点击 `Create` => `Download` ,选择所需的版本后,点击 `OK` 按钮进行下载,下载完成点击 `Finish` 进入工程。
<div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/idea-scala-select.png"/> </div>
@ -85,15 +85,15 @@ IDEA默认不支持Scala语言的开发需要通过插件进行扩展。打
#### 2. 方式二
方式一是Scala官方安装指南里使用的方式但下载速度通常比较慢且这种安装下并没有直接提供Scala命令行工具。所以个人推荐到官网下载安装包进行安装下载地址https://www.scala-lang.org/download/
方式一是 Scala 官方安装指南里使用的方式,但下载速度通常比较慢,且这种安装下并没有直接提供 Scala 命令行工具。所以个人推荐到官网下载安装包进行安装下载地址https://www.scala-lang.org/download/
这里我的系统是Windows下载msi版本的安装包后一直点击下一步进行安装安装完成后会自动配置好环境变量。
这里我的系统是 Windows下载 msi 版本的安装包后,一直点击下一步进行安装,安装完成后会自动配置好环境变量。
<div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/scala-other-resources.png"/> </div>
由于安装时已经自动配置好环境变量所以IDEA会自动选择对应版本的SDK。
由于安装时已经自动配置好环境变量,所以 IDEA 会自动选择对应版本的 SDK。
<div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/idea-scala-2.1.8.png"/> </div>
@ -101,7 +101,7 @@ IDEA默认不支持Scala语言的开发需要通过插件进行扩展。打
### 2.5 创建Hello World
在工程 `src`目录上右击 **New** => **Scala class** 创建`Hello.scala`。输入代码如下,完成后点击运行按钮,成功运行则代表搭建成功。
在工程 `src` 目录上右击 **New** => **Scala class** 创建 `Hello.scala`。输入代码如下,完成后点击运行按钮,成功运行则代表搭建成功。
<div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/scala-hello-world.png"/> </div>
@ -111,7 +111,7 @@ IDEA默认不支持Scala语言的开发需要通过插件进行扩展。打
### 2.6 切换Scala版本
在日常的开发中由于对应软件如Spark的版本切换可能导致需要切换Scala的版本则可以在`Project Structures`中的`Global Libraries`选项卡中进行切换。
在日常的开发中,由于对应软件(如 Spark的版本切换可能导致需要切换 Scala 的版本,则可以在 `Project Structures` 中的 `Global Libraries` 选项卡中进行切换。
<div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/idea-scala-change.png"/> </div>
@ -121,7 +121,7 @@ IDEA默认不支持Scala语言的开发需要通过插件进行扩展。打
### 2.7 使用scala命令行
采用`msi`方式安装,程序会自动配置好环境变量。此时可以直接使用命令行工具:
采用 `msi` 方式安装,程序会自动配置好环境变量。此时可以直接使用命令行工具:
<div align="center"> <img width="700px" src="https://github.com/heibaiying/BigData-Notes/blob/master/pictures/scala-shell.png"/> </div>
@ -129,5 +129,5 @@ IDEA默认不支持Scala语言的开发需要通过插件进行扩展。打
## 参考资料
1. Martin Odersky(著),高宇翔(译) . Scala编程(第3版)[M] . 电子工业出版社 . 2018-1-1
1. Martin Odersky(著),高宇翔 (译) . Scala 编程 (第 3 版)[M] . 电子工业出版社 . 2018-1-1
2. https://www.scala-lang.org/download/