为什么学习Scala ,源于spark的兴起。
Scala是一门以java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型语言。
语言有两种:
1.静态:在执行之前类型就得确定下来
2.例如python,在执行的过程中,加载到编译器去执行
怎么理解Scala?
说有个人叫马丁.奥德斯基,这个人喜欢写编译器,二期非常喜欢java语言,但是呢,又觉得java语言有好的地方有坏的地方,所以自己写了两个语言,其中一个就是Scala。
然而写这东西的时候,他又想有java的东西,有想有自己的想法,所以
.Scala源码中:
1.能够继续使用java的部分语法
System.out.println("hello") //对的
HashMap<String,String> hash = new HashMap() //错的,对不起 我觉得太啰嗦 我改了
2.Scala特有的语法
例如:
val tuple=(1,20,"hello",23.9) //元组
val map=Map(("no",10),("no",20)) //map
3.增加功能
比如:
1)函数式编程
2)函数的柯里化
3)高阶函数
4)将函数作为参数传递
4.从形式上看,是Scala的类,但是这个类是对java类/接口进行包装的类
比如:
var arr=new Array[Int](10) //表示定义了一个数组,该数组存放的是Int,10个元素
我们写java的代码为什么能用,以为我们有java的类库(jdk),java开发者为程序员提供的类库。所以在Scala的类库(sdk):1.Scala特有的类库 2.对java的类进行包装
Scala是一门多范式的编程语言:Scala支持面向对象和函数式编程
Scala的源代码(.scala)会编译成java字节码(.class)文件,然后运行在jvm上面,并可以调用现在的类库,实现两种语言的无缝对接。
Scala单作为语言来看,非常简洁高效(例如:三元运算 ,++,-- 按照java里面写法都是不行的)
怎么学习Scala?
1.学习Scala特有的语法
2.搞明白Scala和java的区别
3.如何规范使用Scala