Scala初识
1、scala介绍
- 作者
- 联邦理工学院(EPFL)的Martin Odersky,之前曾从事工作是Generic Java和javac(Sun Java编译器),并于2001年开始设计Scala。
- 语言介绍
- 多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。
- 运行在Java虚拟机上,并兼容现有的Java程序。
- 源代码被编译成Java字节码文件,运行于JVM之上,并可以调用现有的Java类库。
语言特点
- 面向对象特性
- 一种纯面向对象的语言,每个值都是对象
- 函数式编程
- 函数式语言,其函数也能当成值来使用。
- 提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。
- 静态类型
- 具备类型系统,通过编译时检查,保证代码的安全性和一致性。
- 像scala,java,c/c++,c#,golang等属于静态类型。
- 像python,ruby,javascript等属于动态语言,即只有到执行的时候才知道数据类型的正确性。
- 扩展性
- 提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构。
- 并发性
- 面向对象特性
scala版本选择
- 版本列表https://www.scala-lang.org/download/all.html
- 版本选择依据
- 最低与JDK1.8匹配
- 主流版本
- 最终选择2.11版即可
- 开发环境选择
- scala sdk祼写代码
- scala ide
- idea (易用性较强,掩盖不少使用细节和问题,不利于学习阶段)
- sublime text
- atom
- scala eclipse (应用量也不少, 且更利学习阶段,但需要安装专用eclipse版本且比eclipse-jee版用户体验略差,综合来看故不用之)
- eclipse + scala plugins (应用较广,更利学习阶段,在之前的eclipse装个插件即可,更简单一些,故采用之)
- eclipse之scala编程环境搭建
- 参见“eclipse安装scala-ide插件说明文档.docx”完成环境搭建。
- 编程实现HelloWorld
- 新建Scala Project
- 若建完的项目的版本不是jdk1.8或是scala2.11.x,则如下修改
- 修改匹配JDK版本与Scala Lib库版本
- JDK版本修改为JDK1.8
- 修改匹配JDK版本与Scala Lib库版本
- 修改Scala Lib库版本为2.11.x均可。
3、scala版HelloWorld实现
- 新建Scala Object名称为:com.tl.HelloWorld ,右击run as—>scala application即可
4、应用前景
- 技术方面
- 完全兼容Java,运行于JVM虚拟机之上。
- 支持函数式编程和类型推断
- 结合面向过程和面向对象,并保证代码简洁及优雅
- 开发工具IDE非常成熟
- 应用方面
- LinkedIn/Twitter/英国卫报等众多企业已全面生产应用Scala,或替换Java代码。
- spark/kafka等大数据开发组件的巨大爆发力,使Scala为国内所热捧。