简介
本课程介绍Scala编程语言,它是一门结合了函数式编程和面向对象编程特性的语言。
近年来,函数式编程越来越受欢迎,因为它提高了代码的安全性,使其更简洁和优雅。在多核时代,函数式编程也使得编写并行代码越来越简单。
Scala也是运行于 JVM 之上,这使得它能够和 Java 无缝的互相调用,很多采用 Java 开发的开源系统也能在 Scala 中直接使用。由于 Scala 语言这些独特的优势,目前越来越多的开源系统也采用 Scala 开发,如 Spark,Kafka等开源项目。
通过本课程读者将会学到Scala语言的特性,以及如何在实际项目中使用Scala进行编程。本课程会有大量动手实践,以期让读者能够快速掌握Scala。
目标
了解面向对象编程和函数式编程的概念;
掌握 Scala 编程语言;
掌握 Scala 和 Java 的交互;
掌握如何使用 Scala 开发实际项目。
课程时长
2天(12H)
受众人群
函数式编程爱好者,大数据开发人员,系统架构师。
课程特点/亮点
系统化介绍+实际操作演练+对重难点进行深入浅出分析。
分享提纲
1.简介 | 1.1 编程语言 Overview 1.2 Scala 的发展历程 1.3 Scala 语言的特性 1.4 Scala 初体验 1.5 社区和相关书籍推荐 |
2.安装配置和基本操作 | 2.1下载 Scala 编译器 2.2环境变量配置 2.3使用 Scala 的交互式 shell 2.4使用 IDE |
3.REPL使用方式 | 3.1启动,使用 3.2 REPL 的命令行选项 3.3粘贴代码块 3.4:load 命令 3.5增加 JAR 文件和 Class 到 REPL 的 classpath 3.6 REPL 中运行 Shell 命令 |
4.基本类型和操作 | 4.1整数表示 4.2 String 表示 4.3 Boolean 表示 4.4操作符 4.5对象的相等性 |
5.控制结构 | 5.1 If 表达式 5.2 While 表达式 5.3 For 表达式 5.4异常处理 5.5关于break和continue |
6.函数式编程 | 6.1基本概念 6.2可变长参数、命名参数、带默认值的函数 6.3部分应用函数 6.4闭包 6.5传名和传值 6.6递归和尾递归 6.7高阶函数 6.8柯里化 |
7.类和对象 | 7.1 class 定义 7.2定义操作符 7.3隐式转换 7.4 Scala 的类库层级结构 7.5 Scala 的 package 7.6类,成员,方法的访问权限 |
8.类的继承 | 8.1抽象类 8.2扩展类 8.3重载 methods 和 fields 8.4调用超类的构造器 8.5构造顺序 8.6多态和动态绑定 8.7定义final 成员 |
9.特质 | 9.1什么是“特质”,”特质”如何工作? 9.2 Ordered 特质介绍 9.3以栈的形式扩展多个特质 9.4用特质还是抽象类 |
10.Generic 和 Subtyping 及 Variance | 10.1 LSP介绍 10.2类型参数 10.3类型边界 10.4 Variance |
11.模式匹配 | 11.1 Case classes 11.2模式匹配 11.3模式的种类 11.4模式匹配的顺序 11.5 Sealed classes 11.6 Option 类型 |
12.抽取器 | 12.1 什么是抽取器 12.2 0 个 1 个变量的模式 12.3 可变长度的抽取器 12.4 抽取器和序列模式 12.5 正则表达式 |
13.隐式转换和参数 | 13.1什么是隐式转换 13.2隐式转换规则 13.3使用隐式转换的情况 13.4隐式转换优先级 13.5上下文定界和视图定界 13.6隐式转换和类型 |
14.List 介绍 | 14.1 List的构造 14.2 List的基本操作 14.3 List模式匹配 14.4 ListBuffer介绍 |
15.For 表达式深入 探讨 | 15.1 For 表达式介绍 15.2模式匹配 15.3 For表达式的转换过程 |
16.Annotations | 16.1什么是注解 16.2 Scala 注解 VS Java 注解 16.3什么可以被注解 16.4注解参数 16.5自定义注解实现 16.6针对Java特性的注解 16.7用于优化的注解 16.8用于错误和警告的注解 |
17.对象相等性 | 17.1 Scala 中对象相等性的基本概念 17.2如何编写相等性的方法 |
18.与 Java 交互 | 18.1 Scala 中如何使用 Java 类 18.2 Java 中如何使用 Scala 类 |