随笔分类 - Scala
摘要:Akka 实例 18.1需求分析 实现一个分布式模型,Master 保持所有 Worker 节点的信息,根据 Worker 的心跳信息维持与 Worker 的连接,Worker 启动时向 Master 节点进行 注册,Master 节点回复 ACK 信息。 18.2项目源代码 18.2.1 新建 M
阅读全文
摘要:第17章 Actor 并发 17.1 Actor 模型 Actor 模型在并发程序中通过尽量避免锁和共享状态来设计并发,整个 Actor 模型是一个异步模型,系统中抽象出很多 Actor,每一个 Actor 是一个 消息的发送方和接受方,每一个 Actor 都有一个邮箱,类似于队列,ActorA 发
阅读全文
摘要:第16章 高级类型 16.1 类型与类的区别 在 Java 里,一直到 jdk1.5 之前,我们说一个对象的类型(type),都与它 的 class 是一一映射的,通过获取它们的 class 对象,比 如 String.class, int.class, obj.getClass() 等,就可以判断
阅读全文
摘要:第15章 文件和正则表达式 15.1 读取行 import scala.io.Source object FileSyllabus { def main(args: Array[String]): Unit = { //文件读取 val file1 = Source.fromFile("D:\\Da
阅读全文
摘要:第14章 隐式转换和隐式参数 14.1 隐式转换 隐式转换函数是以implicit关键字声明的带有单个参数的函数。这种函数将会自动应用, 将值从一种类型转换为另一种类型。 implicit def a(d: Double) = d.toInt //不加上边这句你试试 val i1: Int = 3.
阅读全文
摘要:第13章 类型参数 13.1 泛型类 类和特质都可以带类型参数,用方括号来定义类型参数,可以用类型参 数来定义变量、方法参数和返回值。带有一个或多个类型参数的类是泛型的。如下 p1, 如果实例化时没有指定泛型类型,则 Scala 会自动根据构造参数的类型自动推断泛型的具体类型。 class Pair
阅读全文
摘要:第12章 注解 注解就是标签。 标签是用来标记某些代码需要特殊处理的。 处理的手段可以在代码运行时操作,也可以在编译期操作。 12.1 什么可以被注解 1) 可以为类,方法,字段局部变量,参数,表达式,类型参数以及各种类型定义添加注解 @Entity class Student @Test def
阅读全文
摘要:第11章 特质 11.1 不允许多重继承 Scala 和 Java 都不允许直接的多重继承,因为会出现“deadly diamond of death”问题,Scala 提 供了特质(trait),类似于 Java 中的接口,特质可以同时拥有抽象方法和具体方法, 一个类可以实现多个特质。 11.2
阅读全文
摘要:第10章 继承 10.1 继承类 和 Java 一样使用 extends 关键字,在定义中给出子类需要而超类没有的 字段和方法,或者重写超类的方法。 class Person { var name = "" } class Employee extends Person { var salary =
阅读全文
摘要:第9章 包和引入 9.1 包/作用域 在 Java 和 Scala 中管理项目可以使用包结构,C 和 C# 使用命名空间。 对于 package,有如下几种形式: 1)形式体现: 等同于: 等同于: 尖叫提示:位于文件顶部不带花括号的包声明在整个文件范围内有效。 9.2 包对象 包可以包含类、对象和
阅读全文
摘要:第8章 对象 8.1 单例对象 Scala 中没有静态方法和静态字段, 你可以用 object 这个语法结构来达到同样的目的。 对象构造器在该对象第一次使用时调用。如果对象没有使用过,他的构造器不会被执行。 对象基本具有类的所有特性,就是一点,你不能设置构造器的参数。 测试: 8.2 伴生对象 Ja
阅读全文
摘要:第7章 类 7.1 简单类和无参方法 类的定义可以通过 class 关键字实现,如下: 使用这个类: 注:在 Scala 中,类并不声明为 Public,一个 Scala 源文件可以包含多个类。所有 这些类都具有公有可见性。调用无参方法时,可以加(),也可以不加;如果方法 定义中不带括号,那么调用时
阅读全文
摘要:第6章 高阶函数 6.1 作为参数的函数 函数作为一个变量传入到另一个函数中,那么该作为参数的函数的类型是:function1,即: (参数类型)=> 返回值 尖叫提示:带有一个参数的函数的类型是function1,带有两个参数的是function2,以此类推。 笔记: 6.2 匿名函数 即没有名字
阅读全文
摘要:第5章 模式匹配 5.1 switch 与 default 等效的是捕获所有的 case_ 模式。如果没有模式匹配,抛出 MatchError,每个 case 中,不用 break 语句。 和 if 一样,match 也会返回值: 你可以在 match 中使用任何类型,而不仅仅是数字。 笔记: de
阅读全文
摘要:第4章 数据结构 4.1 主要的集合特质 Scala 同时支持可变集合和不可变集合,不可变集合从不可变,可以安全 的并发访问。 两个主要的包: 1) 不可变集合:scala.collection.mutable 2) 可变集合: scala.collection.immutable Scala 优先
阅读全文
摘要:第3章 控制结构和函数 Java 中把表达式和语句当成两个不同的东西,表达式有值,语句没有值, 只是控制结构。在 Scala 中,几乎所有语法结构都有值。 3.1 If else 表达式 S 为什么会有值? If 语句的返回类型取决于最后一条语句。语句后面的分号不是必须的。 Scala 没有三元运算
阅读全文
摘要:第2章 Scala 基础 2.1 声明值和变量 Scala 声明变量有两种方式,一个用 val,一个用 var。 val / var 变量名 [: 变量类型] = 变量值 val 定义的值是不可变的,类似于一个常量。 Scala REPL 默认为匿名变量分配 val。 var 声明的变量是可变的。
阅读全文
摘要:第一章 Scala 安装配置 1.1 为什么选择 Scala Scala 产生于瑞士的洛桑联邦理工学院( EPFL),是“ 可扩展语言” (Scalable Language)的缩写,Sala 是一门静态类型语言, 是一门以 Java 虚拟机为目标运行环境并将面向对象和函数式编程语言的最佳特性结合在
阅读全文
摘要:EPFL 编程方法实验室 Scala 语言规范 版本:2.7 原作:马丁.奥德赛 翻译:高德 赵炜 2010-7-20 EPFL 编程方法实验室 Scala 语言规范 版本:2.7 原作:马丁.奥德赛 翻译:高德 赵炜 2010-7-20 目录 目录 词法 1 1.1. 标识符 1 1.2. 换行字
阅读全文

浙公网安备 33010602011771号