文档章节

Chapter 4 -- Scala for the Impatient

翟志军
 翟志军
发布于 2015/02/17 23:25
字数 241
阅读 28
收藏 0
    <!-- lang: scala -->
    /////////// map  ///////////////////
    // define a map, default type is a scala.collection.immutable.Map
    val map1 = Map("alice" -> 12, "bob" -> 30)
    // map1("alice") = 30
    
    var map11 = Map("alice" -> 12, "bob" -> 30)
    //map11("alice") = 23 
    // Above is a invalid statement as map1 is. So, identify "val" and "var" in this case is the same thing.
    
    
    val map2 = new scala.collection.mutable.HashMap[String, Int]
    // yep, this is a mutable map. So, what does "val" mean in this statement?
    map2("ui") = 34
    // So, map2 is a mutable variable whatever "val" or "var"
    
    // another way to define a map
    val map3 = Map(("alice", 23), ("bob", 30))
    
    // get value from a map
    val bobAge = map3("bob")
    val _bobAge = if(map3.contains("bob")) map3("bob") else 0
    val __bobAge = map3.getOrElse("bob", 0)
    
    // update map
    map2 += ("ux" -> 33, "leader" -> 40)
    map2 -= "ui"
    
    // iteration
    for((k, v) <- map2) println(k + ":" + v)
    for((k, v) <- map2) yield (v, k)
    
    // sorted map
    val sortedMap = scala.collection.immutable.SortedMap("alice" -> 10, "Fred" -> 7, "Bob" -> 3, "Cindy" -> 4)
    val months = scala.collection.mutable.LinkedHashMap("Jan"-> 1, "Feb" -> 2, "Mar" -> 3)
    
    
    /////////// tuple  ///////////////////
    (1, 3.14, "Fred")
    // Tuple3[Int, Double, java.lang.String]
    
    val t = (1, 3.14, "Fred")
    t._2 // value would be 3.14. So, tuple is 1 first.
    
    val (first, second, third) = t // first: Int = 1   second: Double = 3.14   third: String = Fred
    val (f, s, _) = t //f: Int = 1  s: Double = 3.14
    
    
    // zip method
    val symbols = Array("<", "-", ">")
    val counts = Array(2, 10, 2)
    val pairs = symbols.zip(counts) // Array(("<", 2), ("-", 10), (">", 2))

© 著作权归作者所有

共有 人打赏支持
翟志军

翟志军

粉丝 343
博文 76
码字总数 79851
作品 2
深圳
程序员
《Programming in Scala》读书笔记

不得不感叹一下,这本书真的是神作,不愧是Scala语言作者自己写的书。整个书的内容条理非常清晰,对于有些地方的设计也给出了具体的原因,能让你对整个语言有更好的把握。深入学习Scala必读书...

mj4738
2012/01/03
0
0
scala 学习笔记(scala for the impatient)

很久没有写东西了,突然想写点什么,还感觉不怎么适应,呵呵,随便写点吧,话不多说,进入主题吧。 scala 融合了面相对编程和面向对象编程的思想,现在java8出世了,其中的lambda表达式和sca...

xinyitianii
2014/03/30
0
0
快学Scala 第18章 高级类型 习题解答

实现一个Bug类,对沿着水平线爬行的虫子建模。move方法向当前方向移动,turn方法让虫子转身,show方法打印出当前的位置。让这些方法可以被串接调用。例如: bugsy.move(4).show().move(6).s...

圣洁之子
2015/05/04
0
1
Scala 技术周刊 | 第 24 期

这里有最新的 Scala 社区动态、技术博文。 微信搜索 「scalacool」关注我们,及时获取最新资讯。 深度阅读 Resolve me, Implicitly 依赖注入 Refined types, what are they good for? 让类型...

ScalaCool
2017/10/23
0
0
16 本优秀的免费 Perl 图书

个人如想学习和进一步理解Perl编程语言,他们有大量价格合适的Perl图书可供挑选。但作为一种开源的编程语言,由Perl作者Larry Wall等人写就的成千上万著作中,有许多是在自由许可证下发布,免...

oschina
2013/01/07
3.4K
15

没有更多内容

加载失败,请刷新页面

加载更多

关于pip

我在更新pip的时候碰到的一些问题。 第一次安装,直接安装就ok了,所以也没研究,没想到后来由于安装了python2.x和python3.x之后出现了问题。 如果要将pip更新到最新版本需要指明是哪个版本的...

恰东
30分钟前
1
0
对硬盘进行分区时,GPT和MBR有什么区别

在Windows 8或8.1中设置新磁盘时,系统会询问你是想要使用MBR还是GPT分区。GPT是一种新的标准,并在逐渐取代MBR。 GPT带来了很多新特性,但MBR仍然拥有最好的兼容性。GPT并不是Windows专用的...

yizhichao
32分钟前
2
0
区块链教程btcpool矿池源码分析StratumServer模块解析

兄弟连区块链教程btcpool矿池源码分析StratumServer模块解析 核心机制总结 接收的job延迟超过60秒将丢弃 如果job中prevHash与本地job中prevHash不同,即为已产生新块,job中isClean状态将置为...

兄弟连区块链入门教程
33分钟前
1
0
JS中的异常捕获

JS中的异常捕获(目的:把抛出的错误捕获到,不让其阻断浏览器的继续执行) try{//需要执行的JS代码(可能会报错)}catch(e){//try中代码报错,会执行catch}finally{//不管try中的代...

NDweb
43分钟前
2
0
ObjectARX_AcDb2dPolyline复杂实体

1遍历:访问或者编辑复杂实体也需要通过特定的方式。 AcDb2dPolyline的顶点信息不能通过AcDb2dPolyline对象直接得到,需要遍历AcDb2dPolyline所包含的AcDb2dVertex对象: void IteratePolylin...

一个小妞
44分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部