Scala语言概述与实战(超详细)

时间:2024-03-22 16:01:07

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.1.1 计算机的缘起

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

                                                      Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.1.2 编程范式

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

 

      Scala语言概述与实战(超详细)Scala语言概述与实战(超详细)

2.1.3 Scala简介

Scala语言概述与实战(超详细)

 

Scala语言概述与实战(超详细)

2.1.4.2 安装Scala

登录Scala官网,下载scala-2.11.8.tgz

Scala语言概述与实战(超详细) 把scala命令添加到path环境变量中

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

启动Scala解释器:

Scala语言概述与实战(超详细)

在Shell命令提示符界面中输入“scala”命令后,会进入scala命令行提示符状态:

Scala语言概述与实战(超详细)

可以使用命令“:quit”退出Scala解释器,如下所示:

Scala语言概述与实战(超详细)

用“:load”命令导入脚本,一次运行多行程序:

使用文本编辑器(比如vim)创建一个代码文件Test.scala

Scala语言概述与实战(超详细)

2.1.4.4 第1个Scala程序:HelloWorld

通过编译打包的方式运行Scala程序

Scala语言概述与实战(超详细)

使用scalac命令进行编译(编译的结果为java字节码)

Scala语言概述与实战(超详细)

使用scala或者java运行字节码文件

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.2 Scala基础

2.2.1基本数据类型和变量

   2.2.1.1基本数据类型

Scala语言概述与实战(超详细)

  Scala语言概述与实战(超详细) 

字面量(literal)

Scala语言概述与实战(超详细)

 

  2.2.1.2 基本操作

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)       Scala语言概述与实战(超详细)

  2.2.1.3 变量

  Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

类型推断机制(type inference):根据初始值自动推断变量的类型,使得定义变量时可以省略具体的数据类型及其前面的冒号 

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

注意:在REPL环境下,可以重复使用同一个变量名来定义变量,而且变量前的修饰符和其类型都可以不一致,REPL会以最新的一个定义为准

Scala语言概述与实战(超详细)

2.2.2 输入输出

    2.2.2.1控制台输入输出语句

   Scala语言概述与实战(超详细)

     Scala语言概述与实战(超详细)    

Scala语言概述与实战(超详细)

   向控制台输出信息方法: print()和println(),可以直接输出字符串或者其它数据类型,其中println在末尾自动换行。

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.2.2.2 读写文件

 Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

 

2.2.3 控制结构

   2.2.3.1 if条件表达式

   Scala语言概述与实战(超详细)

 

   2.2.3.2 while循环

Scala语言概述与实战(超详细)

   2.2.3.3 for循环

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

 2.2.3.4异常处理

Scala语言概述与实战(超详细)

   2.2.3.5对循环的控制

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.2.4 数据结构

    2.2.4.1 数组(Array)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

   2.2.4.2 元组(Tuple)

Scala语言概述与实战(超详细)

 

   2.2.4.3 容器(Collection)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

   2.2.4.4 序列(Sequence)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)   Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

2.2.4.5集合(Set)

 Scala语言概述与实战(超详细)

 

   2.2.4.6 映射(Map)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

Scala语言概述与实战(超详细)

   2.2.4.7 迭代器(Iterator)

Scala语言概述与实战(超详细)

2.3 面向对象编程基础

2.3.1 类

   2.3.1.1 类的定义

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

   2.3.1.2 类成员的可见性

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

   2.3.1.3 方法的定义

Scala语言概述与实战(超详细)

   Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

   2.3.1.4 构造器

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

Scala语言概述与实战(超详细) 

2.3.2 对象

   2.3.2.1 单例对象

   Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) Scala语言概述与实战(超详细)

 

2.3.2.2 伴生对象

 Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

Scala语言概述与实战(超详细) 

Scala语言概述与实战(超详细) 

 

  2.3.2.3 应用程序对象

   2.3.2.4 apply方法和update方法

Scala语言概述与实战(超详细)

2.3.3 继承

     2.3.3.1 抽象类

           Scala语言概述与实战(超详细)

 

     2.3.3.2 扩展类

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

     2.3.3.3 类层次结构

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

     2.3.3.4 Option类

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

2.3.4 参数化类型

     2.3.4.1 特质概述

Scala语言概述与实战(超详细)

     2.3.4.2 特质的定义

Scala语言概述与实战(超详细)

     2.3.4.3 把特质混入类中

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) Scala语言概述与实战(超详细)

     2.3.4.4 把多个特质混入类中

 Scala语言概述与实战(超详细)

2.3.5 特质

 2.3.5.1 match语句

        Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) Scala语言概述与实战(超详细)

  2.3.5.2 case类的匹配

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

 Scala语言概述与实战(超详细)

2.3.6 模式匹配

  2.3.6.1 包的定义

   Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) 

  2.3.6.2 引用包成员

Scala语言概述与实战(超详细)

2.4 函数式编程基础

 2.4.1.1 函数式编程简介

Scala语言概述与实战(超详细)

2.4.1.2 匿名函数

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细) Scala语言概述与实战(超详细)

 

2.4.1.3 占位符语法

Scala语言概述与实战(超详细)

2.4.1.4 高阶函数

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.4.1.5 闭包

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.4.2 针对集合的操作

2.4.2.1 遍历操作

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.4.2.2 映射操作

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.4.2.3 过滤操作

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.4.2.4 规约操作

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.4.2.5 拆分操作

Scala语言概述与实战(超详细)

Scala语言概述与实战(超详细)

2.4.3 函数式编程实例WordCount

Scala语言概述与实战(超详细)

 Scala语言概述与实战(超详细)