在个人学习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. Django中的信号及其用法

    Django中提供了"信号调度",用于在框架执行操作时解耦. 一些动作发生的时候,系统会根据信号定义的函数执行相应的操作 Django中内置的signal Model_signal ...

  2. nmap扫描某段网络连通性

    nmap -v -sP 10.0.10.0/24 进行ping扫描,打印出对扫描做出响应的主机,不做进一步测试(如端口扫描或者操作系统探测): nmap -sP 192.168.1.0/24 仅列出指 ...

  3. Opengl4.5 中文手册—D

    索引 A      B    C      D     E     F     G H      I     J      K     L     M     N O      P    Q      ...

  4. java集合系列——Map介绍(七)

    一.Map概述 0.前言 首先介绍Map集合,因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的). 1:介绍 将键映射到 ...

  5. CentOS 7搭建LAMP环境(一)

    CentOS是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成.由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentO ...

  6. MySQL or MariaDB 错误解决方法之报错代码1045

    phpMyAdmin登录报错:mysqli_real_connect(): (28000/1045): Access denied for user 'root'@'localhost' (using ...

  7. 【DP】捡苹果

    #include<stdio.h> int max(int a,int b) { int c; if(a>b) c=a; else c=b; return c; } int main ...

  8. Python自学笔记-面向对象相关(Mr seven)

    ---恢复内容开始--- http://www.cnblogs.com/wupeiqi/articles/5433893.html 类的成员可以分为三大类:字段.方法和属性. 一.字段 字段包括:普通 ...

  9. 【小程序】调用wx.request接口时需要注意的问题

    写在前面 之前写了一篇<微信小程序实现各种特效实例>,上次的小程序的项目我负责大部分前端后台接口的对接,然后学长帮我改了一些问题.总的来说,收获了不少吧! 现在项目已经完成,还是要陆陆续续 ...

  10. HDU2089 暴力打表

    62的判断就是倒过来没有26 hdu2089 #include<cstdio> #include<cstdlib> #include<iostream> #incl ...