Robert Peng's Blog - https://mr-dai.github.io/ <快学Scala>Intro与第1章 - https://mr-dai.github.io/Scala-for-the-Impatient-1 <快学Scala>第2章(上):控制结构 - https://mr-dai.github.io/Scala-for-the-Impatient-2-1 <快学Scala>第2章(下):函数 - https://mr-dai.github…
1 简介 近期对Scala比较感兴趣,买了本<快学Scala>,感觉不错.比<Programming Scala:Tackle Multi-Core Complexity on the Java Virtual Machine>好很多. 是本不错的入门书.而且每个章节都设置了难度级别,每章有习题,可以巩固Scala语法. 本文的目的就是针对这些习题进行解答 2 基础  2.1 在Scala REPL中键入3,然后按Tab键.有哪些方法可以被应用? 这个....直接操作一遍就有结果了…
2.scala控制结构.函数.异常处理---小书匠,在线编辑器,MARKDOWN,Evernote,文件版本 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; outline-offset: -2px; } a:hover, a:active { outline: 0; } a { color: #0088cc; text-decoration: none; } a:hover { c…
trait的abstract override使用: 当我看到abstract override介绍的时候也是一脸懵逼,因为快学scala,只介绍了因为TimestampLogger中调用的super.log依旧是个abstract class,所以必须在方法前加上abstract和override.但是并没有具体介绍如何使用,然后查阅了其他文档,才明白使用方法. 下面的代码定义了超类LoggerEmpty,这个定义意味着该特质只能混入扩展LoggerEmpty的类中. 在特质中声明抽象方法中有…
控制结构和函数 1.在Scala中,几乎所有构造出来的语法结构都有值.这个特性是为了使得程序更加精简,也更易读. (1)if表达式有值 (2)块也有值——是它最后一个表达式的值 (3)Scala的for循环就像是“增强版”的Java for循环 (4)分号(在绝大多数情况下)不是必须的 (5)void类型是Unit (6)避免在函数定义中使用return (7)注意别在函数式定义中漏掉了= (8)异常的工作方式和Java中基本一样,不同的是catch语句中使用“模式匹配” (9)Scala没有受…
基础 1.1 声明值和变量 在Scala中,鼓励使用val; 不需要给出值或变量的类型,这个信息可以从初始化表达式推断出来.在必要的时候,可以指定类型. 在Scala中,仅当同一行代码中存在多条语句时才需要用分号隔开. 1.2 常用类型 Scala 7中数值类型:Byte, Char, Short, Int, Long, Float和Double,以及Boolean类型.跟Java不同的是,这些类型是类.可以对数值执行方法,1.toString() Scala不需要类型包装,类型之间的转换是Sc…
scala 1.   scala的由来 scala是一门多范式的编程语言,一种类似java的编程语言[2] ,设计初衷是要集成面向对象编程和函数式编程的各种特性. java和c++的进化速度已经大不如从前,那么乐于使用更现代的语言特性的程序员们正在将眼光移向他处.scala是一个很有吸引力的选择:事实上,在我看来,对于想要突破和超越java或者c++的程序员而言,scala是最具吸引力的一个.scala的语法十分简洁,相比java的样板代码,scala让人耳目一新.scala运行于java虚拟机…
第二章  控制结构和函数 1.条件表达式 (1)scala中if/else表达式有值,这个值就是跟在if或者else之后的表达式的值.如: if (x > 0) 1 else -1 这个表达式的值是1或者-1,具体是哪个值取决于x的值. 可以将这个if/else表达式的值赋给变量: val s = if (x>0) 1 else -1<=====> if (x>0) s=1 else s=-1 第一种方法更好,因为可以用来初始化一个val.第二种方法必须是var (2)Sca…
声明值和变量 用val定义的值实际上是常量.用var定义的值是变量.在scala中鼓励使用val.不需要给出值或变量的类型,这个信息可以通过初始化的表达式推断出来.(声明值和变量但不做初始化会报错) 在Scala中,变量或函数的类型总是写在变量或函数名称的后面.如下: val greeting: String = null val greeting: Any = "Hello" 在Scala中,仅当同一行中存在多条语句是才需要使用分号隔开. 我们可以将多个值或变量放在一起声明,如下:…
1 基础 1.1 Scala 解释器 REPL - 交互式解释器环境 R(read).E(evaluate).P(print).L(loop) 输入值,交互式解释器会读取输入内容并对它求值,再返回结果,并重复此过程. 1.2 声明 val(值) 和 var(变量) val: 定义值(常量), 即不可改变引用的指向(不可对其进行赋值操作), 指向的对象能否可变取决于变量自身类型 var: 定义变量, 可以改变引用的指向 声明值或者变量的同时, 必须初始化; 可以不指定类型, Scala可以利用初始…