Scala: 简介和安装
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: 简介和安装相关推荐
- Spark基础学习笔记08:Scala简介与安装
文章目录 零.本讲学习目标 一.Scala简介 (一)Scala概述 (二)函数式编程 (三)Scala特性 1.一切都是对象 2.一切都是函数 3.一切都是表达式 (四)在线运行Scala 二.选择 ...
- Scala简介与安装
目录 一.Scala简介 (一)Scala概述 (二)函数式编程 (三)Scala特性 1.一切都是对象 2.一切都是函数 3.一切都是表达式 (四)在线运行Scala 二.选择Scala版本 三.W ...
- Python之pyspark:pyspark的简介、安装、使用方法之详细攻略
Python之pyspark:pyspark的简介.安装.使用方法之详细攻略 目录 pyspark的简介 pyspark的安装 pyspark的使用方法 pyspark的简介 Spark是一个用于大规 ...
- DL框架之MXNet :深度学习框架之MXNet 的简介、安装、使用方法、应用案例之详细攻略
DL框架之MXNet :深度学习框架之MXNet 的简介.安装.使用方法.应用案例之详细攻略 目录 MXNet 的简介 1.优缺点 2.相关文章 3.相关链接 MXNet 的安装 MXNet 的使用方 ...
- Scala简介以及基本语法(一)
文章目录 Scala简介 为什么要使用Scala? Scala vs Java 安装JDK以及SDK IDEA安装Scala插件 第一个Scala程序 Scala基本语法 声明变量 使用类型推断来定义 ...
- 【Scala】Scala 部署和安装
文章目录 一.Scala 简介 二.安装 三.配置 IDEA 直接下载插件 自主下载插件引入(推荐) 一.Scala 简介 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷 ...
- Scala 简介 [摘自 Scala程序设计 ]
Scala 简介 1.1 为什么选择Scala Scala 是一门满足现代软件工程师需求的语言:它是一门静态类型语言,支持混合范式:它也是一门运行在 JVM 之上的语言,语法简洁.优雅.灵活.Scal ...
- DL框架之DL4J/Deeplearning4j:深度学习框架DL4J/Deeplearning4j的简介、安装、使用方法之详细攻略
DL框架之DL4J/Deeplearning4j:深度学习框架DL4J/Deeplearning4j的简介.安装.使用方法之详细攻略 目录 深度学习框架Deeplearning4j的简介 1.Deep ...
- 2021年大数据ELK(二十一):Logstash简介和安装
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Logstash简介和安装 一.简介 1.经典架构 2.对比Flume 3.对 ...
- 2021年大数据常用语言Scala(二):Scala开发环境安装
目录 开发环境安装 安装JDK 安装scala SDK 步骤 具体操作 安装IDEA scala插件 步骤 开发环境安装 学习如何编写scala代码之前,需要先安装scala编译器以及开发工具 sca ...
最新文章
- 深入解析String#intern
- 解决Subquery returns more than 1 rowsql查询错误
- python视频教学视频哪个好-Python入门视频看哪个好?适合初学者的教学视频推荐...
- 在二维离散傅里叶变换中进行频谱平移(MATLAB::fft2shift)的作用
- 小红书最新用户量数据_小红书估值高达60亿美元?小红书超过蘑菇街了吗?
- 自控matlab设计,自动控制原理课程设计--基于MATLAB软件的自动控制系统仿真
- 印度18岁天才少年,造出“全球最小卫星”,实力不容小觑!
- JS、javascript计算两个时间差
- 【java基础知识】linux运行或停止jar包程序
- 必知必会JVM垃圾回收——对象搜索算法与回收算法
- 查看centos硬件配置
- 接口测试面试题及参考答案,轻松拿捏面试官
- Pycharm工具下的数据可视化(图形绘制)
- wps word设置级别多级目录标题
- vagrant学习笔记 - provision
- 1816. 截断句子【我亦无他唯手熟尔】
- RouterOS的DNS设置说明
- Using 1.7 requires compiling with Android 4.4 (KitKat); currently using API 15
- [Practical.Vim(2012.9)].Drew.Neil.Tip16学习摘要
- JavaScript对数组操作。添加/删除/截取/排序/倒序