
Scala
wbj0110
这个作者很懒,什么都没留下…
展开
-
Scala语言
用Java语言开发许久了,一直接触指令式的语言开发,同时也做的多了,也逐渐感觉到了静态语言的一些弊病。Scala的出现,可以使Java程序员平滑的过度,Scala语言也是运行在JVM上的,可以与Java无缝交互;Scala是面向对象的,可以通过提升接口的抽象级别来帮助管理复杂性。Scala是简洁的,Scala程序员曾报告说,与Java比起来,它的代码行数可以减少到Java的1/10,哈哈,是不...原创 2014-05-25 09:00:39 · 96 阅读 · 0 评论 -
手动安装sbt
1、下载sbt通用平台压缩包:sbt-0.13.5.tgz http://www.scala-sbt.org/download.html 2、建立目录,解压文件到所建立目录$ sudo tar zxvf sbt-0.13.5.tgz -C /opt/scala/ 3、建立启动sbt的脚本文件/*选定一个位置,建立启动sbt的脚本文...原创 2015-01-15 15:49:24 · 113 阅读 · 0 评论 -
闪购网站Gilt从Rails迁移到Scala
闪购网站Gilt.com是一个新生的电子商务模式,其特点是在几秒钟内流量爆棚100倍,每天大概持续15分钟,这家网站的首席架构师Eric Bowman谈了如何从Ruby On Rails迁移到Scala的感受,大意如下:flash-sales这种闪存销售模式决定了必须建立一个能够支持这种突然爆发的系统。我们的解决方案是基于分布式架构开发数百个Scala微服务。我们不会认为开始使用...原创 2014-08-04 10:13:26 · 672 阅读 · 0 评论 -
Scala 的 apply 和 update 方法的应用
Scala 是构建在 JVM 上的静态类型的脚本语言,而脚本语言总是会有些约定来增强灵活性。灵活性可以让掌握了它的人如鱼得水,也会让初学者不知所措。比如说 Scala 为配合 DSL 在方法调用时有这么一条约定:在明确了方法调用的接收者的情况下,若方法只有一个参数时,调用的时候就可以省略点及括号。如 “0 to 2”,实际完整调用是 “0.to(2)”。但 “println(2)” 不能...原创 2015-02-27 15:52:42 · 146 阅读 · 0 评论 -
Scala构建工具SBT的安装
SBT(Simple Build Tool),专门用于构建Scala应用程序,其在windows下的安装步骤如下:1、自动安装 (1)下载http://www.scala-sbt.org/release/docs/Getting-Started/Setup.html (2)双击安装,安装完成后,双击安装目录里的sbt.bat,以完成相应配置2、手动安装 (1)下载http:/...原创 2014-08-15 10:33:06 · 123 阅读 · 0 评论 -
scala eclipse sbt 应用程序开发
由于Scala有一个比较完备的Eclipse IDE(Scala IDE for Eclipse), 对于不想从eclipse迁移到Iea平台的Dev来说,如何方便、快速、有效得在Eclipse下编译打包开发Scala应用程序尤为重要。Sbt是类似Maven的一个构建工具,我们将使用它来构建发布程序。本文会介绍搭建Eclipse开发Scala应用程序的一般步骤,并结合实例演示sbt工具在e...原创 2014-08-15 15:32:51 · 136 阅读 · 0 评论 -
Scala基础
apply方法当一个类或者对象有一个主要的用途的时候,apply方法可以提供一种很好的语法糖(syntactic sugar)。12345678910scala> class Foo {}defined class Foo scala> object FooMaker { | ...原创 2015-02-27 16:19:25 · 120 阅读 · 0 评论 -
scala隐式参数(implicit)
SBinary 和 Scalacheck的一部分库,广泛使用了隐式参数。让人联想起了Haskell(一种函数式编程语言)的编程风格,我真心的希望在Scala中这种编程风格更加广泛。这是一种非常有用的技术。作为开始如下多重入参(柯里化)的例子:scala -> def foo(x: Int)(y: Int) = x+yfoo: (x: Int)(y: Int) Int ...原创 2015-03-10 10:38:36 · 119 阅读 · 0 评论 -
Java + Scala
Javapjavap是JDK附带的一个工具,而不是JRE。它们之间还是有差别的。Javap反编译class文件,并且向你展示它里面放的是什么。使用起来很简单。123456[local ~/projects/interop/target/scala_2.8.1/classes/com/twitter/interop]$ javap MyT...原创 2014-08-18 09:25:00 · 194 阅读 · 0 评论 -
Scala 中的函数式编程基础(一)
Scala 本意是可伸展。它的设计哲学是:允许用户通过定义感觉像原生语言支持一样的易用库去在他们需要的方向上改进和发展语言——Scala allows users to grow and adapt the language in the directions they need by defining easy-to-use libraries that feel like na...原创 2015-03-11 16:10:17 · 182 阅读 · 0 评论 -
Scala 中的函数式编程基础(二)
2. Higher Order Functions把其他函数作为参数或者作为返回值,就是 higher order functions,python 里面也可以看到这样使用的情形。在酷壳上的博客有一个例子就是将函数作为返回值。2.1 匿名函数在 python 里边叫 lambda 函数,常常与 map(), filter(), reduce() 联合使用,前面也写过一篇这样的博客。...原创 2015-03-11 16:10:33 · 175 阅读 · 0 评论 -
Scala与Golang的并发实现对比
并发语言俨然是应大规模应用架构的需要而提出,有其现实所需。前后了解了Scala和Golang,深深体会到现代并发语言与旧有的Java、C++等语言在风格及理念上的巨大差异。本文主要针对Scala和Golang这两个我喜爱的并发语言在并发特性上的不同实现,做个比较和阐述,以进一步加深理解。 一. Scala与Golang的并发实现思路Scala语言并发设计采用Actor模型,借鉴了Erl...原创 2015-04-23 11:57:10 · 2639 阅读 · 0 评论 -
走进Scala:深入了解Scala并发性
2003 年,Herb Sutter 在他的文章 “The Free Lunch Is Over” 中揭露了行业中最不可告人的一个小秘密,他明确论证了处理器在速度上的发展已经走到了尽头,并且将由全新的单芯片上的并行 “内核”(虚拟 CPU)所取代。这一发现对编程社区造成了不小的冲击,因为正确创建线程安全的代码,在理论而非实践中,始终会提高高性能开发人员的身价,而让各公司难以聘用他们。看上去...原创 2014-09-09 14:21:24 · 301 阅读 · 0 评论 -
Scala并发
Runnable/CallableRunnable只有一个没有返回值的方法123trait Runnable { def run(): Unit}Callable的方法和run类似,只不过它有一个返回值123trait Callable[V] { def c...原创 2015-01-14 15:51:28 · 172 阅读 · 0 评论 -
Scala-面向对象
创建对象val greetStrings = new Array[String](3)如果类还实现了apply方法,那么可以简写val greetStrings = Array[String](3)object1.object声明时和类声明时一样2.一个object可以继承一个类的实现,并可以覆盖方法3.java中的所有接口在scala中都可以...原创 2015-01-12 14:10:48 · 149 阅读 · 0 评论 -
Scala指南
http://zh.scala-tour.com/#/welcome原创 2014-05-26 00:38:23 · 113 阅读 · 0 评论 -
使用sbt搭建Scala开发环境的总结
Scala是一种运行于JVM之上的新型语言。JRuby, Jython, Groovy等也可以将其他语言的一些特点带进Java的生态圈。但就个人体会,Scala和这些编程语言相比,如同Symbian之于Android或IOS。虽然大家都是一个圈子里面的,但完全不在同一个时代。加之Play Framework的助力,Scala的路会越走越宽。对于企业开发,Scala最大的障碍不在对之前Java产...原创 2014-07-08 13:27:03 · 195 阅读 · 0 评论 -
Scala学习——高阶函数(转)
在函数式编程语言中,函数是“头等公民”,可以像任何其他数据类型一样被传递和操作。因为Scala混合了面向对象和函数式的特性,所以对Scala来说,函数是“头等公民”。作为值的函数 123importscala.math._ valfun=ceil_ // _将ceil方法转成了函数在S...原创 2015-01-08 14:30:23 · 238 阅读 · 0 评论 -
scala --继承
继承类使用extends关键字来继承一个类。如果将类声明为final的,则这个类不能被继承。如果将类的方法和字段声明为final,则它们不能被重写。重写方法在Scala中重写一个非抽象方法必须使用override修饰符。调用超类的方法就如Java一样,使用super关键字。类型检查和转换使用isInstanceOf方法来检测某个对象是否为某个特定的类;如果检测通过,则可以使用...原创 2015-01-08 18:01:14 · 164 阅读 · 0 评论 -
scala-类
简单类和无参方法 12345classCounter{ privatevarvalue=0// 必须初始化字段 defincrement(){value+=1}// 方法默认公有 defcurrent()=value}Scala中的类不声明为public,一个Sc...原创 2015-01-09 10:33:21 · 122 阅读 · 0 评论 -
Scala函数及函数式编程
Scala函数及函数式编程函数声明函数相当于Java中的静态方法:除了递归之外不需要声明返回类型 [java] view plaincopyprint? def as(x:Double)={if(x>=0) x else -x} def fac(n:Int):Int={if(n<=0) 1 else fac(n-1)}...原创 2015-01-09 10:37:58 · 167 阅读 · 0 评论 -
Scala——集合
主要的集合特质Scala中所有的集合都扩展了Iterable特质。集合又可以分为三类:有先后次序的序列Seq;值的集合Set;键值对构成的对偶的映射Map。三类集合下分别还实现了特殊访问方式的特质:可以由下标来进行随机访问的IndexedSeq;可按照顺序访问的SortedSet;可按顺序访问的SortedMap。迭代器在迭代器之前,已经介绍了集合的不少使用方法,多是带有函数式特征的...原创 2015-01-09 11:47:52 · 267 阅读 · 0 评论 -
Scala学——包和引入
包使用包的目的:管理大型程序中的名称。包可以嵌套。同一个包可以定义在多个文件当中,也不需要将源文件的目录和包之间对应起来。 12345678packagecom{ packagehorstmann{ packageimpatient{ classEmployee...原创 2015-01-09 11:48:52 · 149 阅读 · 0 评论 -
Scala——Array相关
定长数组 12345678// 10个整数的数组,所有元素初始化为0valnums=newArray[Int](10)// 长度为2的数组,类型是推断出来的// 提供初始值时不需要使用newvals=Array("Hello","World")// 访问元素// 虽然s是val的...原创 2015-01-12 11:45:01 · 108 阅读 · 0 评论 -
Scala——模式匹配和样例类
原文发表于:http://nerd-is.in/2013-09/scala-learning-pattern-matching-and-case-classes/Scala强大的模式匹配机制,可以应用在switch语句、类型检查以及“析构”等场合。样例类对模式匹配进行了优化。更好的switch 12345678...原创 2015-01-12 12:08:22 · 147 阅读 · 0 评论 -
Scala——文件和正则表达式
原文发表于:http://nerd-is.in/2013-08/scala-learning-files-and-regular-expressions读取文件 123456789importscala.io.Sourcevalsource=Source.fromFile(fileName,"...原创 2015-01-12 13:26:33 · 161 阅读 · 0 评论 -
Scala学习笔记之Scala标准库
IO 1.打开Source.fromFile(filename,encoding) 2.关闭source.close 3.获取所有行,getLines 4.迭代行用source.getLines 5.迭代字符用source 5.buffered不移动文件指针但是可以读取字符 @注意文件读取有一个文件的指针,如果文件都到结尾就不能在读到文件了。...原创 2015-01-12 13:43:30 · 344 阅读 · 0 评论 -
走进Scala:一步步教你使用Scala Actor
真正提供并发性的是 Scala 的 actor。什么是 “actor”?“actor” 实现在称为 actor 的执行实体之间使用消息传递进行协作(注意,这里有意避免使用 “进程”、“线程” 或 “机器” 等词汇)。尽管它听起来与 RPC 机制有点儿相似,但是它们是有区别的。RPC 调用(比如 Java RMI 调用)会在调用者端阻塞,直到服务器端完成处理并发送回某种响应(返回值...原创 2014-09-09 15:00:32 · 740 阅读 · 0 评论