Scala
__ZhouWei
Work Hard!
展开
-
Scala下划线的应用场景
1、作为“通配符”,类似Java中的*。如import scala.math._2、:_*作为一个整体,告诉编译器你希望将某个参数当作参数序列处理!例如val s = sum(1 to 5:_*)就是将1 to 5当作参数序列处理。3、指代一个集合中的每个元素。例如我们要在一个Array a中筛出偶数,并乘以2,可以用以下办法:a.filter(_%2==0).ma转载 2015-03-04 11:00:41 · 347 阅读 · 0 评论 -
Scala PartialFunction 与 括号
scala 中允许带有单个参数的 function 略去括号, 例如: >def foo(x: Int) = x + 1 >foo(x) >2 >foo x >2而PartialFunction可以通过 { case … => …}定义,例如: scala> val p:PartialFunction[Int,Int] = {case i:Int => i原创 2015-12-09 08:42:20 · 407 阅读 · 0 评论 -
欢迎使用CSDN-markdown编辑器
Scala的trait和数据库连接 T.T为了方便把connection写到trait里,结果造成了数据库连接超出最大值。所以,把connection写到object中,trait直接用该connection就可以了.原创 2015-07-07 14:39:54 · 345 阅读 · 0 评论 -
Play 填坑之旅 1
play framework 所有文件都要是utf-8编码的,如果有不是该编码的文件会出现encoding error,并且所有通过activator生成的文件也要是utf-8编码。如果指明了在写哪个文件时出现了编码问题的,直接去修改该文件的编码,不用去找其他文件的问题,该文件即便是activator生成的,也要改....原创 2015-06-03 14:11:02 · 393 阅读 · 0 评论 -
[akka] Actor的生命周期
Actor的生命周期Empty Path 通过ActorSystem的actorOf方法创建一个新的Actor并返回其ActorRef: 该Actor的path被确定则不会在被分配出去; 该Actor拥有一个随机的UID; 该Actor是一个Actor实例; 在实例的过翻译 2015-05-15 09:12:43 · 527 阅读 · 0 评论 -
Scala 提取器
Scala中的模式可以通过case class独立的定义。在此基础上一个名为unapply的方法被定义用于被称为提取器的东西。下例中分别定义了两个提取器对象(apply,unapply): object Twice { def apply(x: Int): Int = x * 2 def unapply(z: Int): Option[Int] = if (z%翻译 2015-04-28 17:03:22 · 333 阅读 · 0 评论 -
[Play Framework]Body parsers——请求主体解析器
什么是请求主体解析器通常HTTP的PUT和POST请求都包含一个主体(body)。该主体可以是任意格式的,并且通过‘Content-Type‘定义其具体格式。在Play中,请求主体解析器将这些请求的主题内容转换为对应的Scala可以直接读取/操作的值。 虽然,HTTP请求的主体可以是非常庞大的,并且请求主体解析器通常也不能一直等待并将其载入到系统内存中。BodyParser[A]实际上是基于翻译 2015-04-26 19:28:42 · 884 阅读 · 0 评论 -
[Play Framework]Session and Flash scopes——用Play操作Session和Flash数据
在Play中有它们什么不同?如果你不得不为多条HTTP请求保存数据,你能够将这些数据存入Session或者Flash的作用域中。在用户的整个会话过程中存在Session中的数据都是可用的,或者将用户数据存入Flash作用域中直到用户发出下一个请求时。 在使用Play的Cookie机制时,明白Session和Fliash所存储的数据并不是存储在服务器端,而是被附加在每一次后随后发来的HTTP请翻译 2015-04-24 21:45:43 · 1520 阅读 · 0 评论 -
[Play Framework]Manipulating Results——操作结果
更改默认的内容类型响应的实体内容的类型通常来说是被编译器通过Scala返回值类型推断出来的。例如:val textResult = Ok("Hello World!")该结果会被编译器在response中写为Content-Type: text/plain,而对于:val xmlResult = Ok(message>Hello World!message>)会被认为是翻译 2015-04-24 17:06:59 · 438 阅读 · 0 评论 -
[Play Framework] HTTP路由规则设置
内置的Http路由路由是负责对每条输入HTTP请求进行转发的组件。HTTP请求在MVC模式中被视为事件。该事件主要包含两方面的信息: 1.请求路径(例如:/clients/1234 或 /photo/4321),包含了请求的字符串; 2.HTTP方法,GET、POST等。路由的具体在conf/routes文件中进行设置,该文件在编译时是会被编译的。因此,可以通过浏览器直观的看到路由的错误翻译 2015-04-24 15:09:31 · 1069 阅读 · 0 评论 -
Scala 变长参数列表 和 Seq
scala中可以通过如下形式声明变长参数列表 scala> def sum(i : Int *) = i.sum sum: (i: Int*)Int scala> sum(1,2,3) res0: Int = 6此时sum函数接受一个长度不定的Int的集合,并可以调用集合相关方法。参数i可以被当作集合来使用。我们有时候会通过其他方式生成一个集合,并试图将其传入这种带有变长原创 2015-12-09 17:24:03 · 5559 阅读 · 0 评论