第四章:函数数据结构

主要内容:

  1. 类型参数化的协变和逆变(Covariance and contravariance)
  2. 高阶函数(high-order function)
  3. 自定义函数对象(function objects)
  4. 容器层次和并行容器(collection hierachy and parallel collection)

本章将介绍Scala中有趣的部分: Scala集合完全支持两种类型的数据结构——可变和不可变。
在理解Scala集合优越性之前,你需要知道两个概念: 类型参数化(type parameterization)和高阶函数(higher-order functions)。类型参数化允许你创建的类型是其他参数的类型(类似于Java的泛型(generics))。高阶函数则是你创建 的函数可以将其他函数作为参数。这两个概念使得你可以创意通用的、可重用的组件,如Scala集合。
Scala集合是所有Scala特征中最强大的一部分。Scala库中实现了所有你需要的通用数据结构,他对于所有Scala开发者来说都是必不可少的。最新添加的集合库是并行集合。并行集合使得处理数据并行性问题变得容易。你将会看到并行集 合在大数据集中如何处理,这部分将踏进有趣的路程。

Read more

第三章:Scala OOP

主要内容:

  1. 构建MongoDB驱动
  2. case模式匹配
  3. 命名和默认参数

上一章讲了Scala的基础部分,这章介绍Scala面向对象的特性。面向对象编程不是新鲜事物,但是Scala在面向对象基础上添加了一些新的特性。
本章将使用Scala构建MongoDB的驱动。MongoDB也是可伸缩的(scalable),基于文档的数据库。你将使用Scala面向对象构造器快速构建MongoDB驱动程序,并在此讲述每一步的概念。Scala使得面向对象得到革新,其中包括特征(trait)。特征相似与Java的半实现的抽象类(abstract classes)。本章将介绍特征在Scala程序中是如何工作的。同时,本章也将介绍容器类(case classes),容器类对于构建不可变类是非常有用的,另外也会介绍并发和数据-对象转换。容器类是函数式编程和面向对象编程的桥梁。

Read more

第二章:开始学习Scala

本章内容将学习Scala的类型,函数,for-comprehensions,模式匹配,以及其它方面内容。

注意模式匹配和for-comprehensions,是函数式编程概念。本章主要目的是先熟悉Scala语言的环境和一些基本的语法。一开始,会先从REPL简单环境入手。

在作进一步学习之前,先确保已经安装好Scala。现在,让我们先了了解Scala的解析器REPL。

Read more

第一章:Scala基础

Scala是一门多用途的(general-purpose)编程语言,运行在Java虚拟机(JVM)和.NET平台。基于这种平台的编程语言,每个开发者今天面临的问题是:下一代要学习的编程语言是什么?哪种语言适用主流开发?其中的编程语言包括GroovyRubyClojureErlangF#,为什么应该学习Scala?

学习一门新语言仅仅是一个开始。要成为一个卓越和富有成效的开发者,你应该熟悉系统基础结构的所有开关(toggles)和线框(gizmos)。

在阐述为什么应该学习Scala之前,先来理解下什么是Scala。它是一门富特性(feature-rich)语言,被广泛用于多类型应用中,构建社交网络大型消息层应用,如Twitter1 。以及应用构建工具如SBT2 (Simple Build Tool)。基于它的伸缩性(scala-bility),这门语言名字取名scala

Read more