美文网首页
Scala编程基础1:Scala简介

Scala编程基础1:Scala简介

作者: 金字塔下的小蜗牛 | 来源:发表于2020-04-08 08:15 被阅读0次

因为Spark是基于Scala编程的,所以在进入Spark学习之前,我们有必要先来学习一下Scala语言的相关知识。本节让我们首先来认识一下Scala语言。

Scala是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行在Java虚拟机上,并兼容现有的Java程序。Scala源代码被编译成Java字节码,运行在JVM之上,可以调用现有的Java类库。

如果你是一个Java程序员或者有一些Java基础,那么你将能够很快学习并且使用Scala编程;如果没有这些基础也没关系,本教程将尽可能讲解的浅显易懂一些。

我们先来热热身,第一个Scala程序:HelloScala.scala

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

编译Scala程序:

$ scalac HelloScala.scala

运行Scala程序:

$ scala HelloScala.scala

输出结果为:

Hello, Scala!

哈哈哈,是不是很像Java!你完全不用害怕它!

这里分享一份Scala语言规范.pdf文档,以帮助学习并掌握Scala语言的精髓。

1.Scala起源

Scala全名是Scalable Language,是一门多范式的编程语言,包括面对对象编程和函数式编程。Scala语言是Martin Odersky在2001年基于Funnel语言发明出来的(Funnel语言是把函数式编程思想和Petri网络相结合的一种编程语言)。

Scala有两种不同平台的版本:Java平台的Scala于2003年底发布;.NET平台的Scala于2004年6月发布。Scala-2.0发布于2006年3月。现在最新的版本是Scala-2.12-6。

2.Scala的特性

2.1面向对象

Scala是一种纯面向对象的语言,Scala中的一切都是对象,就连数字1也是对象,也有自己的方法可以调用。对象的数据类型以及行为由类(Class)和特质(trait)描述。类抽象机制的扩展有两种途径:一种是子类继承;另一种是灵活的混入机制。这两种途径能够避免多重继承的许多问题。

2.2函数式编程

Scala也是一种函数式语言,其函数也能当成值来使用。Scala提供了轻量级的语法用以定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。Scala的case class及其内置的模式匹配相当于函数式编程语言中常用的代数类型。也可以使用Scala的模式匹配,编写类似正则表达式的代码处理XML数据。

2.3静态类型

Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。类型系统具体支持以下特性:泛型类;协变和逆变;标注;类型参数的上下限约束;把类别和抽象类型作为对象成员;复合类型;引用自己时显式指定类型;视图;多态方法等。

2.4扩展性

Scala的设计秉承一项事实,即在实践中,某个领域特定的应用程序开发往往需要特定于该领域的语言扩展。Scala提供了需要独特的语言机制,可以以库的形式轻易地无缝添加新的语言结构:1.任何方法可用作前缀或者后缀操作符;2.可以根据预期类型自动构造闭包。

2.5并发性

Scala使用Actor作为其并发模型,Actor是类似线程的实体,通过邮箱收发消息。Actor可以复用线程,因此在程序中可以使用数百万个Actor,而线程只能创建数千个。在2.10之后的版本中,使用Akka作为其默认Actor实现。

3.Scala的用户群

Scala各种特性优势使其汇聚了大批用户。在国外,有很多公司将自己的全部或者部分项目向Scala迁移,比如:Twitter、Sony、Wattzon、Coursera、LinkedIn,、EDFT、Novell、Xebia、Xerox、FourSquare、Siemens、Thatcham、OPower、GridGain、AppJet、Reaktor等。在国内,使用Scala的公司虽然比不上国外那么多,但是也有许多,如:百度、阿里、腾讯、新浪、网易、携程、爱奇艺、蘑菇街等。另外,由于大数据领域的兴起,Spark也被越来越多的公司用于开发大数据,这些用户也在使用Scala。

4.Scala框架

目前比较流行的Scala的web应用程序框架有Lift和Play,这里不作深入讨论,感兴趣的读者可以自己去研究。

相关文章

  • Scala函数式编程(三) scala集合和函数

    前情提要: scala函数式编程(二) scala基础语法介绍 scala函数式编程(二) scala基础语法介绍...

  • Scala编程基础1:Scala简介

    因为Spark是基于Scala编程的,所以在进入Spark学习之前,我们有必要先来学习一下Scala语言的相关知识...

  • Scala函数式编程(四)函数式的数据结构 下

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Sc...

  • Scala函数式编程(五) 函数式的错误处理

    前情提要 Scala函数式编程指南(一) 函数式思想介绍 scala函数式编程(二) scala基础语法介绍 Sc...

  • -2- scala基础教程

    [scala简介link][scala基础教程link] 在-1- scala安装及环境配置中,编写并运行了hel...

  • Scala入门学习教程

    一、Scala简介: Scala简介: Scala 是一门多范式的编程语言,类似于 Java 。设计初衷是实现可伸...

  • Scala 简明教程

    一、Scala 简介 1、概述   scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是...

  • Scala从入门到精通

    1 初识 Scala 1.1 Scala 概述 Scala 是一门多范式的编程语言,设计初衷是要集成面向对象编程和...

  • java大数据之scala

    一、Scala简介 1.1 Scala是什么 Scala是一个可扩展的语言,是一种混合函数式编程语言。它集成了面向...

  • Scala类型系统

    简介 Scala是一门多范式的编程语言,设计初衷是要整合面向对象编程和函数式编程的各种特性,Scala代码会被编译...

网友评论

      本文标题:Scala编程基础1:Scala简介

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