scala
houzhizhen
专注大数据处理和分布式计算。
展开
-
Scalastyle - Configuration
Quick startYou can just use the default Scalastyle configuration scalastyle_config.xml. Right-click this link and select Save link as. This is the one we use for Scalastyle development, so it’转载 2017-01-23 11:23:40 · 1463 阅读 · 0 评论 -
PartialFunction examples
/** A partial function of type `PartialFunction[A, B]` is a unary function * where the domain does not necessarily include all values of type `A`. * The function `isDefinedAt` allows to test dynam原创 2017-01-25 14:30:59 · 225 阅读 · 0 评论 -
Iterator.iterator
/** Creates an infinite iterator that repeatedly applies a given function to the previous result. * * @param start the start value of the iterator * @param f the function that's repeate原创 2017-01-26 11:43:10 · 374 阅读 · 0 评论 -
利用IntelliJ IDEA与Maven开始你的Scala之旅
一. IntelliJ IDEA安装及配置1.1 IntelliJ IDEA下载及安装 首先在 CHOOSE YOUR EDITION 这里选择Community版本,这个版本是免费提供的,对我们的Spark使用来说,用这个版本已经足够了。如下图所示: 直接点击黑色的 DOWNLOAD 按钮会默认开始下载Windows版本的IntelliJ IDEA,如果需要其他平台的转载 2017-04-05 15:53:19 · 468 阅读 · 0 评论 -
scala中模式匹配中的@代表什么意思
val l = List(1,2,3)val s = l match { case list @ List(1, _*) => s"a start value is 1 list :$list" case list : List[_] => s"a start value not 1 list"}看书上说是为了取出模式匹配后对应的原来输入值,例如上面例子中的模式匹配是为了匹配1开始的列表转载 2017-05-16 10:35:01 · 742 阅读 · 0 评论 -
Scala入门到精通——第二十四节 高级类型 (三)
作者:摆摆少年梦 视频地址:http://blog.csdn.net/wsscy2004/article/details/38440247本节主要内容Type SpecializationManifest、TypeTag、ClassTagScala类型系统总结在Scala中,类(class)与类型(type)是两个不一样的概念。我们知道类是对同一类型数据的抽象,而类型则更具体。转载 2017-06-21 10:35:54 · 252 阅读 · 0 评论 -
Can not find scala.async.Async.{async, await}
When can not find scala.async.Async.{async, await}, just add the following dependency to your pom.xml. <dependency> <groupId>org.scala-lang.modules</groupId> <artifactId>scala-asyn原创 2017-08-18 09:09:55 · 356 阅读 · 0 评论 -
ScalaTest and Maven plugin settings
This user guide will help you get rolling quickly with ScalaTest. First a brief orientation:The central concept in ScalaTest is the suite, a collection of zero to many tests.A test can be anything wit...转载 2018-04-08 14:39:56 · 1188 阅读 · 0 评论 -
What does '???' (three question marks) mean in Scala?
Scala FAQ: What does the use of three questions marks (???) in Scala mean?The syntax of using three question marks in Scala lets you write a not-yet implemented method, like this:def createWorld转载 2017-01-23 11:14:25 · 458 阅读 · 0 评论 -
在scala和spark-shell里粘贴代码块
先输入:paste,然后粘贴代码块,之后按ctrl+D结束输入。注意必须输入大小的D,如果当前不是大写模式,则需要多按一个shift键,把d转成大写。示例如下:scala> :paste// Entering paste mode (ctrl-D to finish)val lr = new LogisticRegression() .setMaxIter(10) .se转载 2017-02-09 17:33:16 · 5064 阅读 · 0 评论 -
scala类型系统:12) view bounds
很早前在来往的扎堆里发过一段模拟C#的using代码:def using[ C T): T = { try { handle(resource) } finally { closeQuietly(resource) }}Eric(药师)看到后,说 更好的意思是“view bounds”(视界),它比适用的范围更广,除了所有的子转载 2016-04-25 10:54:09 · 648 阅读 · 0 评论 -
scala类型系统:11) upper bounds & lower bounds
Upper Bounds在Java泛型里表示某个类型是Test类型的子类型,使用extends关键字://或用通配符的形式:这种形式也叫upper bounds(中文为上限或上界),同样的意思在scala的写法为:[T <: Test]//或用通配符:[_ <: Test]upper bounds适用于把泛型对象当作数据的提供者(生产者)的场景下:scala转载 2016-04-25 10:57:55 · 751 阅读 · 0 评论 -
scala雾中风景(10): 逆变点与协变点
遇见一个这样的问题class In[+A]{ def fun(x:A){} }会提示error: covariant type A occurs in contravariant position in type A of value xclass In[+A]{def fun(x:A){}} ^而这样不会出现问题class In转载 2016-04-27 09:52:59 · 686 阅读 · 0 评论 -
scala类型系统:19) Manifest与TypeTag
Manifest是scala2.8引入的一个特质,用于编译器在运行时也能获取泛型类型的信息。在JVM上,泛型参数类型T在运行时是被“擦拭”掉的,编译器把T当作Object来对待,所以T的具体信息是无法得到的;为了使得在运行时得到T的信息,scala需要额外通过Manifest来存储T的信息,并作为参数用在方法的运行时上下文。def test[T] (x:T, m:Manifest[T]) {转载 2016-04-15 17:42:10 · 457 阅读 · 0 评论 -
可变长度参数和_*符号
Scala 允许你指明函数的最后一个参数可以是重复的。这可以允许客户向函数传入可变长度参数列表。想要标注一个重复参数,在参数的类型之后放一个星号。例如:scala> def echo(args: String*) =for (arg <- args) println(arg)echo: (String*)Unit这样定义, echo 可以被零个至多个 String 参数调用:s转载 2016-10-10 14:38:24 · 531 阅读 · 0 评论 -
Function parameter types and =>
This is so-called pass-by-name. It means you are passing a function that should return Int but is mostly used to implement lazy evaluation of parameters. It is somewhat similar to:def myFunc(param转载 2016-09-30 14:51:18 · 414 阅读 · 0 评论 -
Scala:Enumeration
先开看一下如何声明一个枚举对象object EnumTest extends Enumeration{ type EnumTest = Value val One,Two,Three = Value}12341234这和我们在Java中声明有很大区别,Scala的枚举值有些特殊,它的关键是内部有一个Value类,所谓的枚举值都是通过它产生的。如果我们不做任何约定的话,枚举转载 2016-10-17 14:59:04 · 487 阅读 · 0 评论 -
Scala学习笔记(六)所谓Symbol
对于我这个一直沉溺在Java语言,拒绝接受ruby,groovy等动态语言的老古董来说,Symbol是在是个奇怪的东西,比较难理解,Scala文档中所有关于Symbol的字我都认识,但结合在一起就看不明白了,用处何在?专门找了ruby中关于Symbol的学习资料,看了后,领悟如下:1.Symbol 是Scala中所谓literal类型的一种,literal字面意思为文本,表现为可以转载 2016-10-31 11:53:33 · 1511 阅读 · 0 评论 -
scala sealed trait
A sealed trait can be extended only in the same file as its declaration.They are often used to provide an alternative to enums. Since they can be only extended in a single file, the compiler knows e转载 2016-11-15 10:10:36 · 819 阅读 · 0 评论 -
scala类型系统:13) context bounds
与view bounds一样context bounds(上下文界定)也是隐式参数的语法糖。context bounds的出现是scala2.8版本才增加的,起因是2.8版本修正了数组类型的设计(关于这个话题后续单独讨论),同时为语法上的方便,引入了”上下文界定”这个概念。看一个简单的例子,对于比较两个数的大小,采用隐式参数的做法:scala> def max[T](a:T, b:T) (转载 2016-04-25 10:42:35 · 477 阅读 · 0 评论