概述
- Spark基于Scala开发
- 基于jdk
- 多范式编程语言
- 面向对象:和java一样
- 函数式:代码简洁;可读性差,尤其是隐式类 / 函数 / 参数
运行环境
- REPL:命令行
- IDE:Eclipse 或 IDEA
命令
数据类型
- 没有基本数据类型,任何数据都是对象
- 定义变量(var)和常量(val)时,可不指定数据类型,Scala会自动进行数据推导

- Byte:8位有符号数字
- Short:16位有符号数字
- Int:32位有符号数字
- Long:64位有符号数字
- Char:字符
- String:字符串
- Unit:相当于Java中的void
- Noting:执行过程中产生Exception
函数

- 自定义函数
- 没有return语句,函数最后一句话就是函数的返回值



- 循环
- 求值策略
- call by value:定义 :,对函数实参求值,且只求一次,如下图中bar函数没用到x也求值
- call by name:定义:=>,在函数体内部,每次用到时求值,如下图中bar函数没用到y就不求值
参数



懒值
- 常量如果是lazy的,初始化会被推迟到第一次使用的时候
- Spark的核心是RDD(数据集合),操作数据集合中的数据需要使用算子(函数、方法)
- Transformation:延时加载,不触发计算
- Action:触发计算

例外
数组




映射

元组

参考
https://www.scala-lang.org/files/archive/api/2.11.8/#package
[Scala] 语法基础
原文:https://www.cnblogs.com/cxc1357/p/12983389.html