本书循序渐进地介绍了Scala编程语言的相关知识,共分为10章,首先详细介绍了Scala的一些基础知识,然后进一步介绍了Scala的数据类型、基本运算、内建控制、类和对象、自适应类型和函数等知识;另外,本书还介绍了Scala继承和多态、权限和集合、映射和模式匹配等,并系统地介绍了如何与Java进行互操作。本书案例简便易学,实用性强。
本书适合作为高等院校计算机相关专业程序设计课程的教材,也可作为Scala技术的培训用书。
通过大量实例,本书可以帮助读者更好地巩固所学知识,提升自己的编程能力;扫描书中的二维码,读者可以获得更多学习资源和技术支持,如教学视频、案例源代码、教师指导手册、教学PPT、教学设计及其他资源等,还有和每章内容配合使用的10套作业和难易程度不同的3套试卷,以方便读者学习。
很少有一门语言能够像Scala这样,因为成为大数据框架Spark的核心和首选开发语言而爆发式地普及起来的。据Spark官方统计,2014年和2015年全世界范围内基于Spark开发采用最多的语言一直都是Scala。另外,在大数据领域越来越多的其他技术框架,例如Kafka等也都把Scala作为实现和开发语言。因此,为了奠定大数据领域学习的基础,本书以实战为主导,以实战与理论相结合的方式来帮助读者学习Scala语言。
本书是由直接参与Scala研发的一线工程师编写的,因而对Scala原理的解读和应用更加值得信赖,目的是让读者能够全面理解和掌握Scala编程语言的核心特性,并能够深入理解Scala语言在设计取舍背后的动因。书中案例简便易学,实用性强,通过阅读本书,读者能够获得所需,成为一名合格的Scala程序员。
本书是为想要快速学习或者正在学习Scala编程语言的读者编写的,循序渐进地介绍了Scala编程语言的知识。 本书共分10章,首先详细介绍了Scala的一些基础知识,并和Java中的相关概念进行了对比学习,以方便读者快速掌握Scala;然后进一步介绍了Scala的数据类型、基本运算、内建控制、类和对象、自适应类型和函数等知识,以及与Java的一些差异,方便读者编写出更简洁的代码;另外,本书还介绍了Scala继承和多态、权限和集合、映射和模式匹配等,并系统地介绍了如何与Java进行互操作。阅读本书不需要读者熟悉Scala和Java编程语言,但如果读者具备一些Java、面向对象编程的背景知识,则更为理想。
通过大量实例,本书可以帮助读者更好地巩固所学知识,提升自己的编程能力;扫描书中的二维码,读者可以获得更多学习资源和技术支持,如教学视频、案例源代码、教师指导手册、教学PPT、教学设计及其他资源等,还有和每章内容配合使用的10套作业和难易程度不同的3套试卷,以方便读者学习。
本书由北京智酷道捷教育科技有限公司组织多名一线Scala研发工程师联合编写,书中案例皆为当下流行的项目案例,极具参考价值,既可作为高等院校本、专科计算机相关专业的程序设计教材,也可作为Scala技术的培训图书。由于时间有限,书中难免有疏漏及不足之处,敬请广大读者批评指正!
编 者
2020年10月
智酷道捷是中关村智酷双创人才服务股份有限公司下属高科技教育企业。旨在打造“产、学、研、用”双创一 体化深度融合的智能化泛 IT 产教综合服务平台。是一家专注于面向 高校提供“产、学、研、用”一体化双创实践性教学解决方案,面向 高新技术职业技能持续培育的创新型科技教育企业。公司专注于前沿 技术——基于云计算、大数据、以及智能化控制等高新技术开发的全新资源与服务平台。公司借鉴发达国家先进的技术应用教学经验并结合中国国情,创新提出“双创双元、双元双通”理论模型,通过“工程实践中心”这一创新载体,整合高校教育与产业实践应用,基于云平台的大数据反馈和自适应机制,打造形成以产业应用需求为引领,以岗位技能能力图表为核心线索的智能化课程研发体系,将产业应用需求、高校教育过程以及课程研发机制、产教协同育人进行一体化联动和融合,实现双创实践性应用人才智能化、生态化、个性化、本地化培育,为地方企业和高校提供优质的实践性课程与人才服务。
第1章? Scala入门与基础1
1.1?Scala的简介、特点和应用1
1.1.1?为什么选择Scala1
1.1.2?何为Scala2
1.1.3?Scala的面向对象和函数式编程示例3
1.1.4?Scala的特性6
1.1.5?Scala的自适应静态类型和简洁性示例8
1.1.6?Scala的应用11
1.2 Scala环境配置和安装11
1.2.1?Scala的环境准备11
1.2.2?Scala在Windows平台上的安装11
1.3 Scala的编译和运行18
1.3.1?Scala的编译和运行原理18
1.3.2?Scala的编译、运行和反编译19
1.3.3?指定编译和运行路径24
1.3.4?反编译的三种方式28
1.3.5?REPL基本操作30
1.3.6?REPL常见命令的应用33
1.4 Scala基础语法38
1.4.1?Scala的标识符38
1.4.2?Scala的关键字和注释39
1.4.3?Scala的分号41
1.4.4?Scala分号示例演示42
1.4.5?Scala的变量44
1.4.6?Scala变量内存结构46
1.4.7?Scala的lazy变量49
小结 50
习题 50
? 第2章? Scala数据类型与基本运算52
2.1 Scala的数值类型52
2.1.1?数据类型的作用及分类52
2.1.2?Scala支持的数据类型52
2.1.3?Scala中的数值数据类型53
2.1.4?Scala中的字面量53
2.1.5?Scala中的字符字面量57
2.2 Scala的非数值类型59
2.2.1?Scala中非数值类型的介绍59
2.2.2?Scala中字符串的表示59
2.2.3?Scala中字符串的常用方法64
2.2.4?Scala中字符串的分隔64
2.2.5?使用正则表达式对象查找字符串64
2.2.6?Scala中字符串遍历的使用66
2.2.7?Scala的字符串插值71
2.3 Scala的基本运算75
2.3.1?Scala的运算符75
2.3.2?Scala的算术运算符76
2.3.3?Scala的关系运算符80