当前位置:首页 > 计算机理论 >
《快学Scala》电子书封面

快学Scala

  • 发布时间:2020年05月09日 09:14:56
  • 作者:(美)Cay S. Horstmann
  • 大小:15.2 MB
  • 类别:Scala电子书
  • 格式:PDF
  • 版本:英文第2版
  • 评分:9.1

    快学Scala PDF 英文第2版

      给大家带来的一篇关于Scala相关的电子书资源,介绍了关于Scala、Scala入门方面的内容,本书是由电子工业出版社出版,格式为PDF,资源大小15.2 MB,(美)Cay S. Horstmann编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.1。

      内容介绍

      Scala相拥函数式编程设计风格,又沒有抛下面向对象编程的程序编写现代性,能够 编写出比Java更精减的程序流程。因为运作在JVM之中,可浏览一切Java类库,能跟Java架构互操作,也更非常容易地充分发挥并发编程的杀伤力。

      快学Scala(第2版)》详细介绍Scala这些能给你迅速入门干活的关键定义和方法,却并不尝试穷举法全部語言特性,也不会用冗杂、过度机巧的实例来,只是细心掂量事例和训练,依照清楚界定的能力等级引导你变成权威专家。

      *迅速了解Scala编译器、英语的语法、专用工具和特有的应用习惯性
      *把握关键語言特性:涵数、数组、投射、元组、包、导入、异常处理等
      *了解Scala面向对象思想:类、承继和个性特征
      *应用Scala解决现实世界的程序编写每日任务:实际操作文档、正则表达式和XML
      *应用高阶函数和功能齐全的Scala结合类库
      *利用Scala强劲的模式匹配和示例类
      *利用Scala的future搭建并发程序
      *完成行业特殊語言
      *了解Scala种类系统软件
      *运用高級的“超强力专用工具”,如注释、隐式变换和隐式主要参数、种类类等

      Scala是一门关键以Javavm虚拟机(JVM)为总体目标软件环境并将面向对象编程和函数式编程語言的*特性融合在一起的计算机语言。你能应用Scala编写出更为精减的程序流程,另外充足利用高并发的杀伤力。因为Scala默认设置运作于JVM之中,因而它能够 浏览一切Java类库而且与Java架构开展互操作。根据ScalaJS新项目,Scala还能够被编写出JavaScript编码,我们一起更方便快捷高效率地开发设计Web运用。这书从好用视角考虑,得出了一份迅速的、根据编码的新手入门手册。Horstmann以“网络文章尺寸”的篇数详细介绍了Scala的定义,让你能迅速地把握和运用。事实上手的实际操作,清楚界定的能力层级,从初中级到大师级,全线具体指导。合适有一定的Java程序编写工作经验、对Scala很感兴趣,并期待尽早把握Scala关键定义和使用方法的开发人员阅读文章。

      目录

      • 译者序 V
      • 第1版序 XVII
      • 前言 XIX
      • 作者简介 XXIII
      • 第1章 基础 A1 1
      • 1.1 Scala解释器 1
      • 1.2 声明值和变量 4
      • 1.3 常用类型 5
      • 1.4 算术和操作符重载 7
      • 1.5 关于方法调用 8
      • 1.6 apply方法 9
      • 1.7 Scaladoc 11
      • 练习 16
      • 第2章 控制结构和函数 A1 19
      • 2.1 条件表达式 20
      • 2.2 语句终止 22
      • 2.3 块表达式和赋值 22
      • 2.4 输入和输出 23
      • 2.5 循环 25
      • 2.6 高级for循环 27
      • 2.7 函数 28
      • 2.8 默认参数和带名参数 L1 29
      • 2.9 变长参数 L1 29
      • 2.10 过程 31
      • 2.11 懒值 L1 31
      • 2.12 异常 32
      • 练习 35
      • 第3章 数组相关操作 A1 39
      • 3.1 定长数组 39
      • 3.2 变长数组:数组缓冲 40
      • 3.3 遍历数组和数组缓冲 41
      • 3.4 数组转换 42
      • 3.5 常用算法 44
      • 3.6 解读Scaladoc 45
      • 3.7 多维数组 47
      • 3.8 与Java的互操作 48
      • 练习 49
      • 第4章 映射和元组 A1 53
      • 4.1 构造映射 53
      • 4.2 获取映射中的值 54
      • 4.3 更新映射中的值 55
      • 4.4 迭代映射 56
      • 4.5 已排序映射 57
      • 4.6 与Java的互操作 57
      • 4.7 元组 58
      • 4.8 拉链操作 59
      • 练习 60
      • 第5章 类 A1 63
      • 5.1 简单类和无参方法 63
      • 5.2 带getter和setter的属性 64
      • 5.3 只带getter的属性 67
      • 5.4 对象私有字段 68
      • 5.5 Bean属性 L1 69
      • 5.6 辅助构造器 71
      • 5.7 主构造器 72
      • 5.8 嵌套类 L175
      • 练习 78
      • 第6章 对象 A1 81
      • 6.1 单例对象 81
      • 6.2 伴生对象 82
      • 6.3 扩展类或特质的对象 83
      • 6.4 apply方法 84
      • 6.5 应用程序对象 85
      • 6.6 枚举 86
      • 练习 87
      • 第7章 包和引入 A1 91
      • 7.1 包 91
      • 7.2 作用域规则 93
      • 7.3 串联式包语句 95
      • 7.4 文件顶部标记法 95
      • 7.5 包对象 96
      • 7.6 包可见性 97
      • 7.7 引入 97
      • 7.8 任何地方都可以声明引入 98
      • 7.9 重命名和隐藏方法 99
      • 7.10 隐式引入 99
      • 练习 100
      • 第8章 继承 A1 103
      • 8.1 扩展类 103
      • 8.2 重写方法 104
      • 8.3 类型检查和转换 105
      • 8.4 受保护字段和方法 106
      • 8.5 超类的构造 106
      • 8.6 重写字段 107
      • 8.7 匿名子类 109
      • 8.8 抽象类 109
      • 8.9 抽象字段 110
      • 8.10 构造顺序和提前定义 L3 110
      • 8.11 Scala类继承关系 112
      • 8.12 对象相等性 L1 114
      • 8.13 值类 L2 116
      • 练习 117
      • 第9章 文件和正则表达式 A1 121
      • 9.1 读取行 121
      • 9.2 读取字符 122
      • 9.3 读取词法单元和数字 123
      • 9.4 从URL或其他源读取 124
      • 9.5 读取二进制文件 124
      • 9.6 写入文本文件 124
      • 9.7 访问目录 125
      • 9.8 序列化 125
      • 9.9 进程控制 A2126
      • 9.10 正则表达式 129
      • 9.11 正则表达式组 130
      • 练习 131
      • 第10章 特质 A1135
      • 10.1 为什么没有多重继承 135
      • 10.2 当作接口使用的特质 137
      • 10.3 带有具体实现的特质 138
      • 10.4 带有特质的对象 139
      • 10.5 叠加在一起的特质 140
      • 10.6 在特质中重写抽象方法 141
      • 10.7 当作富接口使用的特质 142
      • 10.8 特质中的具体字段 143
      • 10.9 特质中的抽象字段 144
      • 10.10 特质构造顺序 145
      • 10.11 初始化特质中的字段 147
      • 10.12 扩展类的特质 148
      • 10.13 自身类型 L2 149
      • 10.14 背后发生了什么 151
      • 练习 152
      • 第11章 操作符 A1157
      • 11.1 标识符 157
      • 11.2 中置操作符 158
      • 11.3 一元操作符 159
      • 11.4 赋值操作符 160
      • 11.5 优先级 161
      • 11.6 结合性 162
      • 11.7 apply和update方法 162
      • 11.8 提取器 L2 164
      • 11.9 带单个参数或无参数的提取器 L2166
      • 11.10 unapplySeq方法 L2167
      • 11.11 动态调用 L2 167
      • 练习 171
      • 第12章 高阶函数 L1 175
      • 12.1 作为值的函数 175
      • 12.2 匿名函数 177
      • 12.3 带函数参数的函数 178
      • 12.4 参数(类型)推断 179
      • 12.5 一些有用的高阶函数 180
      • 12.6 闭包 181
      • 12.7 SAM转换 182
      • 12.8 柯里化 183
      • 12.9 控制抽象 185
      • 12.10 return表达式 186
      • 练习 187
      • 第13章 集合 A2191
      • 13.1 主要的集合特质 192
      • 13.2 可变和不可变集合 193
      • 13.3 序列 195
      • 13.4 列表 196
      • 13.5 集 197
      • 13.6 用于添加或去除元素的操作符 198
      • 13.7 常用方法 201
      • 13.8 将函数映射到集合 203
      • 13.9 化简、折叠和扫描 A3 205
      • 13.10 拉链操作 209
      • 13.11 迭代器 210
      • 13.12 流 A3 211
      • 13.13 懒视图 A3 213
      • 13.14 与Java集合的互操作 213
      • 13.15 并行集合 215
      • 练习 217
      • 第14章 模式匹配和样例类 A2 221
      • 14.1 更好的switch 222
      • 14.2 守卫 223
      • 14.3 模式中的变量 223
      • 14.4 类型模式 224
      • 14.5 匹配数组、列表和元组 225
      • 14.6 提取器 227
      • 14.7 变量声明中的模式 227
      • 14.8 for表达式中的模式 229
      • 14.9 样例类 229
      • 14.10 copy方法和带名参数 230
      • 14.11 case语句中的中置表示法 231
      • 14.12 匹配嵌套结构 232
      • 14.13 样例类是邪恶的吗 233
      • 14.14 密封类 234
      • 14.15 模拟枚举 235
      • 14.16 Option类型 235
      • 14.17 偏函数 L2 236
      • 练习 238
      • 第15章 注解 A2243
      • 15.1 什么是注解 243
      • 15.2 什么可以被注解 244
      • 15.3 注解参数 245
      • 15.4 注解实现 246
      • 15.5 针对Java特性的注解 247
      • 15.5.1 Java修饰符 247
      • 15.5.2 标记接口 248
      • 15.5.3 受检异常 249
      • 15.5.4 变长参数 249
      • 15.5.5 JavaBeans 250
      • 15.6 用于优化的注解 250
      • 15.6.1 尾递归 .250
      • 15.6.2 跳转表生成与内联 252
      • 15.6.3 可省略方法 253
      • 15.6.4 基本类型的特殊化 254
      • 15.7 用于错误和警告的注解 255
      • 练习 256
      • 第16章 XML处理 A2 259
      • 16.1 XML字面量 260
      • 16.2 XML节点 260
      • 16.3 元素属性 262
      • 16.4 内嵌表达式 263
      • 16.5 在属性中使用表达式 264
      • 16.6 特殊节点类型 265
      • 16.7 类XPath表达式 266
      • 16.8 模式匹配 267
      • 16.9 修改元素和属性 268
      • 16.10 XML变换 269
      • 16.11 加载和保存 270
      • 16.12 命名空间 273
      • 练习 275
      • 第17章 Future A2 277
      • 17.1 在future中运行任务 278
      • 17.2 等待结果 280
      • 17.3 Try类 281
      • 17.4 回调 282
      • 17.5 组合future任务 283
      • 17.6 其他future变换 286
      • 17.7 Future对象中的方法 288
      • 17.8 Promise 289
      • 17.9 执行上下文 291
      • 练习 292
      • 第18章 类型参数 L2 297
      • 18.1 泛型类 298
      • 18.2 泛型函数 298
      • 18.3 类型变量界定 298
      • 18.4 视图界定 300
      • 18.5 上下文界定 301
      • 18.6 ClassTag上下文界定 301
      • 18.7 多重界定 302
      • 18.8 类型约束 L3302
      • 18.9 型变 304
      • 18.10 协变和逆变点 305
      • 18.11 对象不能泛型 307
      • 18.12 类型通配符 308
      • 练习 309
      • 第19章 高级类型 L2 313
      • 19.1 单例类型 313
      • 19.2 类型投影 315
      • 19.3 路径 316
      • 19.4 类型别名 317
      • 19.5 结构类型 318
      • 19.6 复合类型 319
      • 19.7 中置类型 320
      • 19.8 存在类型 321
      • 19.9 Scala类型系统 322
      • 19.10 自身类型 323
      • 19.11 依赖注入 325
      • 19.12 抽象类型 L3 327
      • 19.13 家族多态 L3 329
      • 19.14 高等类型 L3 333
      • 练习 336
      • 第20章 解析 A3 341
      • 20.1 文法 342
      • 20.2 组合解析器操作 343
      • 20.3 解析器结果变换 345
      • 20.4 丢弃词法单元 347
      • 20.5 生成解析树 348
      • 20.6 避免左递归 348
      • 20.7 更多的组合子 350
      • 20.8 避免回溯 352
      • 20.9 记忆式解析器 353
      • 20.10 解析器说到底是什么 354
      • 20.11 正则解析器 355
      • 20.12 基于词法单元的解析器 356
      • 20.13 错误处理 358
      • 练习 359
      • 第21章 隐式转换和隐式参数 L3. 363
      • 21.1 隐式转换 363
      • 21.2 利用隐式转换丰富现有类库的功能 364
      • 21.3 引入隐式转换 365
      • 21.4 隐式转换规则 367
      • 21.5 隐式参数 368
      • 21.6 利用隐式参数进行隐式转换 370
      • 21.7 上下文界定 371
      • 21.8 类型类 372
      • 21.9 类型证明 374
      • 21.10 @implicitNotFound注解 376
      • 21.11 CanBuildFrom解读 376
      • 练习 379
      • 词汇表 381

      学习笔记

      Scala入门之List使用详解

      Scala中使用List Scala是函数式风格与面向对象共存的编程语言,方法不应该有副作用是函数风格编程的一个重要的理念。方法唯一的效果应该是计算并返回值,用这种方式工作的好处就是方法之间很少纠缠在一起,因此就更加可靠和可重用。另一个好处(静态类型语言)是传入传出方法的所有东西都被类型检查器检查,因此逻辑错误会更有可能把自己表现为类型错误。把这个函数式编程的哲学应用到对象世界里以为着使对象不可变。 前面一章介绍的Array数组是一个所有对象都共享相同类型的可变序列。比方说Array[String]仅包含String。尽管实例化之后你无法改变Array的长度。因此,Array是可变的对象。 说到共享……

      IntelliJ IDEA下Maven创建Scala项目的方法步骤

      环境:IntelliJ IDEA 版本:Spark-2.2.1 Scala-2.11.0 利用 Maven 第一次创建 Scala 项目也遇到了许多坑 创建一个 Scala 的 WordCount 程序 第一步:IntelliJ IDEA下安装 Scala 插件 安装完 Scala 插件完成 第二步:Maven 下 Scala 下的项目创建 正常创建 Maven 项目(不会的看另一篇 Maven 配置) 第三步:Scala 版本的下载及配置 通过Spark官网下载页面http://spark.apache.org/downloads.html 可知“Note: Starting version 2.0, Spark is built with Scala 2.11 by default.”,建议下载Spark2.2对应的 Scala 2.11。 登录Scala官网http://www.scala-lang.org/,单击download按钮,然后再“Other Releases”标题下找到“下载2.11.0 根据自己的系统下载相应的版本 接下来就是配置Scala 的环境变量……

      Scala入门教程详解

      Scala简介 Scala(Scala Language的简称)语言是一种能够运行于JVM和.Net平台之上的通用编程语言,既可用于大规模应用程序开发,也可用于脚本编程,它由由Martin Odersk于2001开发,2004年开始程序运行在JVM与.Net平台之上,由于其简洁、优雅、类型安全的编程模式而受到关注。 Scala语言具有如下特点: 1 纯面向对象编程语言 (1) Encapsulation/information hiding. (2)Inheritance. (3)Polymorphism/dynamic binding. (4)All predefined types are objects. (5) All operations are performed by sending messages to objects. (6)All user-defined types are objects. 2 函数式编程语言 定义:Functional programming is a programming paradigm that treats computation as the evaluation of mathema……

      scala+redis实现分布式锁的示例代码

      1、redis的底层是单例模式,意思是同一个脚本同一时刻只能有一个线程来执行,利用redis的这个特性来实现分布式锁。 首先实现工具类 package utils import CacheManager /** * redis分布式锁 */object RedisTool { //加锁是否成功标志 val LOCK_SUCCESS:String = "OK" //即当key不存在时,我们进行set操作;若key已经存在,则不做任何操作; val SET_IF_NOT_EXIST:String = "NX" //意思是我们要给这个key加一个过期的设置,具体时间由第五个参数决定。 val SET_WITH_EXPIRE_TIME:String = "PX" val RELEASE_SUCCESS:String = "1" /** * * @param lockKey 锁 * @param requestId 请求标识 * @param expireTime 超期时间 * @param isPersist 临时缓存或者永久缓存 */ def tryGetDistributedLock(lockKey:Stri……

      Java和scala实现 Spark RDD转换成DataFrame的两种方法小结

      一:准备数据源 在项目下新建一个student.txt文件,里面的内容为: 1,zhangsan,20 2,lisi,21 3,wanger,19 4,fangliu,18 二:实现 Java版: 1.首先新建一个student的Bean对象,实现序列化和toString()方法,具体代码如下: package com.cxd.sql;import java.io.Serializable;@SuppressWarnings("serial")public class Student implements Serializable { String sid; String sname; int sage; public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public int getSage() { return sage; } public void setSage(int sage) { this.sage = sage; } @Override public String toString() { return "Student [sid=" + sid + ", sname=" + sname + ", sage=……

      以上就是本次介绍的Scala电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:Egret HTML5游戏开发指南

      下一篇:Processing编程学习指南

      展开 +

      收起 -

      下载地址:百度网盘下载
      Scala相关电子书
      Scala与Clojure函数式编程模式:Java虚拟机高效编程
      Scala与Clojure函数式编程模式:Java虚拟机高效编程 完整原版

      本书向读者展示了如何采用函数式方案来替代或简化面向对象编程中使用的诸多通用模式,同时还介绍了一些在函数式世界中广泛使用的模式

      立即下载
      Spark编程基础:Scala版
      Spark编程基础:Scala版 超清版

      这书是厦门大学创作者精英团队长期性经验交流的结晶体,是在厦门大学《 大数据技术原理与应用 》新手入门互联网大数据教材内容的基本之中撰写的。为了保证实例教程品质,在编著出版纸

      立即下载
      Scala谜题
      Scala谜题 影印版

      Scala是一种多范式的编程语言,其设计初衷是要整合面向对象编程和函数式编程的各种特性。 《Scala谜题》 整合了众多典型的Scala代码示例,深入解密Scala。书中不仅介绍了Scala语言,还介绍了

      立即下载
      Scala并发编程
      Scala并发编程 高清版

      免费的性能午餐已经结束Intel、AMD 和Sparc、PowerPC 等主要的处理器生产厂商,从前使用的提高CPU 性能的传统方法已经走到尽头,单核处理器的主频多年来一直踏步不前,当今主流的CPU 制造技术

      立即下载
      响应式架构(消息模式Actor实现与Scala、Akka应用集成)
      响应式架构(消息模式Actor实现与Scala、Akka应用集成) 高质量中文版

      本书首度剖析其架构理念与实践思路,使用响应式结构通过全方位简化编程工作的各个层面,消除编程复杂性的方式 Actor系统和Actor对象的特点,以及通过Akka框架使它们拥有更强大功能的方式,实现持久化Actor对象

      立即下载
      读者留言
      黎熠彤

      黎熠彤 提供上传

      资源
      35
      粉丝
      13
      喜欢
      86
      评论
      7

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com