
Scala
Yanbin_Q
真没什么要交待的,保持沉默
展开
-
Scala 的参数检查与断言: require, assert, assume 和 ensuring
似乎 C/C++ 的编程人员相比于 Java 更偏爱于断言,JDK 1.4 才开始引入 assert 的支持,但默认是关闭的,需要用 -ea 编译选项打开,否则代码中的 assert 语句全被忽略,一般会在单元测试中开启该选项。简单回顾一下 JDK 自带的断言,它用两种写法 assert object != null; assert object != null : "object原创 2017-02-09 14:15:38 · 6050 阅读 · 0 评论 -
体验 Scala 2.12 支持的 Java 8 风格(SAM) Lambda
上一次关注 Scala 新版本特性还是在将近五年前,针对的是 Scala 2.10. 后来也一直在使用 Scala,基本上是 Scala 2.11,但对 Scala 2.11 所带来的新特性基本无知,大约有个 Macro 功能,没什么机会用上,应用 sbt 时稍有接触。还是老句老话,了解新特性最可靠的文档是每个版本的的 Release Notes, 比如 Scala 2.12.0 Relea原创 2017-11-30 10:23:14 · 3620 阅读 · 0 评论 -
IntelliJ IDEA 中创建 Maven Scala 项目
Scala 项目看家的构建工具当然是 SBT, 假如我们已习惯于 Maven, 想要用 Maven 来构建 Scala 项目该如何做呢?那首先要找到一个 Maven Scala 相应的 Archetype, 然后用命令 mvn archetype:generate 或是在 IntelliJ IDEA 使用 Maven 项目创建向导来选择一个 Maven Scala Archetype。这里主要原创 2017-11-25 10:22:48 · 3157 阅读 · 0 评论 -
Scala 中应用 Future 并发编程
Java 世界里进行并发编程有 Future 和 ExecutorService(当成 ThreadPool 来对待),及至 Java 8 引入了更为趁手的 CompletableFuture。那么使用 Scala 该如何进行并发编程呢?Scala 能毫无障碍的使用 Java 类库,所以完全可以用 Java 的 API 来使用线程池,只是那不太 Scala 罢了。 既然是 Scala, 就原创 2017-12-14 16:50:32 · 2829 阅读 · 0 评论 -
Akka Actor: 从最简单的例子开始
Akka 是什么?它提供了 JVM 上的 Actor 编程模型 -- 同时兼顾了并发与分布式。它由 Scala 编写的,替代了 Scala 本身的 Actor。Actor 视线程为重量级的资源,能够以少量的内存胜任更高的并发,类似的东西有纤程,协程。有一个数据对比是同样的 1GB 内存,可以创建 2.7M 个 Actor, 而线程只能创建 4096 个,仅供参考,当然 Java 也是会基于线程池来...原创 2018-02-14 07:07:31 · 770 阅读 · 0 评论 -
Scala 自身类型(self-type) 解析
Scala 有一个自身类型(self-type) 的东西,由来已久,居然今天才发现。如果一个类或 trait 指明了 self-type 类型(包括类和特质),它的子类型或是对象也必须是相应的类型。它产生的效果与继承(或 mixin) 颇有几分相似。self-type 的语法是 this 的别名: 某一类型(class 或 trait), 直接看一个例子:class User(val name: ...原创 2018-02-14 07:08:36 · 1241 阅读 · 0 评论