http://blog.csdn.net/pipisorry/article/details/52902117

Note: lz只是稍微学学,能看懂就行,不深入。适合scala小白。

Scala简介

Scala 是 Scalable Language 的简写,是一门多范式的编程语言

联邦理工学院洛桑(EPFL)的Martin Odersky于2001年基于Funnel的工作开始设计Scala。

Funnel是把函数式编程思想和Petri网相结合的一种编程语言。

Odersky先前的工作是Generic Java和javac(Sun Java编译器)。Java平台的Scala于2003年底/2004年初发布。.NET平台的Scala发布于2004年6月。该语言第二个版本,v2.0,发布于2006年3月。

截至2009年9月,最新版本是版本2.7.6 。Scala 2.8预计的特性包括重写的Scala类库(Scala collections library)、方法的命名参数和默认参数、包对象(package object),以及Continuation。

2009年4月,Twitter宣布他们已经把大部分后端程序从Ruby迁移到Scala,其余部分也打算要迁移。此外, Wattzon已经公开宣称,其整个平台都已经是基于Scala基础设施编写的。

Scala 特性

面向对象特性

Scala是一种纯面向对象的语言,每个值都是对象。对象的数据类型以及行为由类和特质描述。

类抽象机制的扩展有两种途径:一种途径是子类继承,另一种途径是灵活的混入机制。这两种途径能避免多重继承的种种问题。

函数式编程

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

更进一步,程序员可以利用Scala的模式匹配,编写类似正则表达式的代码处理XML数据。

静态类型

Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。类型系统具体支持以下特性:

  • 泛型类
  • 协变和逆变
  • 标注
  • 类型参数的上下限约束
  • 把类别和抽象类型作为对象成员
  • 复合类型
  • 引用自己时显式指定类型
  • 视图
  • 多态方法

扩展性

Scala的设计秉承一项事实,即在实践中,某个领域特定的应用程序开发往往需要特定于该领域的语言扩展。Scala提供了许多独特的语言机制,可以以库的形式轻易无缝添加新的语言结构:

  • 任何方法可用作前缀或后缀操作符
  • 可以根据预期类型自动构造闭包。

并发性

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

皮皮blog

from: http://blog.csdn.net/pipisorry/article/details/52902117

ref: [Scala Tutorial]

Scala: 简介和安装相关推荐

  1. Spark基础学习笔记08:Scala简介与安装

    文章目录 零.本讲学习目标 一.Scala简介 (一)Scala概述 (二)函数式编程 (三)Scala特性 1.一切都是对象 2.一切都是函数 3.一切都是表达式 (四)在线运行Scala 二.选择 ...

  2. Scala简介与安装

    目录 一.Scala简介 (一)Scala概述 (二)函数式编程 (三)Scala特性 1.一切都是对象 2.一切都是函数 3.一切都是表达式 (四)在线运行Scala 二.选择Scala版本 三.W ...

  3. Python之pyspark:pyspark的简介、安装、使用方法之详细攻略

    Python之pyspark:pyspark的简介.安装.使用方法之详细攻略 目录 pyspark的简介 pyspark的安装 pyspark的使用方法 pyspark的简介 Spark是一个用于大规 ...

  4. DL框架之MXNet :深度学习框架之MXNet 的简介、安装、使用方法、应用案例之详细攻略

    DL框架之MXNet :深度学习框架之MXNet 的简介.安装.使用方法.应用案例之详细攻略 目录 MXNet 的简介 1.优缺点 2.相关文章 3.相关链接 MXNet 的安装 MXNet 的使用方 ...

  5. Scala简介以及基本语法(一)

    文章目录 Scala简介 为什么要使用Scala? Scala vs Java 安装JDK以及SDK IDEA安装Scala插件 第一个Scala程序 Scala基本语法 声明变量 使用类型推断来定义 ...

  6. 【Scala】Scala 部署和安装

    文章目录 一.Scala 简介 二.安装 三.配置 IDEA 直接下载插件 自主下载插件引入(推荐) 一.Scala 简介 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷 ...

  7. Scala 简介 [摘自 Scala程序设计 ]

    Scala 简介 1.1 为什么选择Scala Scala 是一门满足现代软件工程师需求的语言:它是一门静态类型语言,支持混合范式:它也是一门运行在 JVM 之上的语言,语法简洁.优雅.灵活.Scal ...

  8. DL框架之DL4J/Deeplearning4j:深度学习框架DL4J/Deeplearning4j的简介、安装、使用方法之详细攻略

    DL框架之DL4J/Deeplearning4j:深度学习框架DL4J/Deeplearning4j的简介.安装.使用方法之详细攻略 目录 深度学习框架Deeplearning4j的简介 1.Deep ...

  9. 2021年大数据ELK(二十一):Logstash简介和安装

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Logstash简介和安装 一.简介 1.经典架构 2.对比Flume 3.对 ...

  10. 2021年大数据常用语言Scala(二):Scala开发环境安装

    目录 开发环境安装 安装JDK 安装scala SDK 步骤 具体操作 安装IDEA scala插件 步骤 开发环境安装 学习如何编写scala代码之前,需要先安装scala编译器以及开发工具 sca ...

最新文章

  1. 深入解析String#intern
  2. 解决Subquery returns more than 1 rowsql查询错误
  3. python视频教学视频哪个好-Python入门视频看哪个好?适合初学者的教学视频推荐...
  4. 在二维离散傅里叶变换中进行频谱平移(MATLAB::fft2shift)的作用
  5. 小红书最新用户量数据_小红书估值高达60亿美元?小红书超过蘑菇街了吗?
  6. 自控matlab设计,自动控制原理课程设计--基于MATLAB软件的自动控制系统仿真
  7. 印度18岁天才少年,造出“全球最小卫星”,实力不容小觑!
  8. JS、javascript计算两个时间差
  9. 【java基础知识】linux运行或停止jar包程序
  10. 必知必会JVM垃圾回收——对象搜索算法与回收算法
  11. 查看centos硬件配置
  12. 接口测试面试题及参考答案,轻松拿捏面试官
  13. Pycharm工具下的数据可视化(图形绘制)
  14. wps word设置级别多级目录标题
  15. vagrant学习笔记 - provision
  16. 1816. 截断句子【我亦无他唯手熟尔】
  17. RouterOS的DNS设置说明
  18. Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 15
  19. [Practical.Vim(2012.9)].Drew.Neil.Tip16学习摘要
  20. JavaScript对数组操作。添加/删除/截取/排序/倒序

热门文章

  1. POJ1068 Parencodings(模拟)
  2. .NET与SAP的来往(转)
  3. ORACLE成果,天天10问(四)
  4. MongoDB DBA 实践2-----MongoDB CRUD操作
  5. zabbix 添加 ROS 软路由监控 WinBox设置
  6. table表格字母无法换行
  7. UIImagePickerController拍照与摄像(转)
  8. 使用计数器、译码器,在数码管上显示1~4
  9. 文本分类和意图识别调研思考
  10. 【ACL2020】最新效果显著的关系抽取框架了解一下?