这些方法会帮助你更容易地在容器中使用你的对象,比如set、map, 通常情况下你可以在函数式编程中直接将对象作为key. toString methods case class也会有一个默认的toString方法实现,它至少能在Debug的时候帮助到你. Summary 尽管所有这些特性对函数式编程都有很大好处,正如他们在《Scala 编程(Odersky、Spoon 和 Venners...
(Int,Int)]=Map(hadoop->(22,2),spark->(23,4))scala>x.map({case(key,value)=>(key,value...
defisIntIntMap(x:Any) = xmatch{casem:Map[Int,Int] =>truecase_ =>false} warning: non-variabletypeargumentIntintypepatternscala.collection.immutable.Map[Int,Int] (the underlying ofMap[Int,Int])isunchecked since it is eliminated by erasurecasem:Map[Int,Int] =>true^ isIntIntMap: (x:Any)...
在Scala中,成员变量/属性必须显示初始化,而在Java中可以不初始化。此外,在Scala中,异常处理采用Try-catch {case-case}-finally的方式,而在Java中采用Try-catch-catch-finally的方式。 Scala还有一些特有的概念,例如:惰性函数、伴生对象、特质、偏函数等。这些概念都为Scala语言提供了更多的灵活性和表达能力。使得Scala...
importjava.awt.{Color,Font}// 重命名成员importjava.util.{HashMap=>JavaHashMap}// 隐藏成员importjava.util.{HashMap=>_,_}// 引入了util包的所有成员,但是HashMap被隐藏了 注意:默认情况下,Scala 总会引入 java.lang._ 、 scala._ 和 Predef._,这里也能解释,为什么以scala开头的包,在使用时都是省...
http://blog.csdn.net/bluishglc/article/details/50995939 从使用case语句构造匿名函数谈起 在Scala里,我们可以使用case语句来创建一个匿名函数(函数字面量),这有别于一般的匿名函数创建方法。来看个例子: scala> List(1,2,3) map {case i:Int=>i+1} res1: List[Int] = List(2, 3, 4) 这很有趣,...
最灵活的变体是以一个Config对象为参数,你可以使用ConfigFactory中的任何方法加载。例如,你可以在代码中使用ConfigFactory.parseString()处理一个配置字符串,或者你可以使用ConfigFactory.parseMap()创建一个映射,或者也可以加载一个文件。 你也可以将自定义的配置与通常的配置组合起来,像这样: ...
本章主要分析case classes和模式匹配(pattern matching)。一、简单例子 接下来首先以一个包含case classes和模式匹配的例子来展开本章内容。 下面的例子中将模拟实现一个算术运算,这个算术运算可以基于变量和数字进行一些一元或二元的操作。其中...
使用case object可以创建样例对象。样例对象是单例的,而且它没有主构造器。样例对象是可序列化的。格式: case object 样例对象名 1. 它主要用在两个地方: 定义枚举 作为没有任何参数的消息传递(后面Akka编程会讲到) 示例:定义枚举 trait Sex /*定义一个性别特质*/ case object Male extends Sex // 定义一个样...
// 重命名成员importjava.util.{HashMap=>JavaHashMap} // 隐藏成员importjava.util.{HashMap=>_,_}// 引入了util包的所有成员,但是HashMap被隐藏了 注意:默认情况下,Scala 总会引入 java.lang._ 、 scala._ 和 Predef._,这里也能解释,为什么以scala开头的包,在使用时都是省...