Created by odersky on 2011-01-16. Updated: 2011-01-16, 17:35 java
Scala有一些善变和灵活。它令许多编程任务变得简单,可是同时它还包含了一些复杂的结构以便专家来设计真正高级的,类型安全的类库。这意味着,根据你审视代码的角度不一样,Scala看上去可能很简单,也可能很复杂。可是哪些对初学者来讲是简单的,哪些是复杂的呢?其实,每一个人都有本身的准则。然而,我却试图给出一个粗糙的分类。 express
我但愿这样作可以对初学者选择学习主题的顺序有所帮助,而且可以给教师和书的做者之内容组织顺序上的建议。 编程
我假设编程者有很好的java的知识,所以咱们理所固然的认为您对java1.4是很是了解的。若是不是这样的话,一些入门级的概念好比类和异常将要被移动到更高的级别上。 安全
我也区分了Scala程序设计者和Scala类库设计者。由于这两者所须要的技能的确是彻底不一样的。 闭包
级别A1:初级程序设计者 工具
l 和java类似的语句与表达式:标准操做符,方法调用,条件语句,循环,try/catch 学习
l 类,对象,def,val,var,import,package spa
l 方法调用使用记号:好比+-*%均可以定义成方法 设计
l 简单的闭包 对象
l 使用集合类以及过滤等
l For表达式
级别 A2:中级程序设计者
l 模式匹配
l 特征组合
l 递归,部分尾递归
l XML字面值
级别 A3:专家程序设计者
l 折叠(Folds),例如方法的左折叠,右折叠
l 流和数据延迟结构
l Actors
l Combinator parsers
级别 L1: 初级类库设计者
级别L2: 资深类库设计者
级别L3: 专家类库设计者
正如我以前所说的,类库设计者和程序编写者所须要的技能组合是彻底不一样的。可是若是我必定要将其放在一块儿的话,我会作以下的组合:
A1, A2/L1, A3/L2, L3
也就是说,中级程序设计者和初级类库设计者在一个难度级别上。高级程序设计者和资深类库设计者在同一个级别上。
澄清:级别A1的程序设计者能够很好的编程。若是他来自java的话可能很快就能达到这个级别。达到A2级别无疑会极大的提升开发效率。级别A3是专家的级别,他们一般会面对一些特殊的任务,不是每一个人都须要达到这个级别。对于类库设计者来讲也是同样的。级别L1和L2提供的工具能够极好的进行类库设计了。有一些类库须要L3的某些元素,例如implicits和higher-kinded types。可是即便使用这些元素,类库也不会本身变得更好,并且每每拔苗助长。