Scala是什么呢?和我们所熟知的Java语言一样,它也是一门编程语言。了解过大数据的朋友都应该听说过Spark框架,那么Spark的源码就是用Scala来写的。所以,如果我们要学习Spark,首先要熟悉Scala的语法。并且,如果我们Scala掌握的很好,那么就可以研究Spark源码了,这是多么令人激动的一件事情呢。
这篇文章中,我们先来了解下Scala的特点吧。
1. 与Java的无缝整合
Scala也是运行在JVM上,所以可以和Java无缝整合。Scala可以在任何地方,调用Java类或接口中的方法。
2. 类型推断
熟悉Java的朋友都知道,Java中有8种基本数据类型:byte、short、int、long、float、double、boolean、char。并且,声明变量时都需要指明类型。而在Scala中,声明变量都是用var或val声明,不用指明具体的类型。变量的类型会根据所赋值的数据类型自动推断。在Scala中,不仅变量的类型可以自动推断,方法的返回值类型大部分情况下也是可以省略的。这些都使得Scala更加灵活和简约。在Scala中推尚的就是简约,能省则省。如果您深入学习Scala,就会对这一点有更深的体会哦!
3. 并发和分布式
Scala天生就是并发和分布式的。Scala集合上可以使用数据并行操作。Scala中的Actor可以实现类似于多线程的功能,同时又没有多线程的并发问题。
4. 特质(TRAITS)
Scala中的特质类似于Java中的接口,但是功能比接口功能更强大。简单来说,大家可以把特质理解为Java中接口和抽象类的结合体。
5. 模式匹配
Java中的switch语句,大家都应该很熟悉,可以做常量数据的匹配。而Scala中的模式匹配,功能要强大的多哦,它不仅可以匹配常量,还可以匹配各种数据类型。
6. 高阶函数
提到Scala,我们就不能不说说它的高阶函数了。Scala的一个最大特性是面向对象,另一大特性就是面向函数了。函数在Scala中是一等公民,是可以独立存在的。并且,这里的函数不仅可以是普通的函数,还可以是高阶函数。那么什么是高阶函数呢?简单来说,就是如果我们把函数理解为一种数据类型,那么在这里,函数是可以作为另一个函数的参数来传递或者作为其他函数的返回值返回,这就是高阶函数。