在个人学习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. lintcode.46 主元素

    给定一个整型数组,找出主元素,它在数组中的出现次数严格大于数组元素个数的二分之一. 注意事项 You may assume that the array is non-empty and the ma ...

  2. JVM菜鸟进阶高手之路十一(eden survivor分配问题)

    转载请注明原创出处,谢谢! 问题 这个Xmn设置为1G,,我用jmap -heap 看,这个Eden From To怎么不是一个整8:1:1的关系呢? 我看内存分配还是没变,我Xmn1g,感觉From ...

  3. 渗透相关website

    开源安全测试方法论:http://www.isecom.org/research/osstmm.html 信息系统安全评估框架:www.oissg.org/issaf 开放式web应用程序安全项目(O ...

  4. [UIKit学习]00.关于前置知识(storyboard,UIViewController,类扩展,项目属性)

    storyboard文件的认识 用来描述软件界面 默认情况下,程序一启动就会加载Main.storyboard 加载storyboard时,会首先创建和显示箭头所指的控制器界面 IBAction和IB ...

  5. JAVA实现上传文件到服务器、删除服务器文件

    使用的jar包: <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</art ...

  6. extract-text-webpack-plugin打包css后出现图片引用路径不对问题

    在做项目过程中,发现引用了图片的less文件被extract-text-webpack-plugin打包过之后,里面的图片引用路径指向到了extract-text-webpack-plugin打包目录 ...

  7. gRPC官方快速上手学习笔记(c#版)

    上手前准备工作 支持操作系统:windows.OS X.Linux.实例采用.net..net core sdk. The .NET Core SDK command line tools. The ...

  8. bzoj1027 [HNOI2004]打鼹鼠

    [HNOI2004]打鼹鼠 2014年5月2日2,8605 Description 鼹鼠是一种很喜欢挖洞的动物,但每过一定的时间,它还是喜欢把头探出到地面上来透透气的.根据这个特点阿Q编写了一个打鼹鼠 ...

  9. java数据库编程之数据库的设计

    第一章:数据库的设计 1.1:为什么需要规范数据库的设计 1.1.1:什么是数据库设计 数据库设计就是将数据中的数据实体及这些数据实体之间的关系,进行规范和结构的过程. 1.1.2:数据库设计非常重要 ...

  10. 想到一个赚钱的APP

    通过APP上发布调查问卷的需求,鼓励人们注册,并给与一定的报酬.需求主要面向一些调查问卷,一类的需求发布