
Scala
码界一棵葱
这个作者很懒,什么都没留下…
展开
-
Scala implicit
Scala implicitimplicit基本含义在Scala中有一个关键字是implicit, 之前一直不知道这个货是干什么的,今天整理了一下。我们先来看一个例子:def display(input:String):Unit = println(input)我们可以看到,display函数的定义只是接受String类型的入参,因此调用display("a原创 2016-07-20 11:00:13 · 278 阅读 · 0 评论 -
Scala的apply()、unapply()、unapplySeq()方法
apply通常被称作注入方法unapply通常被称为提取方法,使用unapply来提取固定数量的对象,使用unapplySeq来提取一个序列1、apply用法:对象(),默认调用该对象的apply方法object ApplyAndUnapply{ def main(args: Array[String]): Unit = { Apply原创 2016-11-21 10:53:24 · 832 阅读 · 1 评论 -
build.sbt 的定义格式详解
一个简单的build.sbt文件内容如下:name := "hello" // 项目名称organization := "xxx.xxx.xxx" // 组织名称version := "0.0.1-SNAPSHOT" // 版本号scalaVersion := "2.9.2" // 使用的Scala版本号// 其它build定义其中, name和ve原创 2016-11-29 10:17:54 · 1743 阅读 · 1 评论 -
scala 模式匹配之Type、Array、List和Tuple
1、代码package com.yy.base/** * Scala 模式匹配 * Type Array List Tuple */object PatternMatchMore extends App { println("-----Type模式匹配------") def typeMatch(t:Any) = t match{ case c:I原创 2016-10-18 16:34:43 · 285 阅读 · 0 评论 -
Scala使用Option、Some、None,避免使用null
避免null使用大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是“无”,在Java,它是null。在Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的。但是这对语言设计者来说是一件令人疑惑的选择。为什么要在程序员希望返回一个对象的时候返回一个关键字呢?Scala的Option类型为了让所有东西都是对象的目标更加一致,也为了遵循函数原创 2016-10-15 11:30:07 · 1173 阅读 · 0 评论 -
Scala集合(一)
这个章节的内容包含基本数据结构ListSetTupleMaps函数组合器mapforeachfilterzippartitionfinddrop and dropWhilefoldRight and foldLeftflattenflatMap广义的函数组合器如何处理好Map?基本数据结构Scala提供了一些很方便的集合类。参考 《E原创 2016-08-24 10:17:29 · 338 阅读 · 0 评论 -
Scala集合(二)
Scala提供了一系列的集合类的实现。同时,它对于集合类型也进行了一些抽象。这就使得你可以操作一个集合的Foo对象,而不用去关心这个集合是一个List,Set还是其他的什么。这个网页提供了一个很好的方式来理解scala里的集合的默认实现,并且都链接到了相应的scaladoc。基本集合类 常用的集合类型层级关系 集合类的抽象关系集合方法可变性Java 集合类也可直接使用原创 2016-08-24 10:19:20 · 397 阅读 · 0 评论 -
Scala 的 yield 例子 (for 循环和 yield 的例子)
原文链接:http://alvinalexander.com/scala/scala-for-loop-yield-examples-yield-tutorial我看了《Programming in Scala》一书,仍然对 Scala yield 关键字的理解不甚清楚。起初我以为 Scala yield 的与 Ruby 的 yield 是一样,Ruby 中 yield 是被传入代码块翻译 2016-08-11 12:40:36 · 454 阅读 · 0 评论 -
Scala中的对象
1、case object和普通object有什么区别要说case object用于模式匹配,普通object也能被用于模式匹配中,看例子:scala> trait IAdefined trait IAscala> val x :IA = A4x: IA = A4$@939bdbscala> x match{ | case A4 => | }看上去没原创 2016-08-05 16:56:07 · 247 阅读 · 0 评论 -
IntelliJ IDEA使用SBT构建一个AKKA Scala程序
1、下载安装 IntelliJ IDEA2、下载安装 Scala3、在IntelliJ IDEA中安装Scala插件4、创建工程5、设置build.sbt在项目中的build.sbt中追加下图所示的resolvers和libraryDependenciesresolvers += "Typesafe Repository" at "http:原创 2016-08-03 11:33:06 · 2883 阅读 · 0 评论 -
Akka - 热插拔(become和unbecome)
Akka支持在运行时对角色消息循环 (例如它的的实现)进行实时替换: 在角色中调用getContext.become 方法。 热替换的代码被存在一个栈中,可以被pushed(replacing 或 adding 在顶部)和popped。become一个特别好的例子是用它来实现一个有限状态机。使用Become/Unbecome特性还可以很方便的实现状态转换机。become定义/**原创 2016-08-04 17:27:45 · 904 阅读 · 0 评论 -
Scala中的Implicit(隐式转换,隐式参数,隐式类)
代码如下:/** * 隐式转换 隐式参数 隐式类 *///隐式转换class Implicit(a: A) { def Test: Unit = { println("Implicit") }}class A {}object Implicit { //隐式转换 implicit def a2Implicit(a: A) = new Impl原创 2016-08-04 13:25:43 · 292 阅读 · 0 评论 -
Actor模型的原理
先从著名的c10k问题谈起。有一个叫Dan Kegel的人在网上(http://www.kegel.com/c10k.html)提出:现在的硬件应该能够让一台机器支持10000个并发的client。然后他讨论了用不同的方式实现大规模并发服务的技术,归纳起来就是两种方式:一个client一个thread,用blocking I/O;多个clients一个thread,用nonblocking I/O原创 2016-08-03 14:47:53 · 796 阅读 · 0 评论 -
Scala 将 => 转换成 ⇒
原创 2016-11-21 10:54:41 · 673 阅读 · 0 评论