安装与运行Scala
Scala是一种纯粹的面向对象语言,也是一种函数式语言。
Scala具有以下特性
- 面向对象
- 函数式编程
- 静态类型
- 可扩展
安装了Spark即可使用Scala
先开启hadoop集群再开启spark
基本知识点
数据类型
所有数据类型的第一个字母必须大写
类型推断:Scala会区分不同类型的值,并且会基于使用值的方式最终确定最终结果的数据类型
定义与使用常量变量
常量通过val 关键字定义,常量一旦定义就不可更改,即不能对常量进行重新计算或重新赋值,常量名要以字母或下划线开头。由于Scala具有类型推断功能,所有定义常量时不用特意写明数据类型,但是写了也没事。
变量通过var 关键字定义,命名规则与常量类似,定义后可以重新被赋值,但是只能将同类型的值赋值给变量
使用运算符
其中算数运算符,关系运算符,逻辑运算符与java中的运算符含义一样就不多做描述
定义与使用数组
数组是一种存储了相同类型元素的固定大小的顺序集合
定义数组的方法
- var [数组名]:Array[数组内元素类型] = new Array[数组内元素类型](数组长度)
- var [数组名] = Array(列出数组内元素)
连接两个数组有以下两种方法, 第二种方法必须事先引入包,否则报错
Scala可以使用range()方法创建区间数组,同样需要提前导入包,创建一个区间为1~10且步长为2的数组
定义与使用函数
函数的定义由一个def关键字开始,紧接着是函数名称和可选的参数列表,其次是一个冒号“:”和函数的返回类型,之后是赋值运算符“=”,最后是方法体。返回类型可以是任意合法的Scala数据类型,若函数无返回值,则函数的返回类型为“Unit”
def functionName (参数列表): [return type] = {方法体}
在text类中定义一个两数相加的函数(如果函数定义在一个类中,可以通过类名.方法名(参数列表)的方式调用)
匿名函数
匿名函数即定义函数时不给出函数名的函数,匿名函数用箭头“=>”定义,箭头左边是参数列表,箭头右边是表达式,通常可以将匿名函数赋值给一个常量或变量,再通过常量名或变量名调用该函数
若函数中的每个参数在函数中最多只出现一次,则可以使用占位符“_”代替参数,可以将占位符看做表达式里需要被填入的空白,这个空白在每次函数被调用时用函数的参数填入
高阶函数——函数作为参数
高阶函数指的是操作其他函数的函数,高阶函数可以将函数作为参数,也可以将函数作为返回值。高阶函数经常将只需要执行一次的函数定义为匿名函数并作为参数。高阶函数add2使用了匿名函数f,值a,值b作为参数,而f又调用了a和b作为参数
高阶函数——函数作为返回值
高阶函数可以产生新的函数,并将新的函数作为返回值定义高阶函数计算矩形的周长,func来接收参数为4的rectangle这一函数,然后又输入了5作为宽,返回值为(lenght+height)*2这一函数
函数柯里化
函数柯里化是指将接收多个参数的函数变换成接受单一参数的函数,新的函数返回一个以原函数余下参数为参数的函数
一般函数的写法及其调用方式为add3,函数柯里化示例为add4
if语句和for循环
与java中的语句相差不大,不多作讲解