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等属于动态语言,即只有到执行的时候才知道数据类型的正确性。
    • 扩展性
      • 提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构。
    • 并发性
      • 其并没有在底层对语言的并发性做更新升级。
      • 使用Actor作为其并发模型

        2、scala版本选择与开发环境搭建

  • scala版本选择

  • 开发环境选择
    • 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

1 初识 - 图1

  • 若建完的项目的版本不是jdk1.8或是scala2.11.x,则如下修改
    • 修改匹配JDK版本与Scala Lib库版本
      • JDK版本修改为JDK1.8

1 初识 - 图21 初识 - 图3

  1. - 修改Scala Lib库版本为2.11.x均可。

1 初识 - 图41 初识 - 图5

3、scala版HelloWorld实现

  • 新建Scala Object名称为:com.tl.HelloWorld ,右击run as—>scala application即可

1 初识 - 图6

4、应用前景

  • 技术方面
    • 完全兼容Java,运行于JVM虚拟机之上。
    • 支持函数式编程和类型推断
    • 结合面向过程和面向对象,并保证代码简洁及优雅
    • 开发工具IDE非常成熟
  • 应用方面
    • LinkedIn/Twitter/英国卫报等众多企业已全面生产应用Scala,或替换Java代码。
    • spark/kafka等大数据开发组件的巨大爆发力,使Scala为国内所热捧。