在个人学习scala的过程中,产生了写一系列随笔的想法,这些随笔包括:翻译自官网、其他英文网站的文章以及自己的心得体会,本文章作为这个系列中的第一个。

  由于本人能力所限,以及对scala还处于初级阶段,有任何错误或者问题,欢迎大家指正,多谢。

  原文链接:http://docs.scala-lang.org/tour/tour-of-scala.html

  scala是一个现代的多范式编程语言,通过简洁、优雅和类型安全的方式搭建通用编程模型。它巧妙的结合了面向对象和函数式编程特性。

  scala是面向对象的

  scala是一个纯粹的面向对象语言,所有的值都是对象。类型和对象的行为通过class和trait的方式进行描述。class可以被子类继承,通过灵活的mixin模式组装机制来实现多继承的效果。

  scala是函数式编程

  scala也是一种函数式编程,每个函数都是值。scala提供一种轻量语法来定义匿名函数,它支持高阶函数,它支持内置函数,支持柯里化。scala的case class和内置的规则匹配模型,在许多函数式编程语言中都在使用。singleton object提供了一种方便的方式,将不属于类实例的函数组合。
  进一步讲,scala的规则匹配概念扩展自XML数据处理,借助先行匹配的模式,通过extractor object实现。在上下文中,for 推导式有助于准确查询。这些特性使scala成为开发web服务类似应用的理想语言。

  scala是静态类型

  Scala拥有强大的静态类型系统,抽象可以通过安全的、一致的方式进行使用。
  一个本地类型引申机制帮助用户不需要编写冗余的类型信息。综合上述特性,scala为安全的抽象复用和类型安全扩展提供了一个强有力的基础。

  scala是可扩展的

  实践中,特定领域应用的开发需要特定领域语言的支持。scala提供一种统一的语言组合机制。非常方便地通过库的方式添加新的语言组件。
  Scala与JRE有很好的交互。特别是与主流面向对象编程语言Java的结合非常自然。Java的新特性例如注解和泛型受到scala的启发。那些在Java中没有类似的特性,如默认值和命名式参数,也会以合理的方式进行编译。scala与Java有类似的编译模型,允许访问数以千计的已经存在的高质量库。

scala攻略--简介的更多相关文章

  1. Anaconda使用教程全攻略

    Anaconda使用教程全攻略 本文转自 https://zhuanlan.zhihu.com/p/32925500           〇.序 Python是一种面向对象的解释型计算机程序设计语言, ...

  2. 基于DCMTK的DICOM相关程序编写攻略

    2008年09月10日 星期三 15:35 基于DCMTK的DICOM相关程序编写攻略 前言: 由于现在的医学影像设备的图像存储和传输正在逐渐向DICOM标准靠拢,在我们进行医学图像处理的过程中,经常 ...

  3. JAVA EE企业级开发四步走完全攻略 [转]

    http://bbs.51cto.com/thread-550558-1.html 本文是J2EE企业级开发四步走完全攻略索引,因内容比较广泛,涉及整个JAVA EE开发相关知识,这是一个长期的计划, ...

  4. 简单易懂的现代魔法——Play Framework攻略4

    接前文:简单易懂的现代魔法——Play Framework攻略3 1.The Object 时隔2个多月,Play Framework系列又更新了,本次的主题是:利用Play Framework实现R ...

  5. 简单易懂的现代魔法——Play Framework攻略1

    哇哈哈,寒假结束啦,于是我又开新坑了....这次的主角可是大名鼎鼎的Play Framework!!那么闲话少说,开始攻略吧! 1.什么是Play Framework? 大名鼎鼎的play frame ...

  6. IOS面试攻略

    IOS面试攻略(1.0) 2013-10-13 20:58:09|  分类: IOS面试 |  标签:ios知识点总汇  ios面试  |举报|字号 订阅     来自:伊甸网 @ 看到这个关键字,我 ...

  7. 2048 Puzzle游戏攻略

    2048 Puzzle这是目前手机游戏的很火. 在地铁上经常看到的人玩这个游戏. 首先,简介2048 Puzzle游戏. 游戏界面是4X4广场格,每一方格可以放置在数字. 有四种移动数字的方法,向左. ...

  8. SolrCloud攻略

    SolrCloud攻略 近期一直在使用SolrCloud,乘着酒醉大概总结一下. 1.安装 原来一直有个误区,认为SolrCloud启动时,必须至少有个core才可以,其实不然. 首先按照Solr官方 ...

  9. axios全攻略

    随着 vuejs 作者尤雨溪发布消息,不再继续维护vue-resource,并推荐大家使用 axios 开始,axios 被越来越多的人所了解.本来想在网上找找详细攻略,突然发现,axios 的官方文 ...

随机推荐

  1. 图文详解在Windows server 2008 R2上安装SQL Server 2012集群

    1.准备: 4台服务器(1台AD.2台SQL服务器.1台iSCSI存储服务器) 9个IP(1个AD的IP.2个SQL服务器的IP.2个心跳IP.1个iSCSI存储服务器的IP.1个集群IP.1个DTC ...

  2. MySql Jar 包下载

    MySql JAR 包下载 我们要使用Spring 链接MySql  需要两个Jar 包   一个是C3p0   一个是MySql 的Connection Jar  包 C3p0: 进入下面的网址 h ...

  3. C++初学 virtual 相关

    声明: 1.为了节省篇幅,头文件和域什么的都没写.另外可能是java转C++,有些叫法可能会不对 2.因初学,都是自己摸索的,有错望指出,勿喷 假设父类声明 Parent.h中如下 class Par ...

  4. NIO通讯框架之Mina

          在两三年前,阿堂在技术博客(http://blog.sina.com.cn/heyitang)上曾经写过"JAVA新I/O学习系列笔记(1)"和"JAVA新I ...

  5. python 脚本开发实战-当当亚马逊图书采集器转淘宝数据包

    开发环境python2.7.9 os:win-xp exe打包工具pyinstaller 界面tkinter ============================================= ...

  6. GitHub使用(四) - 关于分支Branch

    1. 什么是分支Branch? 我初步的理解为:GitHub仓库默认有一个master的分支,当我们在master分支开发过程中接到一个新的功能需求,我们就可以新建一个分支同步开发而互不影响,开发完成 ...

  7. Windows下 如何添加开机启动项

    Windows XP,Windows 7: 开始 ----> 所有程序 ----> 启动, 右键打开"启动"这个文件夹, 把想开机自动启动的软件快捷方式拖进去即可. ( ...

  8. Print Article hdu 3507 一道斜率优化DP 表示是基础题,但对我来说很难

    Print Article Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)To ...

  9. 1289 大鱼吃小鱼 1305 Pairwise Sum and Divide 1344 走格子 1347 旋转字符串 1381 硬币游戏

    1289 大鱼吃小鱼 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右 ...

  10. 分页查询不知你是否真正的懂和PHP的正则的应用和一些性能优化

    一.不废话太多  直接进入例子. 1  问题: 有一张收藏表,里面存储的是用户和图书ID.数据量为1亿.现在要求分页获取所有用户ID(不重复),写下你的sql语句.   表结构大致如下:       ...