Scala语言简介和开发环境配置

摘要:
Scala语言简介和开发环境的构建Scala是一种结合了面向对象特性和函数式编程特性的语言。它是一种创新的编程语言产品。从这个意义上讲,Scala确实是一种面向对象的编程语言。在Scala中,函数也是一个值。最后,Scala可以与Java互操作。接下来,我们将介绍这两种不同情况下的Scala环境设置。exportSBT_HOME=/usr/local/sbt1.1.1exportPath=sbt_HOME/bin:$PATH基于命令行的Scala开发环境已配置。

Scala语言的简介和开发环境搭建


 

Scala是一门结合了面向对象特征和函数式编程特征的语言,它是一个创新的编程语言产品。Scala可以做脚本(就像shell脚本一样),可以做服务端编程语言,可以写数据处理程序等,在很多方面都适用,但是目前主要应用的领域有:编写Web服务器端程序、编写基于Spark的数据处理程序。能做的事情很多,可是被采用的领域不多。

这里对Scala语言的基本情况做一个介绍,然后介绍一下如何搭建Scala的开发环境。

以下是本文的提纲:

1、Scala的简介

2、Scala开发环境的配置

  2.1 命令行下配置Scala开发环境

  2.2 IDE下配置Scala开发环境

    2.2.1 Idea下配置Scala开发环境

    2.2.2 Eclipse下配置Scala开发环境

  

1、Scala的简介

===============

Scala是一门现代的编程语言,它包含了多个编程范式,集合了面向对象编程和函数式编程的优点。它具有如下几个鲜明的特点:

首先,Scala支持面向对象编程。

在Scala中,任何一个值都是对象,比如一个变量是一个对象,一个对象(Obejct,通过class new出来的对象)自不必说是对象,可是Scala中的函数也是一个对象。同时,Scala支持继承、多态、封装等面向对象特征。从这个意义来看,Scala确实是一门面向对象的编程语言。

其次,Scala支持函数式编程。

在Scala中,函数也是一个值。Scala支持匿名函数、高阶函数、嵌套函数(就是在一个函数的内部还可以定义函数,定义在函数内部的函数被称为嵌套函数)等。

Scala还支持case class、pattern matching(模式匹配),以及单例对象(Singleton objects,类似于Java中的单例模式)。

第三,Scala是静态类型的语言。

第四、Scala是可以扩展的语言。

在Scala中,可以通过为Scala增加库的方式来增加Scala的语言特性,从而形成一个DSL(Domain Specific Language领域特定语言)。

最后,Scala可以和Java互操作。

互操作的含义是:一种语言的程序可以顺利地调用其他语言写的程序(包括API、库等),那么就可以说这两种语言之间有互操作性。

Scala是一门基于Java虚拟机的语言(类似的语言还有Groovy、Jruby等),所以在Scala中可以直接调用Java的标准库和第三方库,这样以来,用Scala写程序就可以直接复用Java中现有的很多优秀的程序库了,而不必再另外实现一套Scala的类似库。(我们在建设一个系统的时候,如果能复用,就尽量复用,把有限的精力放在少量的创新性的工作上。这也是为什么软件设计中特别在意直接复用的原因。当然如果是学习某一个程序库的设计原理,那么最好的办法就是自己先实现一下,然后去看看此程序库的代码)

2、Scala开发环境的配置

====================

我们可以在两种环境下开发Scala程序。一个是命令行下开发,另一个是使用IDE进行开发。下面分别介绍一下这两种不同情况下的Scala环境搭建。

2.1 命令行下配置Scala开发环境

----------------------------------------------

如果习惯于在命令行下做开发工作,比如Linux用户使用vim编写源程序,或者Windows的用户使用notepad++编写源程序,那么就可以使用Scala和Sbt(Scala build tool)来编译、测试、运行Scala程序。

第一、确保操作系统中已经安装好了JDK。具体方法不介绍了。

第二、安装Sbt。

Sbt的安装方法很简单,只要从Scala的官方网站上下载到sbt的zip或tgz文件,然后解压即可。一般下载到的sbt安装包类似于sbt-1.1.1.tgz。

把它解压到某一个目录下,比如Linux操作系统下可以解压到/usr/local下。

tar -xzf sbt-1.1.1.tgz -C /usr/local/

然后在/etc/profile中为sbt增加环境变量。

export SBT_HOME=/usr/local/sbt-1.1.1

export Path=SBT_HOME/bin:$PATH

这样基于命令行的Scala开发环境就配置好了。

第三,测试开发环境。

1、mkdir hello-scala; cd hello-scala   #创建一个目录,并进入这个目录,这个目录是我们的工作目录

2、sbt new scala/hello-world.g8 

这里使用了一个sbt的项目模板hello-world.g8(sbt的项目模板都是以.g8结尾的),这个命令会从github中拉取hello-world.g8,然后按照hello-world.g8去创建一个项目。

接下来hello-world.g8会提示用户输入项目名称,这里输入hello-scala,接下来sbt会自动完成项目创建。

创建完成后的项目目录结果如下:

|- hello-world

    |- project (sbt uses this to install, manage plugins and dependencies) 

          |- build.properties

    |- src

         |-main

             |-scala (all of your scala code goes here)

                 |-Main.scala (Entry point of program) 

    |-build.sbt (sbt's build definition file)

|- target

  

3、运行这个项目。

cd hello-world #进入hello-world项目的根目录。

输入sbt命令,进入sbt的控制台中,输入run命令就可以运行项目了。

sbt

run

这样就看到了项目的运行结果。

项目运行之后,会在项目根目录下以及project目录下生成target目录,这是项目编译之后的输出结果文件夹,可以不用太在意。此刻项目的目录结构如下:

|- hello-world

    |- project (sbt uses this to install, manage plugins and dependencies) 

          |- build.properties

          |- target   (sbt run之后生成的)

    |- src

          |-main

              |-scala (all of your scala code goes here)

                  |-Main.scala (Entry point of program) 

    |- build.sbt (sbt's build definition file)

    |- target (sbt run之后生成的)

|- target

  

至此,我们就用sbt创建了一个项目,并且用sbt对其进行了编译和运行。以后修改了代码,或者为项目增加了新的代码,都可以按照这个流程编译、运行。

4、为项目增加依赖包。

为什么要介绍为项目增加依赖包呢?因为通常做一个软件的过程,可以看成一个调用标准库、第三方库的过程,大部分的项目都会不可避免地用到第三方的库,第三方库一般是以jar文件的形式存在的,为了在项目中使用它,就必须把要调用的库设置成项目的依赖库。因此,如果学会了如何为项目增加依赖,就相当于知道调用第三方库的方法,那么任何项目都可以做。

打开项目目录下的build.sbt文件,在其中增加如下的代码:

libraryDependencies += "org.scala-lang.modules" %% "scala-parser-combinators" % "1.1.0"

这个依赖的添加和Maven中添加依赖的思路是一样的,描述依赖用了三个元素,groupId、artifactId、version,格式为:groupId %% artifactId % version。

这就为项目增加了scala-parser-combinators这个库,这样在项目的scala源代码中就可以import scala-parser-combinators库中的class和object了。

2.2 IDE下配置Scala开发环境

---------------------------------------

目前常用的IDE有两个:Idea和eclipse,下面分别就这两个IDE配置Scala开发环境。

2.2.1 Idea下配置Scala开发环境

idea是scala官方推荐的IDE。在idea中配置Scala的开发环境,只需要安装Idea的scala插件即可。大多数时候,我们开发Scala程序都需要sbt的帮助,所以也需要安装sbt,不过,当安装了idea的scala插件之后,sbt也就自动安装上了,因此,其实我们要做的就是安装scala的插件。

1、确认安装了JDK。

因为Scala是JVM之上的语言,所以配置Scala的开发环境首先要确保操作系统中安装了JDK。另外,Idea其实本身就集成了一个JDK,这个JDK用来运行Idea本身,用Idea配置Java开发环境和Scala开发环境的时候,还需要另外安装一个独立的JDK。

2、下载、安装Idea

3、下载安装idea的scala插件

File-》Setting-》Plugins,搜索框中输入scala,之后安装scala和scala import organizer两个插件。scala插件是开发scala必须的插件,它会安装scala的编译器、sbt等,scala import organizer插件是用来对scala代码中的import语句进行自动整理的。

还有,另外一个插件scalafmt,是用来对scala代码进行格式化的,可以选择安装,按照自己个人的意愿。

4、创建、运行普通Scala项目

打开Idea,在Welcome窗口中Create new project->右边选Scala,左边选IDEA->填写项目名称,选择JDK,选择ScalaSDK->finish,这样项目就建好了。

Scala语言简介和开发环境配置第1张

之后在project tool window的src目录上右击选择new scala class,在出来的对话框中填入类型,kind选择object,点击ok就新建一个scala的object。之后就可以往里输入代码,运行、测试了。

这就是一个普通的scala项目的创建步骤。

5、使用sbt(scala build tool)创建scala项目

Sbt是scala build tool的简称,它是一个构建管理工具,是scala默认的构建管理工具,类似于Java领域的Maven。

在idea中,只要安装了scala插件,那么sbt是自动也安装上了,所以创建sbt项目不需要额外安装其他东西,直接创建就好了。

打开Idea,在Welcome窗口中Create new project->右边选Scala,左边选sbt->填写项目名称,选择JDK、sbt的版本、ScalaSDK->finish,这样项目就建好了。

一个创建好的项目的目录结构如下所示:

- .idea (IntelliJ files)

- project (plugins and additional settings for sbt)

- src (source files)

    - main (application code)

        - scala (scala source files)

    - test (unit tests)

       - scala (scala source files)

- target  

- build.sbt (build definition file for sbt)

  

之后在src/main/scala下添加项目的代码。剩下的工作就是编译、运行了。运行之前要在run->edit configurations出现的对话框中新增一个run configuration,点击+之后选择sbt task,在name中输入configuration的名字,在task中输入run(运行本项目的任务)。

最后,就可以运行了,运行的时候点击 run->run "run configuration name",就可以在底部出现的run tool window中看到运行的结果。

2.2.2 Eclipse下配置Scala开发环境

Eclipse下配置Scala的开发环境只需要安装eclipse的一个插件,名为Scala IDE for Eclipse。使用Scala IDE for Eclipse可以开发纯Scala的项目和Scala-Java的混合项目,它包含了一个Scala的调试器,支持scala的语法高亮等功能。

Eclipse中安装Scala IDE的过程如下:help->Eclipse Marketplace,在出来的Eclipse Marketplace窗口中,在find字段中输入Scala,回车,在下方的框中选择ScalaIDE 4.7.x,点击Install,之后点击对话框底部的finish,关闭对话框。

此时,ScalaIDE的安装进度在Eclipse的底部状态栏中有显示,当进度到100%的时候,重启Eclipse。

参考资料

1、http://docs.scala-lang.org/tour/tour-of-scala.html

2、https://docs.scala-lang.org/getting-started.html

3、https://docs.scala-lang.org/getting-started-intellij-track/building-a-scala-project-with-intellij-and-sbt.html

免责声明:文章转载自《Scala语言简介和开发环境配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux-c给线程取名字编译和反编译设备树下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python基础之读取xml

python怎么操作xml文件详细介绍链接:https://www.jb51.net/article/50812.htm 从结构上来说,xml很像常见的HTML超文本标记语言。不过超文本语言被设计用来显示数据,其焦点是数据的外观。xml被设计用来传输和存储数据,其焦点是数据的内容。 特征: 1. 标签对组成:<TEST></TEST>...

IDEA使用switch传入String编译不通过

今天在使用IDEA的时候,用到switch分支语句,传入String参数的时候一直报错,下面是源码报错截图: 看错误提示并没有提到switch支持String类型,不过ava1.7之后就支持String类型才对呀,于是想到了会不会是JDK问题,但是JDK用的是1.8呀!网上搜索才发现,会不会是编译环境版本过低的原因呢?于是查看对IDEA的ProjectS...

20191218 实验一 《Python程序设计》实验报告

学号 2020-2021-2 《Python程序设计》实验一报告 课程:《Python程序设计》班级: 1912姓名: 唐启恒学号:20191218实验教师:王志强实验日期:2021年4月18日必修/选修: 公选课 1. 实验过程及结果 (1).熟悉Python开发环境;(2).练习Python运行、调试技能;(3).编写程序,练习变量和类型、字符串、对象...

Android自动化测试学习路线

最近在整理Android自动化测试的相关资料,大体上把一些知识点梳理了,这里做一个简单的分享! Android里面测试相关的工具和框架太多了。你应该从以下几个方面入手。 编程语言的选择 如果你要学习的是Appium的话,当然它是移动自动化测试领域最流主流的工具之一,同时支持iOS和Android两大平台,最主要是还支持多种编程语言(Java/Python...

Idea springboot 配置热部署

Idea配置热部署   一、概念 热部署就是正在运行状态的应用,修改了他的源码之后,在不重新启动的情况下能够自动把增量内容编译并部署到服务器上,使得修改立即生效。热部署为了解决的问题有两个, 一是在开发的时候,修改代码后不需要重启应用就能看到效果,大大提升开发效率;二是生产上运行的程序,可以在不停止运行的情况下进行升级,不影响用户使用。 二、Idea开...

idea中添加web.xml配置文件与tomcat启动中遇到的web.xml文件找不到的问题

1,如何在idea中向war项目中添加web.xml的配置文件 idea通过maven创建war项目时没有指定是webapp导致创建出来的项目没有webapp的文件夹。其实war项目中都是在"项目名/src/main"目录下 只要在这个项目下创建webapp/WEB-INF/web.xml就行了 2,如果你没有把web.xml放在"项目名/src/main...