什么是scala
Scala 是 Scalable Language 的简写,是一门多范式的编程语言
什么是多范式,可以理解为编程方法的意思,学过java的应该都知道Java是面向对象编程的,而scala不仅面向对象编程,而且也是一种函数式语言。python就是一种函数式语言。
其中编程语言分为:
1、 面向对象和函数式编程
2、 静态编程语言和动态编程语言
3、 编译型和解释型
4、 汇编语言,脚本语言,机器语言,高级语言
5、 强类型语言和弱类型语言
Python 是动态类型语言,是强类型语言。
JavaScript 是动态类型语言,是弱类型语言。
Java 是静态类型语言,是强类型语言。
以下是用 Scala 编写的典型 Hello World 程序:
object HelloWorld {
def main(args: Array\[String\]): Unit \= {
println("Hello, world!")
}
}
可以看到,使用了def 来定义函数,而println("Hello, world!")又和java如出一辙。
可以这么理解,Scala 有方法与函数,二者在语义上的区别很小。Scala 方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。
Scala 中的方法跟 Java 的类似,方法是组成类的一部分。
Scala 中的函数则是一个完整的对象,Scala 中的函数其实就是继承了 Trait 的类的对象。
Scala 中使用 val 语句可以定义函数,def 语句定义方法。
class Test{
def m(x: Int) = x + 3
val f = (x: Int) => x + 3
}
注意:有些翻译上函数(function)与方法(method)是没有区别的。
为什么要学 Scala
第一,基于编程语言自身:
1、 优雅:这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API 是否 优雅直接影响用户体验。
2、 速度快:Scala 语言表达能力强,一行代码抵得上 Java 多行,开发速度快;Scala 是静态 编译的,所以和 JRuby,Groovy 比起来速度会快很多。
3、 能融合到 Hadoop 生态圈:Hadoop 现在是大数据事实标准,Spark 的出现并不是要取代 Hadoop,而是要完善 Hadoop 生态。JVM 语言大部分可能会想到 Java,但 Java 做出来的 API 太丑,或者想实现一个优雅的 API 太费劲。
scala主要是抛砖引玉出Spark,我们重点总结Spark。
scala学习[scala教程](https://www.runoob.com/scala/scala-tutorial.html)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。