Boys,Grils,Friends! My name is Jinsuo.Shi. 一个不正经的大数据开发工程师,目前从事在公司主要进行CDP平台的数据接入、数据的ETL、数据的融合与事件的展开工作。
个人大数据技术栈:DataX,Sqoop,Hadoop,Hive,Spark,Flink,Hbase,Kafka,Kettle,Azkaban,Airflow,Tableau…
个人在学习领域:Python,Pandas数据分析,PowerBI数据可视化,机器学习,算法等…
个人兴趣爱好:广泛阅读,旅游远行,运动健身,王者农药…
【今日重点:个人知识储备的基础语言篇的Scala从0到1】
开场白
首先说一下为啥会接触到Scala,学习Spark大数据计算框架时的底层编程语言,其次写起来非常的简洁,没有每行结尾的;号就很nice;还可以在Scala代码里写Java的代码。和Java语言一样也是运行在JAVM上,有很好的移植性,废话不多说了,开搞!
1. 编程工具安装
在Java学习中装了idea的,就可以不用装了,scala SDK 和JDK一样都是软件开发包,只不过JDK里内置了JVM.
2. 基础语法
同样的,在学习一门语言时,有一个对照的语言学习起来那将非常的迅猛,这里着重讲解一下Scala和Java的差异点或者说优点吧!
3. Scala与Java比较
1. 数据类型
scala不区分基本数据类型和引用数据类型,统统都是引用数据类型,并且有强大的类型推断功能,只需要使用val,var 来声明变量,就可以直接从值推断出数据的类型
2. 运算符
注意Scala不能像Java那样写++,–,没有这种语法格式
3. 流程控制
表面看没啥区别,有意思的是Scala的if表达式有返回值,举个列子
val x=10 val res=if(x>0){ x}else {0} print(res) #10
4. 数据结构
常用的数据结构和Java差不多,声明有所不同,但是一些操作的方法大同小异,遍历非常容易,直接使用 foreach(),贼好用
5. 字符串
不多说了,字符串的处理在哪种语言里都是重点并且时常打交道的点,常用方法和Java基本一样,方法名都是那种见名知意的。
6. 函数
函数,函数是Scala语言的头等公民,非常重要,函数也是对象,函数可做参数传递,函数和方法声明方式不同,闭包和柯里化的概念了解即可,面试有可能会被提及。
7. 面向对象
scala里继承和实现,都是用的extends关键字,多个使用with连接,特质和Java中的接口interfence很像,但是功能更多,我觉得不如Java的接口用起来舒服、标准!
8. 特性
说起Scala,必须要提到模式匹配,Java里的原型就是match-case的选择表达。功能非常强大,写起来页非常简洁。
还有一个必须说的是样例类,自定义使用的类型,写起来非常方便!
4.下期更精彩
本期的scala学习分享就到此了,是不是觉得很少,到后面学习spark时还会使用Scala,不急,一步一步来,Java,Python,Scala三种后端编程语言系列就告一段落了,下期默认将分享SQL的学习,如果有不同想法,可以在评论区留言,分享前端语言或者大火的C语言基础都可以,订阅关注不迷路,咱们下期见!