在码农港湾
做一个实实在在的内行人

Scala

Java 与 Scala

阅读(379)

Javap javap 的是 JDK 附带的一个工具。不是 JRE,这里是有区别的。javap 反编译类定义,给你展示里面有什么。用法很简单 [local ~/projects/interop/target/scala_2.8.1/clas...

Scala 并发编程

阅读(383)

Runnable/Callable Runnable 接口只有一个没有返回值的方法。 trait Runnable { def run(): Unit } Callable与之类似,除了它有一个返回值 trait Callable[V] {...

使用 specs 测试

阅读(358)

扩展规格 让我们直接开始。 import org.specs._ object ArithmeticSpec extends Specification { "Arithmetic" should { "add two numbers" i...

更多的集合

阅读(336)

更多的集合 Scala 提供了一套很好的集合实现,提供了一些集合类型的抽象。这让你的代码可以与 Foo 的集合交互,而无需担心该集合是是一个 List,还是 Set,或是任何你有的类型。 这里提供了一个很好的页面来查看各种集合的默认实现,并...

简单构建工具

阅读(328)

关于 SBT SBT 是一个现代化的构建工具。虽然它由 Scala 编写并提供了很多 Scala 便利,但它是一个通用的构建工具。 为什么选择 SBT? 明智的依赖管理 使用 Ivy 做依赖管理 “只在请求时更新”的模型 对创建任务全面的 ...

高级类型

阅读(369)

视界(“类型类”) 有时候,你并不需要指定一个类型是等/子/超于另一个类,你可以通过转换这个类来伪装这种关联关系。一个视界指定一个类型可以被“看作是”另一个类型。这对对象的只读操作是很有用的。 隐函数允许类型自动转换。更确切地说,在隐式函数...

类型和多态基础

阅读(370)

什么是静态类型? 按 Pierce 的话讲:“类型系统是一个语法方法,它们根据程序计算的值的种类对程序短语进行分类,通过分类结果错误行为进行自动检查。” 类型允许你表示函数的定义域和值域。例如,从数学角度看这个定义: f: R -> ...

模式匹配与函数组合

阅读(377)

函数组合 让我们创建两个函数: scala> def f(s: String) = "f(" + s + ")" f: (String)java.lang.String scala> def g(s: String) = "g(...

Searchbird

阅读(329)

我们要使用 Scala 和先前介绍的 Finagle 框架构建一个简单的分布式搜索引擎。 设计目标:大图景 从广义上讲,我们的设计目标包括 抽象 (abstraction:在不知道其内部的所有细节的前提下,利用该系统功能的能力)、 模块化 ...

集合

阅读(390)

基本数据结构 Scala 提供了一些不错的集合。 参考 Effective Scala 对怎样使用集合的观点。 列表 List scala> val numbers = List(1, 2, 3, 4) numbers: List[I...

Finagle 介绍

阅读(461)

Finagle-Friendly REPL 我们将要讨论的不是标准 Scala 的代码。如果你喜欢使用 REPL 学习,你可能想知道如何获得一个加入 Finagle 及其依赖的 Scala REPL。 你可以在这里获取 Finagle 源代...

基础知识2

阅读(445)

apply 方法 当类或对象有一个主要用途的时候,apply 方法为你提供了一个很好的语法糖。 scala> class Foo {} defined class Foo scala> object FooMaker { | d...

基础知识

阅读(458)

为什么选择 Scala? 表达能力 函数是一等公民 闭包 简洁 类型推断 函数创建的文法支持 Java互操作性 可重用 Java 库 可重用 Java 工具 没有性能惩罚 Scala 如何工作? 编译成 Java 字节码 可在任何标准 JV...

Scala 变量

阅读(363)

在Scala中,有三种方法可以定义变量:val,var和延迟 val。 Scala允许您在声明它时决定变量是否是不可变的(只读)。 val 使用关键字val声明不可变变量。 这意味着它是一个不能更改的变量。 下面的代码创建一个名为x并赋值为...

简介

阅读(462)

Scala 是一门多范式的编程语言,一种类似 Java 的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性。 我们认为最有意义的学习方式是,不要把 Scala 看做是改进的 Java,而是把它作为一门新的语言。所以这里不会介绍 ...

码农刷题必备工具 VS 码农进阶必读书籍

IT面试宝典宝典書城