- 商品参数
-
- 作者:
阿尔文·亚历山大著
- 出版社:机械工业出版社
- 出版时间:2023-07
- ISBN:9787642029019
- 版权提供:机械工业出版社
店铺公告
为保障消费者合理购买需求及公平交易机会,避免因非生活消费目的的购买货囤积商品,抬价转售等违法行为发生,店铺有权对异常订单不发货且不进行赔付。异常订单:包括但不限于相同用户ID批量下单,同一用户(指不同用户ID,存在相同/临近/虚构收货地址,或相同联系号码,收件人,同账户付款人等情形的)批量下单(一次性大于5本),以及其他非消费目的的交易订单。
温馨提示:请务必当着快递员面开箱验货,如发现破损,请立即拍照拒收,如验货有问题请及时联系在线客服处理,(如开箱验货时发现破损,所产生运费由我司承担,一经签收即为货物完好,如果您未开箱验货,一切损失就需要由买家承担,所以请买家一定要仔细验货),
关于退货运费:对于下单后且物流已发货货品在途的状态下,原则上均不接受退货申请,如顾客原因退货需要承担来回运费,如因产品质量问题(非破损问题)可在签收后,联系在线客服。
本店存在书、古旧书、收藏书、二手书等特殊商品,因受采购成本限制,可能高于定价销售,明码标价,介意者勿拍!
1.书籍因稀缺可能导致售价高于定价,图书实际定价参见下方详情内基本信息,请买家看清楚且明确后再拍,避免价格争议!
2.店铺无纸质均开具电子,请联系客服开具电子版
|
商品名称: | Scala编程实战(原书第2版) |
作 者: | 阿尔文·亚历山大(Alvin Alexander) |
市 场 价: | 199.00 |
ISBN 号: | 9787111732792 |
出版日期: | |
页 数: | 715 |
开 本: | |
出 版 社: | 机械工业出版社 |
目录 前言1 第1章 命令行13 1.1 初识Scala REPL14 1.2 在REPL中使用源代码和JAR文件17 1.3 初识Ammonite REPL20 1.4 scalac和scala命令23 1.5 反编译Scala代码25 1.6 运行JAR文件28 第2章 字符串31 2.1 字符串的相等性判断34 2.2 多行字符串的创建35 2.3 字符串的分割37 2.4 字符串的变量代入38 2.5 字符串输出的格式化41 2.6 字符串的逐个字符处理44 2.7 字符串的模式查找49 2.8 字符串的模式替换51 2.9 使用模式匹配提取字符串52 2.10 访问字符串中的单个字符54 2.11 自定义字符串插值器55 2.12 创建随机字符串58 第3章 数值和日期61 3.1 将字符串解析为数值64 3.2 数值类型间的转换66 3.3 覆盖默认的数值类型69 3.4 ++和--的替代方案71 3.5 浮点数的比较72 3.6 处理大数值74 3.7 生成随机数76 3.8 数值和货币的格式化78 3.9 创建新的日期和时间实例83 3.10 计算日期的差值85 3.11 日期的格式化86 3.12 将字符串解析为日期89 第4章 控制结构92 4.1 for循环95 4.2 多重for循环98 4.3 for循环中的守卫语句100 4.4 集合中的for/yield101 4.5 Scala中的“三元操作符”103 4.6 match表达式104 4.7 case的多条件匹配108 4.8 将match表达式的结果分配给变量109 4.9 访问match表达式的默认值110 4.10 match表达式与模式匹配110 4.11 match表达式与枚举和样例类116 4.12 case中的守卫语句118 4.13 match表达式与isInstanceOf120 4.14 match表达式与List122 4.15 用try/catch匹配一个或多个异常125 4.16 try/catch/finally128 4.17 创建自定义控制结构130 第5章 类133 5.1 挑选合适的领域建模工具134 5.2 创建主构造函数140 5.3 控制构造函数字段的可见性143 5.4 定义辅助构造函数146 5.5 定义私有的主构造函数148 5.6 构造函数参数的默认值150 5.7 类继承时的构造函数151 5.8 调用父类的构造函数154 5.9 定义equals方法(对象相等性)156 5.10 阻止生成访问方法和修改方法163 5.11 覆盖默认的访问方法和修改方法166 5.12 将代码块或函数赋值给惰性字段168 5.13 设置未初始化的var字段170 5.14 样例类产生的模板代码171 5.15 定义样例类的辅助构造函数176 第6章 特质和枚举178 6.1 特质的接口用法180 6.2 定义特质的抽象字段182 6.3 特质的抽象类用法184 6.4 特质的混入用法185 6.5 多特质同名方法处理与super关键字187 6.6 限制特质的拓展(仅支持特定类型的子类)191 6.7 限制特质的拓展(仅支持具有特定方法的类型)194 6.8 限制特质的拓展(仅支持特定的类)195 6.9 使用参数化特质196 6.10 特质的构造参数198 6.11特质与模块202 6.12 用枚举创建命名值的集208 6.13 用枚举建模ADT210 第7章 对象215 7.1 对象的强制转换215 7.2 用classOf方法传递Class类型217 7.3 用object创建单例对象218 7.4 用伴生对象创建静态成员219 7.5 用apply方法作为构造函数221 7.6 用apply方法实现静态工厂223 7.7 将特质具体化成对象224 7.8 unapply方法与模式匹配227 第8章 方法230 8.1 控制方法的作用域232 8.2 调用父类或特质的方法236 8.3 调用方法时使用参数名称239 8.4 设置参数的默认值240 8.5 可变参数242 8.6 无括号的方法调用243 8.7 声明异常244 8.8 支持链式调用风格246 8.9 扩展方法249 第9章 包和导入251 9.1 大括号风格的包语法252 9.2 导入一个或多个成员254 9.3 导入并重命名成员255 9.4 导入时隐藏类257 9.5 导入静态成员258 9.6 无处不在的导入语句260 9.7 导入given262 第10章 函数式编程265 10.1 使用函数字面量(匿名函数)272 10.2 将函数作为变量传递275 10.3 将函数作为方法的参数280 10.4 声明高阶函数282 10.5 使用部分应用函数285 10.6 创建返回函数的方法288 10.7 创建偏函数291 10.8 实现函数式错误处理295 10.9 实际案例:在算法中传递函数298 10.10 实际案例:函数式领域建模300 第11章 集合:介绍308 11.1 选择合适的集合类314 11.2 集合的性能对比319 11.3 不可变集合与可变变量322 11.4 创建惰性视图323 第12章 集合:序列类326 12.1 Vector328 12.2 创建并填充List330 12.3 List的添加操作333 12.4 List和ListBuffer的删除操作335 12.5 使用ListBuffer创建可变列表337 12.6 LazyList338 12.7 ArrayBuffer340 12.8 Array和ArrayBuffer的删除操作342 12.9 创建并更新数组344 12.10 创建多维数组347 12.11 数组排序350 第13章 集合:常见的序列方法353 13.1选择合适的集合方法355 13.2 foreach方法362 13.3 迭代器364 13.4 zipWithIndex和zip方法368 13.5 map方法370 13.6 flatten方法373 13.7 filter方法375 13.8 从集合中提取元素序列378 13.9 序列的拆分380 13.10 reduce和fold方法382 13.11 序列的去重387 13.12 序列的合并388 13.13 序列的随机化391 13.14 集合排序392 13.15 mkString和addString方法397 第14章 集合:映射400 14.1 创建和使用映射400 14.2选择合适的映射403 14.3 不可变映射的添加、更新和删除操作406 14.4 可变映射的添加、更新和删除操作408 14.5 安全访问映射值410 14.6 测试映射中键或值的存在411 14.7 从映射中获取所有的键或值412 14.8 寻找映射中最大和最小的键或值413 14.9 映射的遍历415 14.10 根据键或值对映射排序418 14.11 映射的过滤421 第15章 集合:元组、范围、集、栈和队列424 15.1 元组与异构列表424 15.2 创建范围428 15.3 创建集并向其添加元素432 15.4 集的删除操作433 15.5 有序集435 15.6 创建和使用栈436 15.7 创建和使用队列438 第16 章 文件和进程441 16.1 文本文件的读取442 16.2 文本文件的写入446 16.3二进制文件的读写448 16.4 将字符串伪装为文件450 16.5 对象和文件间的序列化/反序列化451 16.6 目录的遍历452 16.7 执行外部命令454 16.8 执行外部命令并读取标准输出458 16.9 命令的标准输出和标准错误输出460 16.10 构建外部命令的管道462 第17章 sbt464 17.1 新建sbt项目467 17.2 用sbt命令构建项目472 17.3 了解build.sbt语法风格474 17.4 编译、运行和打包Scala项目475 17.5其他sbt命令478 17.6持续的编译和测试480 17.7 依赖管理481 17.8 托管依赖的版本控制486 17.9 API文档的生成488 17.10 指定sbt运行的mainClass489 17.11 部署一个可执行的JAR文件491 17.12发布类库493 第18章 Scala Future和Akka actor的并发496 18.1 创建Future500 18.2 Future的回调和转换方法502 18.3 返回Future的方法506 18.4 多个Future的并行执行508 18.5 创建面向对象风格的actor512 18.6 创建函数式风格的actor516 18.7 向actor发消息519 18.8 创建有多种状态的actor524 第19章 Play框架和Web服务529 19.1 创建Play项目529 19.2创建Play的Web API535 19.3 返回JSON的GET请求539 19.4 将Scala对象序列化成JSON543 19.5 将JSON反序列化成Scala对象547 19.6 在非Play项目中使用Play JSON库552 19.7初识sttp555 第20章 Apache Spark560 20.1 初识Spark561 20.2 将文件读入RDD566 20.3 将CSV读入RDD571 20.4 DataFrame573 20.5 将数据文件读入DataFrame579 20.6 针对多个文件的Spark SQL查询582 20.7 Spark批处理程序586 第21章 Scala.js、GraalVM和jpackage589 21.1 初识Scala.js590 21.2 使用Scala.js响应事件595 21.3 使用Scala.js构建单页面应用601 21.4使用GraalVM构建原生的可执行文件607 21.5 使用jpackage构建应用610 第22章 Scala与Java集成616 22.1 在Scala中使用Java的集合617 22.2 在Java中使用Scala的集合620 22.3 在Scala中使用Java的Optional值622 22.4 在Java中使用Scala的Option值625 22.5 在Java中使用Scala的特质627 22.6 在Scala中使用Java的接口628 22.7 @throws注解629 22.8 @varargs注解631 22.9 @SerialVersionUID和其他注解632 第23章 类型636 23.1 泛型方法645 23.2 泛型类646 23.3 不可变泛型参数的协变650 23.4 元素类型可变化的类652 23.5 类的泛型类型边界654 23.6 duck类型(结构化类型)657 23.7 不透明类型与类型名称659 23.8 given和using的术语推断663 23.9 并集类型与动态类型669 23.10 类型的组合671 23.11 通过跨界相等性比较类673 23.12 CanEqual类型族674 第24 章 最佳实践678 24.1 纯函数680 24.2不可变量与集合685 24.3表达式688 24.4 match表达式与模式匹配691 24.5消除null值694 24.6 Option、Try和Either698 24.7构建模块化系统706 24.8 高阶函数与Option值709 |
本书是一本涉及Scala 3基础知识与实际应用的实践指南。本书基于Scala 3,不仅详细介绍了Scala有关的所有基础知识,包括入门基础、功能、语言本身、概念、工具、库、框架、类型、集合、类、方法、函数式编程技术等,还通过实际的代码示例展示了Scala 3的语言优势和特点,并以问答形式提供了许多解决方案,包含250多个常见的Scala编程问题和1000多个基于真实场景的代码示例,覆盖了使用Scala 3及其流行库时遇到的常见问题。本书适合所有的Scala开发人员以及初级类库设计师阅读。 |
1