Scala语言学习
Posted 灵犀一指
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala语言学习相关的知识,希望对你有一定的参考价值。
Scala的程序被编译成Java字节码,所以可以运行在JVM上,并且可以调用Java的类库,兼容Java程序。
Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成OOP和函数式编程(FP)的各种特性:
- 面向对象特性:Scala是一种纯面向对象的语言,每个值都是对象。Scala类扩展有两种途径:一种途径是子类继承(单继承),另一种途径是灵活的混入机制。这两种途径能避免多重继承的种种问题。
- 函数式编程:即函数也能当成值来使用。可以定义匿名函数、高阶函数、多层嵌套函数,并支持柯里化。Scala的case class、内置的模式匹配相当于FP的代数类型。利用Scala的模式匹配可以处理XML数据(这个过程类似于正则表达式)。
- 静态类型:即Scala具有的类型系统,编译时先检查类型,保证了代码的安全性、一致性。类型系统包含:泛型类、协变和逆变、标注、类型参数的上下限约束、把类别和抽象类型作为对象成员、复合类型、引用自己时显示指定类型、视图、多态方法。
- 扩展性:
- 并发性:使用Actor作为并发模型,但它不同于Thread,它相当于Thread的实体。在Scala中,多个Actor可以分别复用/使用同一个线程,因此可以在程序中可以使用数百万个Actor,而线程只能创建数千个,在2.10之后的版本中,使用Akka作为其默认Actor实现。Actor通过邮箱收发消息。——线程复用:线程的数量必须加以控制,因为盲目的大量创建线程反而会降低系统性能。于是不狂增数量,而是将已创建的线程进行重复使用,即线程使用完毕,不立即销毁,而是暂时放在连接池(其状态肯定是空闲了),以供下次可以继续使用这些已有的线程,而不必创建新的。
Scala比较流行的Web框架:Lift框架、Play框架。
以上是关于Scala语言学习的主要内容,如果未能解决你的问题,请参考以下文章