【Spark编程基础(2)】Scala语言基础
快速掌握Spark编程所需的Scala基础。
1 Scala语言概述
- 计算机的缘起
形式系统:λ演算=图灵机
计算机体系结构:冯·诺依曼
2. 编程范式
定义:编程的基本风格。
分类:命令式编程(C++、Java、C)和函数式编程(Haskell、Eilang 、LiSP)
函数式编程(泛函):计算->数学函数计算
函数式编程的发展
大数据应用的发展、CPU的发展
命令式编程涉及多线程之间的状态共享,使用锁机制保持数据的一致性,但会使得并发度降低;
函数式编程变量不可变更,可以充分利用多核CPU多线程并发能力。
-
Scala简介
类似Java的多范式语言。
特点:运行在JVM上,可以兼容所有java程序;面向对象,每个值都是一个对象,比如3+5实际执行3.+(5);一门函数式语言,并发性好,轻量级函数(Lambda表达式),高阶函数(参数仍然是函数); -
Scala的安装
- HelloWorld
多行自动换行;:quit退出。
- scala>println(“Hello World!”)
- scala>:load /usr/local/scala/mycode/Test.scala
- scalac HelloWorld.scala
scala -classpath . HelloWorld
或java -classpath .:/usr/local/scala/lib/scala-library.jar HelloWorld
2 Scala基础知识
- 基本数据类型和变量
基本数据类型:Byte、Char、Short、Int、Long、Float、Double、Boolean。
Int类型->scala.Int类
String类型->java.lang.String
字面量(literal)
操作符优先级:算术运算符>关系运算符>逻辑运算符>赋值运算符
操作符定义成方法:
富包装类:
Int基本类,没有比较复杂的操作,如max,但可以用。因为对应一个富包装类RichInt。
val var 不同类型变量
val 不可变 声明时必须初始化 不能再赋值
var 可变的 声明时需要初始化 可以再赋值
val/var 变量名:数据类型=初始值
类型推断机制
重复使用变量名,会记住最后一次用的类型。
2. 输入输出
-
控制结构
-
数据结构