【Scala】
laiwenqiang
世间最痛苦的事,莫过于泯然于众人,默默无闻。
展开
-
Scala学习笔记02
Scala的一种容器对象:元组(tuple)原创 2014-11-10 20:02:37 · 1357 阅读 · 1 评论 -
Scala学习笔记09--隐式转化implicit
scala 使用 implicit 隐式转化时 , scala 编辑器发现对象的类型不匹配时,不会直接报错,而会在代码中尝试匹配implicit声明的object,当然,相同方法签名的类必须唯一。-------------------------------------------------------------------------------------------原创 2014-12-18 21:55:25 · 7102 阅读 · 1 评论 -
Sbt仓库设置
每次sbt update的时候,都很慢,上火。原因是国内访问国外仓库,不给力。改下repo仓库的设置就好了:找到.sbt文件夹,一般在Administrator下,然后在.sbt里新建一个repositories文件,添加内容:[repositories]localosc: http://maven.oschina.net/content/groups/public/t原创 2014-12-18 22:56:40 · 18193 阅读 · 1 评论 -
Akka学习笔记01--简介和HelloWorld程序
Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。Actor模型并非什么新鲜事物,它由Carl Hewitt于上世纪70年代早期提出,目的是为了解决分布式编程中一系列的编程问题。其特点如下:系统中的所有事物都可以扮演一个Actor Actor之间完全独立 在收到消息时Actor所采取的所有动作都是并行的,在一原创 2014-12-22 15:26:54 · 1148 阅读 · 2 评论 -
scala学习笔记06--主从构造器
在Scala中,有两种构造器,主构造器(primary constructor)和从构造器(auxiliary constructor)。主要点都夹杂在代码注释中,留存。/*构造器*/object constractTest { def main(args: Array[String]): Unit = { var p = new Person(20) prin原创 2014-12-11 14:53:23 · 5314 阅读 · 0 评论 -
scala学习笔记07--样本类(case class)和模式匹配
样本类:添加了case的类便是样本类。这种修饰符可以让Scala编译器自动为这个类添加一些语法上的便捷设定。如下: 1.添加与类名一致的工厂方法。也就是说,可以写成Var("x")来构造Var对象。 2.样本类参数列表中的所有参数隐式获得了val前缀,因此它被当作字段维护。 3.编译器为这个类添加了方法toString,hashCode和equals等方法。模原创 2014-12-12 10:09:54 · 4959 阅读 · 0 评论 -
Scala学习笔记05--控制抽象
控制抽象1. 本章作用:减少重复的代码。2. 高阶函数:将一个函数作为其他函数的参数传递。为了减少重复代码。2.1 书上的代码示例太墨迹,自己写个例子。第一步,先看两个函数:def sum(a: Int,b: Int, c: Int) = a + b + c; //将三个整数相加 def dec(a: Int, b:Int, c: Int)原创 2014-11-12 16:46:17 · 1851 阅读 · 1 评论 -
scala学习笔记08--Option和case
Option是个数据类型,Map的get()方法返回的就是Option类型。做个标记,内容以后补充。object optionTest { def main(args: Array[String]): Unit = { println(captials("France")) //下个语句出错。 // println(captials("China")) println原创 2014-12-12 14:38:33 · 1126 阅读 · 0 评论 -
Scala学习笔记05--特质
在 Java 或者 Scala 的类中,super.method() 这样的方法调用是静态绑定的,也就是说当你在代码中写下 super.method() 的时候就能明确是调用它的父类的 method() 方法。然而,如果是在特质中写下了 super.method() 时,它的调用是动态绑定的。调用的实现奖在每一次特质被混入到具体类的时候才被决定。object TraitTest { de原创 2014-12-11 09:26:33 · 581 阅读 · 0 评论 -
Scala类型参数中协变(+)、逆变(-)、类型上界(<:)和类型下界(>:)的使用
原文地址:http://fineqtbull.iteye.com/blog/477994有位je上的同学来短信向我问起了Scala类型参数中协变、逆变、类型上界和类型下界的使用方法和原理,自己虽然也刚学不久,在主要调查了《Programing in Scala》的19章后,试着在下面做一个总结。如有错误之处还请各位指正。先说说协变和逆变(实际上还有非变)。协变和逆变主要是用来解转载 2014-12-17 14:12:07 · 1144 阅读 · 0 评论 -
Spray体系结构
Spray的模块结构Aug 2nd, 2013 | Comments Spray是基于Akka之上的轻量级Scala库,提供对客户端与服务端REST/HTTP的支持。在使用上,大概可以将其视为Java平台下的Jersey;虽然它们的特性并不尽相同。从Scala语言来看,它提供的Future与Promise可以较好地支持并发;而Akka的Actor模型无疑助推了Spray的并发处理性转载 2014-12-16 21:16:25 · 2741 阅读 · 0 评论 -
scala学习笔记01
val和var:Scala有两种变量,val和var。val类似于Java里的final变量。一旦初始化了,val就不能再赋值了。与之对应的,var如同Java里面的非final变量。var可以在它生命周期中被多次赋值。原创 2014-11-10 16:04:36 · 1064 阅读 · 0 评论 -
Scala学习笔记03
过滤器:有些时候你不想枚举一个集合类的全部元素。而是想过滤出一个子集。你可以通过把过滤器:filter:一个if子句加到for的括号里做到原创 2014-11-11 20:18:07 · 894 阅读 · 0 评论 -
Scala的=>作用
举例:var increase = (x: Int) => x + 1=>指明这个函数把左边的东西(任何整数x)转变成右边的东西(x + 1)。所以,这是一个把任何整数x映射为x + 1的函数。原创 2014-11-11 15:05:03 · 27959 阅读 · 0 评论 -
Scala的object
由于Scala里面没有static一说,取而代之的是object关键字,类似于java里的原创 2014-11-12 10:15:31 · 885 阅读 · 0 评论 -
Scala的无参方法
先看一个abstract类:abstract class Element { def contents: Array[String] def height: Int = contents.length def width: Int = if (height == 0) 0 else contents(0).length }原创 2014-11-12 17:22:32 · 1675 阅读 · 0 评论 -
Scala学习笔记04
try...catch...finally原创 2014-11-12 10:19:22 · 856 阅读 · 0 评论 -
sublime3编译运行scala程序
sublime3编译scala程序用sublime3加上repl,在zhi原创 2014-11-18 11:30:10 · 2798 阅读 · 0 评论 -
根据官网构建Scala的Rest服务
scala的spray库,构建一个简单的Rest服务,获取源代码:https://github.com/spray/spray-template加载SBT,命令:sbt运行测试用例:test启动服务:re-start停止服务:re-stoptips:build.sbt 已配置 Revolver.settings,可使用命令:re-start和re-stop,详细参考sb原创 2014-12-16 16:17:47 · 1721 阅读 · 0 评论 -
SBT命令打包流程
打包需要给工程打个jar包,到对应的目录下,执行命令行参数:sbt assembly堆栈溢出出现错误:java.lang.StackOverflowError对于这个溢出,需要更改stack的大小,找到sbt的配置文件:sbtconfig.txt,添加内容:-Xss2m内存溢出出现错误:java.lang.OutOfMemoryError常见的内原创 2015-10-30 15:13:21 · 11015 阅读 · 0 评论