摘要: 存在类型 形式: 或 主要为了兼容 Java 的通配符 示例 scala Array[_] // 等价于 Array[T] forSome { type T} Map[_, _] // 等价于 Map[T, U] forSome { type T; type U T`| |注解| | |参数类型| 阅读全文
posted @ 2019-11-01 22:10 afewnotes 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 在 Scala 中所有值都有一种对应的类型 单例类型 形式: ,返回类型 / 场景1:链式API调用时的类型指定 由于 Scala 会将 推断为当前类(即 ),因此无法完成链式调用 场景2:方法中使用 实例作为参数 Note:不可定义为 ~~def c1(obj: Foo)~~,因为 Foo 为单例 阅读全文
posted @ 2019-10-29 20:53 afewnotes 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 类型关系 Scala 支持在泛型类上使用型变注释,用来表示复杂类型、组合类型的子类型关系间的相关性 协变 ,变化方向相同,通常用在生产 假设 , 对于 ,则 也可看做 由于 Scala 标准库中不可变 的定义为 ,因此 是 的子类型, 也是 的子类型,所以可直接将他们当作 使用。 逆变 ,变化方向相 阅读全文
posted @ 2019-10-09 23:17 afewnotes 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 类型参数 表现形式:在名称后面以方括号表示, 何处使用 class 中,用于定义变量、入参、返回值 函数、方法 类型边界 上边界 compareTo Comparable` 的子类型,即需要添加上边界 scala class Pair[T : LowerBound` 替换第一个元素为 T 的父类 R 阅读全文
posted @ 2019-10-08 23:32 afewnotes 阅读(221) 评论(0) 推荐(0) 编辑
摘要: Future " " 异步执行代码块 监听结果(阻塞) ready() 到达等待时间无结果时,会抛出异常 任务抛出的异常时,result() 会再次抛出异常, ready() 可获取结果 回调 问题:1.回调地狱;2.执行顺序无法预知 将 Future 看作集合 scala // val 会立即执行 阅读全文
posted @ 2019-10-07 08:47 afewnotes 阅读(207) 评论(0) 推荐(0) 编辑
摘要: XML 直接在代码中使用 XML 字面量 中的 与 不同,不包含父节点信息 层级 操作 内嵌表达式,在XML中直接写 Scala 代码块 模式匹配 scala case {Text(item)} = item case {children @ _ } = for (c 只能使用单个 进行匹配 加载、 阅读全文
posted @ 2019-10-07 08:39 afewnotes 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 接收一元函数 转换元素,主要应用于不可变集合 与 相同,不过用于可变集合,直接转换 接收偏函数( )作为参数;模式匹配也是一种偏函数 按指定函数分组,返回 接收二元函数 从左向右规约 从右向左规约 提供初始值+二元函数,从左向右折叠,每次计算结果在左侧 可用 (表示树形左侧)操作符表示, 提供初始值 阅读全文
posted @ 2019-10-02 11:08 afewnotes 阅读(120) 评论(0) 推荐(0) 编辑
摘要: Operators Thread. () 反引号除了用于命名标识符,还可以在调用方法时避免冲突( 为 Scala 关键字,但也是 的方法) 中缀运算符(infix operators),实际是带两个参数的方法,定义时跟普通方法一样; 实际是 一元运算符(unary operators) 四个可当做前 阅读全文
posted @ 2019-10-01 09:52 afewnotes 阅读(210) 评论(0) 推荐(0) 编辑
摘要: Higher Order Functions 定义的是方法,而不是函数 函数可作为变量存在,可直接调用,也可作为值传递给其他函数 后缀将普通方法变为函数: 根据上下文编译器可以自动将方法转换为函数,也可省略 后缀 高阶函数,接收函数的函数 参数类型推导 匿名函数传递给其他函数或方法时,如果一直到参数 阅读全文
posted @ 2019-09-30 21:30 afewnotes 阅读(207) 评论(0) 推荐(0) 编辑
摘要: Classes 一个源文件可包含多个类,每个类默认都是 public 类字段必须初始化,编译后默认是 private,自动生成 public 的 getter/setter ; "Person 示例" 字段,生成 private 的 getter/setter 字段,只生成 getter 字段,不生 阅读全文
posted @ 2019-09-29 21:26 afewnotes 阅读(227) 评论(0) 推荐(0) 编辑