美文网首页
Scala学习笔记(1)-快速起步

Scala学习笔记(1)-快速起步

作者: 我是老薛 | 来源:发表于2019-02-01 18:39 被阅读0次

    本文是对Scala语言的一个基本介绍和快速入门,共包括如下章节:

    • 概述
    • 安装Scala
    • 交互式命令行工具
    • 文件方式
    • 基本语法规范
    • 开发工具
    • 小结

    参考资料:因为Scala源码是编译成Java字节码,然后在jvm中执行。并且scala和java可以相互无缝调用。因此scala语言和java语言有天然的关系,语法也比较类似,所以熟悉JAVA语言对理解Scala语言有很大帮助。

    一、概述

    Scala是当前热门的现代编程语言之一,尤其在大数据领域,如spark,kafka等大数据技术的而核心代码都是使用Scala语言编写的。scala由洛桑联邦理工学院的Martin Odersky设计,第一个版本发布于2003年,现在最新版本为2.12版本。

    Scala语言有如下一些主要的特性:

    • 基于JVM运行,可以和java相互无缝互操作
    • 静态类型,编译型语言,编译成java字节码
    • 支持函数式编程范式
    • 纯面向对象编程语言,所有值都是对象
    • 并发性,使用Actor作为其并发模型
    • 自动类型推断功能

    二、安装scala

    从官方网站www.scala-lang.org/download下载二进制版本,如下图所示:

    如果要在window下安装,下载windows下的安装包 scala-2.12.8.msi,下载到本地后,双击运行安装即可。安装完成后,安装程序会将scala安装目录下的bin目录加入到Path环境变量中,这样可在dos命令行下的任何当前目录下运行bin目录下的可执行脚本或程序。

    如果要在Linux下安装,下载scala-2.12.8.tgz,下载到本地后解压即可,然后解压目录下的bin目录加入到PATH环境变量中,便于任何当前目录下都可运行bin目录下的可执行脚本或程序。

    三、交互式命令行工具

    scala提供了一个交互式命令行脚本(linux下文件名为scala,windows下文件名为scala.bat),可以快速的来简单学习scala的语法知识。

    打开命令行,运行scala,出现交互式界面,就可以输入代码,输入:quit退出交互式程序(注意quit前要有冒号)。

    C:\Windows\System32>scala
    Welcome to Scala 2.12.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40).
    Type in expressions for evaluation. Or try :help.
    
    scala> println("hello,world")
    hello,world
    
    scala> :quit
    
    C:\Windows\System32>
    

    四、文件方式

    交互式命令行只是用来进行编程练习的。实际的应用开发中,源代码是保存在文件中的,然后进行源代码编译,再运行。scala提供了一个脚本文件scalac(windows下为scalac.bat)可以进行源代码的编译,将源文件编译成class文件,然后可以利用scala脚本来运行。下面通过一个简单的例子来举例。

    建立一个源码文件,文件名如HelloWorld.scala保存到本地,scala的源文件的扩展名为scala。文件内容如下:

    object HelloWorld {
       def main(args: Array[String]) {
          println("Hello, world!")
       }
    }
    

    上面代码虽少,但是一个完整的可独立运行的scala应用程序。一个独立运行的scala应用程序的入口是一个单例对象(如上面用object关键字定义的HelloWorld对象)的main方法(如上面用def关键字定的方法),类似java中的main方法的入口。更详细的scala语法参见《Scala学习笔记(2)-基础语法》。

    下面对源代码文件进行编译,并运行,整个过程如下:

    D:\scaladev\demo>ls
    HelloWorld.scala
    
    D:\scaladev\demo>scalac HelloWorld.scala
    
    D:\scaladev\demo>ls
    'HelloWorld$.class'   HelloWorld.class   HelloWorld.scala
    
    D:\scaladev\demo>scala HelloWorld
    Hello, world!
    

    编译用到scala的scalac程序,类似jdk中的javac,运行使用scala程序,类似jdk中的java程序。

    需要特别说明的是,scala是一个纯面向对象的编程语言,在编写scala程序时,所有的语句(如函数定义、变量声明和赋值)都必须被包含在类或单例对象中。我们前面看到在scala提供的交互式命令行程序中可以直接输入语句(并没有定义类)进行执行,是因为命令行程序已经做了特殊的处理。

    五、基本语法规范

    • 区分大小写,如变量、函数名等都区分大小写

    • 单行语句后面可以加分号结尾(如java),也可以不加分号结尾

    六、开发工具

    可以有多种方式来编写scala程序,在正式项目开发中我们一般使用可视化的IDE工具,如IntelliJ。如果是学习scala的语法和相关的api,也可以使用scala提供的命令行工具(如前面介绍的),或不需要任何工具直接使用一些在线的编程练习系统。

    (一)使用带有Scala插件的IntelliJ IDE

    • 安装
      1、首先下载并安装IntelliJ Community Edition
      2、安装scala插件。

    • 创建项目
      1、打开IntelliJ并单击File => New => Project
      2、 在左侧面板中,选择Scala。在右侧面板中,选择IDEA。
      3、在出现的对话框中,将项目命名为HelloWorld
      4、假设这是您第一次使用IntelliJ创建Scala项目,则需要安装Scala SDK。在Scala SDK字段的右侧,单击“ 创建”按钮。如果本地已经有scala运行环境,选择所在的目录即可;如果没有,选择下载。创建SDK并返回“新建项目”窗口。
      5、 单击“ 完成”。

    • 编写代码
      1、在左侧的“ 项目”窗格上,右键单击src并选择“ 新建” =>“ Scala类”。
      2、命名该类Hello,并将Kind更改为object。
      3、将类中的代码更改为以下内容:

    object Hello {
       def main(args: Array[String]) {
          println("Hello, world!")
       }
    }
    
    • 运行程序

    在左侧的“ 项目”窗格上,右键单击Hello节点并选择Run'Hello'。
    或在选中Hello节点,按快捷键 ctrl+shift+F10 可运行程序。

    (二)使用SBT

    sbt是类似ANT、MAVEN的构建工具,全称为Simple build tool,是Scala事实上的标准构建工具。其主要特性有:

    • 原生支持编译Scala代码和与诸多Scala测试框架进行交互;
    • 使用Scala编写的DSL(领域特定语言)构建描述
    • 使用Ivy作为库管理工具
    • 持续编译、测试和部署
    • 整合scala解释器快速迭代和调试
    • 支持Java与Scala混合的项目

    当安装配置好后SBT后,我们可以在命令行下使用SBT,也可以在IntelliJ中使用SBT。关于SBT的详细信息我们不在本文中介绍。

    七、小结

    本文并没有对scala的语法进行详细介绍,主要是介绍scala运行环境和开发工具的搭建。下面的文章是对scala语言的更多介绍。

    1、《Scala学习笔记(2)-基础语法》
    2、《Scala学习笔记(3)-面向对象编程上篇》
    3、《Scala学习笔记(4)-面向对象编程下篇》
    4、《Scala学习笔记(5)-函数式编程》

    相关文章

      网友评论

          本文标题:Scala学习笔记(1)-快速起步

          本文链接:https://www.haomeiwen.com/subject/rnidsqtx.html