熟悉Scala

Scala编程语言有许多被吹捧的好处 ,特别是对于Java开发人员而言。 Scala宣传的优势和优势包括:

  • Java虚拟机JVM )上运行
    • 能够在众多硬件和操作系统平台上运行
    • 访问JDK中丰富的库和功能集
    • 访问广泛的Java生态系统及其丰富的开源库和框架
    • 访问JVM功能,例如并发支持和优化
  • 支持功能面向对象的范例
  • 静态类型
  • 简洁语法
  • 文献资料
  • 到期

Scala在JVM上运行所提供的优势与在JVM上运行的其他众多语言(例如GroovyJythonJRubyClojureKotlin)的优势相同 。 但是,整套Scala产品将其与其他语言区分开。

Scala与其他基于JVM的其他语言不同的一个特点是它是静态类型化和静态编译的。 Groovy 2.0为Groovy引入了静态编译,但是其他几种基于JVM的语言不包含静态类型化和静态编译,因为它们所仿真的语言(例如RubyPython )不是静态的。 许多开发人员确实喜欢动态类型化 ,但是对于那些喜欢静态编译的优点并且对CC ++和Java多年的开发感到满意的开发人员来说,这是Scala的受欢迎之处。 静态类型不仅使编译器可以为我做更多的工作,而且可以更轻松地为该语言开发更好的工具。

现在,Groovy提供了静态类型化和编译功能,在比较Groovy和Scala时,一个更重要的差异化因素是Scala提供的函数式编程范例据称 ,采用更具功能性的方法进行软件开发具有优势 ,特别是在并发方面。 Scala为Java开发人员提供了一个机会,使他们可以使用功能性编程范式进行更多的实验 ,同时保持使用面向对象原理的能力并享受该范式的优势。 Clojure是一种语言的示例,它可以更全面地进入功能范式,而将面向对象的方法抛在后面。

Scala最吸引我的优势之一就是围绕该语言构建的详尽文档 。 该文档趋于清晰和最新。 例如,《 Scala入门》文档清晰简洁地说明了如何在Scala环境中配置WindowsLinux / Unix ,如何运行Scala解释器 ,如何编写Scala脚本 ,如何编译Scala以及如何执行Scala代码 。 所有这些都很好地覆盖了2页印刷页面。

获取和配置Scala非常容易,尤其是如果您已经安装了Java SDK版本(Java SE 1.6或更高版本)时。 可以从Scala发行页面下载Scala 。 有多种格式可供下载,我下载了Windows的Scala 2.10.1 ZIP文件。 “安装”非常简单,只需将ZIP文件的内容解压缩到我的C:\scala-2.10.1目录中即可。 我创建了一个指向该目录的系统级环境变量SCALA_HOME ,然后将%SCALA_HOME%\bin添加到系统的Path环境变量中。 我定义了一个SCALA_HOME环境变量以在我的Path中使用,而不是直接在Path中直接包含Scala安装的原因是这样,以便将来我可以通过简单地更改SCALA_HOME设置来轻松更改Scala的版本(这也是一种方法如有必要,可以在安装在同一台计算机上的多个Scala版本之间进行切换)。 请注意,在Linux / Unix系统上,将使用${SCALA_HOME}代替%SCALA_HOME%

将下载的Scala存档文件提取到系统上其“ bin”子目录位于我的路径中的目录中后,现在可以打开终端以查看Scala是否已正确配置。 这显示在下一个屏幕快照中,在该快照中,我使用命令scala -version查看已安装和配置的Scala版本。

首次使用新安装的产品时,我想做的另一件事是显示其用法或帮助信息。 下一个屏幕快照指示使用Scala( scala -help )执行此操作。

Scala启动器( scala )的帮助信息参考了对Scala编译器( scalac )支持的所有选项的支持。 下一个屏幕快照显示了运行该命令的过程,以查看适用于scalacscala众多选项。

在不带选项的情况下在命令行中键入“ scala”会打开Scala解释器 。 这显示在下一个屏幕快照中。

访问Scala解释器使我可以轻松开始玩Scala。 现在,我将使用解释器来了解Scala的一些基础知识。 下一个屏幕快照显示了如何在Scala解释器中键入任意表达式,如果表达式有效,将对其进行处理并将其自动分配给名为“ res0”的变量。 在这种情况下,将5加到6的总和设置为“ res0”。 然后可以在下一个评估中使用“ res0”变量,将其添加两个。 然后,该总和13将自动分配给“ res1”。 当我尝试将自动生成的“ res0”重新分配为值4时,看到错误消息:“错误:重新分配给val。”

刚刚显示的错误说明了我喜欢Scala的一件事。 它允许区分变量和常量(通常称为可变值和不可变值 )。 val关键字在隐式创建的值中是隐式的。 但是,声明自己变量和常量的Scala开发人员可以显式使用关键字“ val”指定常量,并显式使用“ var ”指定变量。 下一个屏幕快照对此进行了演示。

为了完成我的“ Scala简介”帖子,有必要在Scala中包含一个“ Hello,World ”示例。 这个示例实际上是在已经提到的出色的Scala入门中提供的 ,但是为了方便起见,在这里包括了它,并演示了如何编译和执行Scala源代码。

HelloWorld.scala

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

通过查看此简单代码,可以得出一些结论:Scala允许使用新的关键字“ object ”来指定一个Scala对象(单个实例),并在参数类型之前声明参数名称 (相同适用于局部变量/常量声明)。 该代码示例还显示,与Groovy一样,Scala不需要每次静态使用 java.lang.System.out进行显式静态导入 ,也不需要每次使用System.out.println进行拼写,都使用关键字“ def ”定义了main方法,并且只要每个语句都有自己的行, 就不需要分号

下一个屏幕快照显示了我的HelloWorld.scala源文件的内容,显示了运行Scala应用程序而没有显式编译步骤(隐式编译),显示了使用scalac HelloWorld.scala编译该源,显示了两个生成的.class文件,编译过程的结果,并显示再次使用scala HelloWorld运行简单的Scala应用程序。

Scala所感知的复杂性和学术血统使一些人无法关注Scala。 尽管Scala确实提供了一些功能非常强大且相对复杂的功能,但是Scala语言具有许多不复杂且非常易于使用的功能。 这篇文章展示了开始使用Scala是多么容易。

参考:Inspired by Actual Events博客上,我们的JCG合作伙伴 Dustin Marx 熟悉了Scala

翻译自: https://www.javacodegeeks.com/2013/04/becoming-acquainted-with-scala.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值