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等属于动态语言,及只有到执行的时候才知道数据类型的正确性。
扩展性
提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构
并发性
其并没有底层对语言的并发性做更新升级
使用Actor作为其并发模型
2、Scala版本选择与开发环境搭建
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装个插件即可,更简单一些,故采用之)
编程实现HelloWorld
新建scala Project
若建完的项目的版本不是jdk1.8或者使scala2.11.x,则如下修改
修改匹配JDK版本与Scala Lib库版本
JDK版本修改为JDK1.8
修改Scala Lib库版本为2.11.x均可。
3、Scala版HelloWorld实现
新建scala Object 名称为:com.lt.HelloWorld,右击run as-->scala application即可
4、应用前景
技术方面
完全兼容Java,运行于JVM虚拟机之上
支持函数式编程和类型推断
结合面向过程和面向对象,并保证代码简介及优雅
开发工具IDE非常成熟
应用方面
LinkedIn/Twitter/英国卫报等众多企业已全面生产应用Scala,或替换java代码。
spark/kafka 等大数据开发组建的巨大爆发力,使Scala为国内所热捧。