在个人学习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. FTP下载时连接正常获取不到数据

    今天项目中要下载快钱的对账单,快钱对账单文件的FTP服务器是Unix系统,connectServer方法中已连接成功,reply code:220. 但是问题是download方法中的ftpClien ...

  2. 框架应用:Spring framework (四) - 事务管理

    事务控制 事务是什么?事务控制? 事务这个词最早是在数据库中进行应用,讲的用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位. 事务的管理是指一个事务的开启,内容添加, ...

  3. Routing in ASP.NET Core

    .NET-Core Series Server in ASP.NET-Core DI in ASP.NET-Core Routing in ASP.NET-Core Error Handling in ...

  4. UEditor1.4.3.3整合Spring MVC和七牛

    [前言] 项目中涉及将UEditor上传服务器整合进已有的基于Spring MVC的服务中,并且将上传到本地改为上传到七牛,看似简单的一个需求,实际做起来还是遇到了一些困难.在这里分享一下经验-- 七 ...

  5. windows10 下安装node失败 出现2502 2503的解决办法

    下载node出现以下异常    : the install has encountered an unexpected errer installing this package.this may i ...

  6. 为异常处理做准备,熟悉一下WinDbg工具

    为异常处理做准备,熟悉一下WinDbg工具 马上开始异常处理第二讲,但是在讲解之前,还有熟悉一下我们的WinDbg工具,当然你如果熟悉这个工具,那么就可以不用看了. 一丶熟悉WinDbg界面 刚开始打 ...

  7. 多年iOS开发经验总结

    总结了几个月的东西终于能和大家分享了,不多说,直接看东西! 1.禁止手机睡眠 1 [UIApplication sharedApplication].idleTimerDisabled = YES; ...

  8. AngularJS–Scope(作用域)

    点击查看AngularJS系列目录 转载请注明出处:http://www.cnblogs.com/leosx/ Scope Scope 是一个应用程序的模块的对象.它是表达式的执行上下文.它充斥在DO ...

  9. Python基础知识总结

    看了一个礼拜Python的书,断断续续的看了一大半.今天刚好没有课,想着也没什么事情干,就把这几天Python总结一下,都是一些基础知识 变量和对象的引用 在python中一切都是对象,不像C,jav ...

  10. java一些问题的思考

    1.思考 为什么java规定作为程序入口点的main() 方法静态的? 在java中,main()方法是java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这 ...