简介
Scala (Scala语言的简称)语言是一种能够运行于JVM和。net平台之上的通用编程语言,既可用于大规模应用程序开发,也可用于脚本编程。
Scala由马丁Odersk于2001年开发,2004年开始程序运行在JVM与。净平台之上,由于其简洁,优雅,类型安全的编程模式而受到关注。
在Scala的创建之初,并没有怎么引起重视。随着Apache火花和Apache卡夫卡这样基于Scala的大数据框架的崛起,Scala逐步映入大数据从业者的眼帘. Scala的拥护者们认为Scala的主要优势是速度和它的表达性。
&emsp目前使用scala的作为支撑公司开发语言的包括Foursquare和Twitter.2009年Twitter把大部分后台系统的开发语言从Ruby换成了scala。
特性
面向对象
scala是一种纯面向对象的语言,每个值都是对象。对象的数据类型以及行为由类和特质描述。
函数式编程
Scala是一种函数式语言,其函数也能当成值来使用. Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。
静态类型
Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。类型系统具体支持以下特性:
-
<李>泛型类李>
<李>协变和逆变李>
<李>标注李>
<李>类型参数的上下限约束李>
<李>把类别和抽象类型作为对象成员李>
<李>复合类型李>
<李>引用自己时显式指定类型李>
<李>视图李>
<李>多态方法李>
扩展性
Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构:
-
<李>任何方法可用作前缀或后缀操作符李>
<李>可以根据预期类型自动构造闭包李>
并发性
Scala使用演员作为其并发模型,演员是类似线程的实体,通过邮箱发收消息。
演员可以复用线程,因此可以在程序中可以使用数百万个演员,而线程只能创建数千个。在2.10之后的版本中,使用Akka作为其默认演员实现。
编程方式
交互式编程
&emsp交互式编程不需要创建脚本文件,可以通过以下命令调用。
<代码> scala美元 欢迎来到2.11.7 Scala版本(Java HotSpot (TM) 64位服务器虚拟机,Java 1.8.0_31)。 输入表达式计算。 类型:帮助的更多信息。 scala>1 + 1 res0: Int=2 scala>println (“Hello World !”) 你好世界! scala>代码>
脚本形式
创建一个HelloWorld。scala的文件来执行代码
<代码>对象HelloWorld {/*这是我的第一个Scala程序 *以下程序将输出“Hello World !” */def主要(args:数组(String)) { println (“Hello, world !”)//输出Hello world } }代码>
接下来我们使用的那个命令编译它:
<代码>美元那个HelloWorld.scala $ ls HelloWorld美元。类HelloWorld.scala HelloWorld。类代码> >之前使用以下命令来执行程序
<代码>美元scala HelloWorld 你好,世界! 代码>基本语法
-
<李>
区分大小写的:Scala是大小写敏感的,这意味着标识你好和你好在Scala中会有不同的含义。
李> <李>类名:对于所有的类名的第一个字母要大写。如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。示例:类MyFirstScalaClass
李> <李>方法名称:所有的方法名称的第一个字母用小写。如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。示例:def myMethodName ()
李> <李> def主要(args:数组[String]): Scala程序从主要()方法开始处理,这是每一个Scala程序的强制程序入口部分。李>关键字
注释
Scala类似Java支持单行和多行注释。多行注释可以嵌套,但必须正确嵌套,一个注释开始符号对应一个结束符号。注释在Scala编译中会被忽略,实例如下: