文档章节

Chapter 4 -- Scala for the Impatient

翟志军
 翟志军
发布于 2015/02/17 23:25
字数 241
阅读 28
收藏 0
点赞 0
评论 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))

© 著作权归作者所有

共有 人打赏支持
翟志军

翟志军

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

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

mj4738 ⋅ 2012/01/03 ⋅ 0

scala 学习笔记(scala for the impatient)

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

xinyitianii ⋅ 2014/03/30 ⋅ 0

快学Scala 第18章 高级类型 习题解答

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

圣洁之子 ⋅ 2015/05/04 ⋅ 1

Scala 技术周刊 | 第 24 期

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

ScalaCool ⋅ 2017/10/23 ⋅ 0

16 本优秀的免费 Perl 图书

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

oschina ⋅ 2013/01/07 ⋅ 15

如何创建一个 Lua 模块

如何创建一个 Lua 模块 翻译自: How to Create a Lua Module - 译者: FreeBlues 正文 中的一个 ()是一个包含函数和变量的代码片段: 它是一个用户库. 它是把你的代码切分为多个文件的一种有力...

FreeBlues ⋅ 2016/07/23 ⋅ 0

[Core Java® for the Impatient]重载Java1

Chapter 1. Fundamental Programming Structures 八个基本概念: 所有的Java方法都生命在类里,调用非静态的方法是基于该方法所在类的实例化的对象; 静态方法的调用不基于对象,程序伴随着s...

小紅 ⋅ 2016/04/15 ⋅ 0

第七章 包和引入

1、编写示例程序,展示为什么 package com.horstmann.impatient 不同于 package com package horstmann package impatient...

小萝卜_ ⋅ 2016/06/16 ⋅ 0

[Core Java® for the Impatient]重载Java2

Chapter 2. Object-Oriented Programming Set(Mutator Methods)方法改变对象的状态,Get(accessor methods)方法则不; Java中变量不持有对象,他们引用对象; 变量的实例和方法的实现在类...

小紅 ⋅ 2016/04/20 ⋅ 0

2000个软件开发领域的高频特殊词及精选例句(二)

superword是一个Java实现的英文单词分析软件,主要研究英语单词音近形似转化规律、前缀后缀规律、词之间的相似性规律等等。 276、单词 tokenizer 的匹配文本: Analysis is done by the anal...

杨尚川 ⋅ 2015/03/19 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

20.zip压缩 tar打包 打包并压缩

6月25日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具: zip支持压缩目录 zip压缩完之后原来的文件不删除 不同的文件内容其实压缩的效果不一样 文件内有很多重复的用xz压...

王鑫linux ⋅ 16分钟前 ⋅ 0

double类型数据保留四位小数的另一种思路

来源:透析公式处理,有时候数据有很长的小数位,有的时候由在四位以内,如果用一般的处理方法,那么不足四位的小树会补充0到第四位,这样子有点画蛇添足的感觉,不太好看。所以要根据小数的...

young_chen ⋅ 23分钟前 ⋅ 0

Python 优化 回溯下降算法

使用sympy构造表达式,实现回溯下降算法 画出函数图像,先使用暴力搜索,找到最小值约为2.5左右 然后选定初始点,开始进行回溯搜索,下降方向为负梯度方向 下降的误差与步数大致呈现下面的状...

阿豪boy ⋅ 27分钟前 ⋅ 0

Django配置163邮箱出现 authentication failed(535)错误解决方法

最近用Django写某网站,当配置163邮箱设置完成后,出现535错误即:smtplib.SMTPAuthenticationError: (535, b'Error: authentication failed') Django初始配置邮箱设置 EMAIL_HOST = "smtp.1...

陈墨轩_CJX ⋅ 29分钟前 ⋅ 0

用接口模拟可伸缩枚举(34)

1、枚举的可伸缩性最后证明都不是什么好点子 扩展类型的元素是基本类型实例,基本类型的实例却不是扩展类型的元素,很混乱 目前还没有很好的方法来枚举基本类型的所有元素,及其扩展 可伸缩性...

职业搬砖20年 ⋅ 32分钟前 ⋅ 0

Ubuntu18.04 IDEA快捷键无法使用

IDEA默认的回退到上一视图的快捷键是Ctrl + Alt + Left,在ubuntu中这个快捷键被占用了,在16.04中可以在界面中取消这个快捷键,但是18.04就看不到了,可以使用以下命令解决 gsettings set ...

Iceberg_XTY ⋅ 36分钟前 ⋅ 0

如何解决s权限位引发postfix及crontab异常

一、问题现象 业务反馈某台应用服务器,普通用户使用mutt程序发送邮件时,提示“postdrop warning: mail_queue_enter: create file maildrop/713410.6065: Permission denied”,而且普通用法...

问题终结者 ⋅ 49分钟前 ⋅ 0

Unable to load database on disk

由于磁盘空间满了以后,导致zookeeper异常退出,清理磁盘空间后,zk启动报错,信息如下: 2018-06-25 17:18:46,904 INFO org.apache.zookeeper.server.quorum.QuorumPeerConfig: Reading co...

刀锋 ⋅ 今天 ⋅ 0

css3 box-sizing:border-box 实现div一行多列

<!DOCTYPE html><html><head><style> div.container{ background:green; padding:10px 10px;}div.box{box-sizing:border-box;-moz-box-sizing:border-box; /* Fir......

qimh ⋅ 今天 ⋅ 0

Homebrew简介和基本使用

一、Homebrew是什么 Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径...

说回答 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部