
Scala
文章平均质量分 88
Shawn Jeon
Contact e-mail: shawnjeon@163.com
展开
-
Cats(二)
Cats 二单位元(Identity Law)结合律(Associative Law)Monoid(幺半群)& Semigroup(半群)Monoid(type class)Semigroup(type class)cats.Monoid& cats.Semigroup(type class)cats: Monoid Instancescats: Monoid Syntaxcats: Exercise: Adding All The Things单位元(Identity Law)单位元原创 2022-03-04 20:31:14 · 801 阅读 · 0 评论 -
Cats(一)
Cats 一Type classType class(接口)Type Class Instances(隐式值)Type Class Interface(带隐式参数的函数)使用 Type Class练习: 实现一个PrintableMeet Catscats.Show(type class)cats.Eq(type class)Controlling Instance Selection(控制 Instance的选择)Type classType class模式主要由3个部分组成:Type cla原创 2022-02-23 21:36:53 · 740 阅读 · 0 评论 -
Scala并发编程(二)之 Akka
Scala并发编程之 Akka概述Akka通信过程Actor Path入门案例定时任务案例两个进程之间的通信案例简易版 Spark通信框架实现案例概述Akka是使用 Scala开发的库, 它是基于事件驱动的, 用于构建高并发项目的工具包Akka特性:提供基于异步非阻塞, 高性能的事件驱动编程模型内置容错机制, 允许 Actor出错时, 进行恢复或重置轻量级的事件处理(每 GB堆内存几百万 Actor. *轻量级事件处理和重量级的划分, 主要看是否依赖操作系统和硬件, 依赖是重量级,原创 2022-02-12 18:30:02 · 1615 阅读 · 0 评论 -
Scala并发编程(一)之 Actor
Scala并发编程之 ActorJava并发编程对比 Actor并发编程创建 Actor步骤Actor发送& 接收消息发送消息接收消息实例 1: (!) 发送异步消息, 无返回值实例 2: (!?) 发送同步消息, 等待返回值实例 3: (!!) 发送异步消息, 返回值是 Future[Any]WordCount案例(单词计数)Java并发编程对比 Actor并发编程Java并发编程: 多线程读写共享资源时, 会将每个线程同步加锁, 并通过对象的逻辑监视器(Monitor)来控制共享资源的访问原创 2022-02-08 20:43:13 · 1426 阅读 · 0 评论 -
Scala(六)
Scala 六异常处理隐式转换泛型协变和逆变泛型上下限(上下界)上下文限定异常处理为了不让程序异常终止, 使用 try-catch语句. 将可能会出异常的代码封装在 try块中, 当发生异常时, catch捕获异常, 并处理Scala没有checked(编译期)异常, 而异常都是Runtime异常运行的时候捕获当异常发生, catch子句, 是按顺序捕捉的. 因此, 范围小的异常类写在前面, 范围大的异常类写在后面, 一旦前面的异常被捕获, 写在后面的异常类, 即使也在范围内也不会被捕获fi原创 2022-02-03 19:55:31 · 540 阅读 · 0 评论 -
Scala(五)
Scala 五模式匹配模式匹配-类型模式匹配-正则表达式模式匹配-对象样例类样例对象Option类型偏函数(PartialFunction)模式匹配模式匹配时, 会从第一个 case分支开始, 如果匹配成功, 则执行对应的逻辑代码, 并结束当前模式匹配. 如果所有 case都不匹配, 那么会执行 case _分支, 类似于 Java中 default语句如果没有 case _分支, 那会抛 scala.MatchErrormatch case语句, 可以匹配任何类型, 而不单是字面量(=>原创 2022-01-31 14:51:06 · 774 阅读 · 0 评论 -
Scala(四)
Scala 四集合数组(Array/ArrayBuffer)不可变数组: Array(Scala推荐使用不可变数组可变数组: ArrayBuffer不可变数组与可变数组的转换多维数组列表(List/ListBuffer)不可变列表: List可变列表: ListBufferSet集合(Set/mutable.Set)不可变: Set可变: mutable.SetMap集合(Map/mutable.Map)不可变: Map可变: mutable.Map元组衍生集合集合计算简单函数集合高级函数WordCount原创 2022-01-27 19:24:39 · 759 阅读 · 0 评论 -
Scala(三)
Scala 三包管理面对对象类(class):封装访问权限创建对象构造器继承和多态抽象类单例对象(伴生对象)特质/特征(Trait)特质(Trait)自身类型设计模式(Design Pattern)类型检查和转换枚举类和应用类Type定义新类型包管理两种包管理风格(package):一种和 Java一样, 每一个源文件一个包(包名和源文件所在路径可以不一致, 编译后, 编译器会自动按包结构放置字节码文件), 包名用(.)进行分隔, 以表示包的层级关系 com.company.scala1-1原创 2022-01-23 16:01:57 · 532 阅读 · 0 评论 -
Scala(二)
Scala 二函数式编程Scala函数函数参数函数精简化匿名函数(Lambda)函数柯里化(Currying) &闭包(Closure)递归(Recursion)控制抽象(Control abstraction)自定义 While循环惰性加载/懒加载(Lazy loading)面向对象编程:(-) 构成问题的各个事务分解成各个对象, 建立对象的目的不是为了完成一个步骤, 而是为了描述解决问题步骤中的行为(*对象的本质: 数据和行为的一个封装)函数式编程:(-) 将问题分解成一个个步骤,原创 2022-01-19 20:42:34 · 453 阅读 · 0 评论 -
Scala(一)
Scala 一Scala简介下载安装创建 Maven项目变量和常量数据类型自动类型转换(隐式转换)强制类型转换数值类型与 String类型间的转换运算符流程控制For循环控制While和 do..While循环控制循环中断文件IO官网 https://www.scala-lang.orgScala简介Martin Odersky, 从2001年开始设计 Scala. 将函数式编程语言的特点融合到 Java中, 以此推出了两种语言 Pizza& ScalaPizza和 Scala极大地推动了原创 2022-01-15 16:32:17 · 944 阅读 · 0 评论