*1.为什么要学习scala?
**
(1)spark底层是用scala来 ,要想学好spark 我们就必须会scala这门语言
(2)scala语言基于java 开发效率高,运行速度快
离线计算 -->
在线计算 -->spark底层是用scala来 ,要想学好spark 我们就必须会scala这门语言
*
*2.scala 语言的介绍
**
scala 是一门多范式的编程语言,及时面向对象也是函数式编程
面向对象:万物皆对象 封装 实例对象 类 继承
函数式编程: 面向过程 函数当成编程
什么是多范式?
多范式 :多种形式编程 常见的有过程式 函数式,泛型编程
面向对象 :把数据和数据的操作方法放在一起,作为一个相互依存的整体
函数式编程:把函数可以当成变量使用
函数式scala的一等公民
一等公民的特权:
1.函数可以传递和赋值
2.scala中可有嵌套函数和匿名函数
3.scala中支持高阶函数
4.scala还支持偏函数
5.scala支持闭包
3.scala语言和Java语言对比
相同点:
1.java和scala可以无缝混编,它们都是基于jvm
2.二者可以相互调用
不同点:
1.类型自动推断,并如果写类型化,是写在变量名的后面
2.val var
3.支持函数式编程
4.构造器不一样
5.java中可以自动默认值,scala中必须手动给默认值
6.scala 不需要分号,但是java 必须要有
7.get set 方法自己实现
age:相当于java中的getter方法
age_$eq:相当于java中set方法
8.java中的放回只用return scala 中没有return
**
4.编译工具的安装
**
1)jdk
2)idea
3)插件安装(离线和在线都可以)
scala-intellij-bin-2017.2.2.zip (一个插件就搞定了)
4)创建一个scala项目测试一下
5)字体背景稍微调整一下
**
5.main方法讲解
**
main(static=object)
1)语法
关键字 方法名 (参数):放回只类型={
}
def main(args: Array[String]): Unit = {
}
/*
- def 定义方法
- main 方法名字
- args 参数的名字
- Array[String] 参数类型 ,字符串数组
- Unit 没有返回值,相当于java中的void
*/
object HelloWorld {