文档章节

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))

© 著作权归作者所有

共有 人打赏支持
翟志军

翟志军

粉丝 339
博文 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

此生1.3

颜值是开胃菜,不要太在意,正餐才是重点。

colinux
今天
1
0
[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
3
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
3
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
1
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部