Scala编程实战(原书第2版)
①全新正版,现货速发,7天无理由退换货②天津、成都、无锡、广东等多仓就近发货,订单最迟48小时内发出③无法指定快递④可开电子发票,不清楚的请咨询客服。
¥
129.13
6.5折
¥
199
全新
库存2件
作者阿尔文·亚历山大(Alvin Alexander)
出版社机械工业
ISBN9787111732792
出版时间2023-09
装帧其他
开本其他
定价199元
货号31852857
上书时间2024-10-12
商品详情
- 品相描述:全新
- 商品描述
-
目录
目录前言1第1章 命令行131.1 初识Scala REPL141.2 在REPL中使用源代码和JAR文件171.3 初识Ammonite REPL201.4 scalac和scala命令231.5 反编译Scala代码251.6 运行JAR文件28第2章 字符串312.1 字符串的相等性判断342.2 多行字符串的创建352.3 字符串的分割372.4 字符串的变量代入382.5 字符串输出的格式化412.6 字符串的逐个字符处理442.7 字符串的模式查找492.8 字符串的模式替换512.9 使用模式匹配提取字符串522.10 访问字符串中的单个字符542.11 自定义字符串插值器552.12 创建随机字符串58第3章 数值和日期613.1 将字符串解析为数值643.2 数值类型间的转换663.3 覆盖默认的数值类型693.4 ++和--的替代方案713.5 浮点数的比较723.6 处理大数值743.7 生成随机数763.8 数值和货币的格式化783.9 创建新的日期和时间实例833.10 计算日期的差值853.11 日期的格式化863.12 将字符串解析为日期89第4章 控制结构924.1 for循环954.2 多重for循环984.3 for循环中的守卫语句1004.4 集合中的for/yield1014.5 Scala中的“三元操作符”1034.6 match表达式1044.7 case的多条件匹配1084.8 将match表达式的结果分配给变量1094.9 访问match表达式的默认值1104.10 match表达式与模式匹配1104.11 match表达式与枚举和样例类1164.12 case中的守卫语句1184.13 match表达式与isInstanceOf1204.14 match表达式与List1224.15 用try/catch匹配一个或多个异常1254.16 try/catch/finally1284.17 创建自定义控制结构130第5章 类1335.1 挑选合适的领域建模工具1345.2 创建主构造函数1405.3 控制构造函数字段的可见性1435.4 定义辅助构造函数1465.5 定义私有的主构造函数1485.6 构造函数参数的默认值1505.7 类继承时的构造函数1515.8 调用父类的构造函数1545.9 定义equals方法(对象相等性)1565.10 阻止生成访问方法和修改方法1635.11 覆盖默认的访问方法和修改方法1665.12 将代码块或函数赋值给惰性字段1685.13 设置未初始化的var字段1705.14 样例类产生的模板代码1715.15 定义样例类的辅助构造函数176第6章 特质和枚举1786.1 特质的接口用法1806.2 定义特质的抽象字段1826.3 特质的抽象类用法1846.4 特质的混入用法1856.5 多特质同名方法处理与super关键字1876.6 限制特质的拓展(仅支持特定类型的子类)1916.7 限制特质的拓展(仅支持具有特定方法的类型)1946.8 限制特质的拓展(仅支持特定的类)1956.9 使用参数化特质1966.10 特质的构造参数1986.11特质与模块2026.12 用枚举创建命名值的集2086.13 用枚举建模ADT210第7章 对象2157.1 对象的强制转换2157.2 用classOf方法传递Class类型2177.3 用object创建单例对象2187.4 用伴生对象创建静态成员2197.5 用apply方法作为构造函数2217.6 用apply方法实现静态工厂2237.7 将特质具体化成对象2247.8 unapply方法与模式匹配227第8章 方法2308.1 控制方法的作用域2328.2 调用父类或特质的方法2368.3 调用方法时使用参数名称2398.4 设置参数的默认值2408.5 可变参数2428.6 无括号的方法调用2438.7 声明异常2448.8 支持链式调用风格2468.9 扩展方法249第9章 包和导入2519.1 大括号风格的包语法2529.2 导入一个或多个成员2549.3 导入并重命名成员2559.4 导入时隐藏类2579.5 导入静态成员2589.6 无处不在的导入语句2609.7 导入given262第10章 函数式编程26510.1 使用函数字面量(匿名函数)27210.2 将函数作为变量传递27510.3 将函数作为方法的参数28010.4 声明高阶函数28210.5 使用部分应用函数28510.6 创建返回函数的方法28810.7 创建偏函数29110.8 实现函数式错误处理29510.9 实际案例:在算法中传递函数29810.10 实际案例:函数式领域建模300第11章 集合:介绍30811.1 选择合适的集合类31411.2 集合的性能对比31911.3 不可变集合与可变变量32211.4 创建惰性视图323第12章 集合:序列类32612.1 Vector32812.2 创建并填充List33012.3 List的添加操作33312.4 List和ListBuffer的删除操作33512.5 使用ListBuffer创建可变列表33712.6 LazyList33812.7 ArrayBuffer34012.8 Array和ArrayBuffer的删除操作34212.9 创建并更新数组34412.10 创建多维数组34712.11 数组排序350第13章 集合:常见的序列方法35313.1选择合适的集合方法35513.2 foreach方法36213.3 迭代器36413.4 zipWithIndex和zip方法36813.5 map方法37013.6 flatten方法37313.7 filter方法37513.8 从集合中提取元素序列37813.9 序列的拆分38013.10 reduce和fold方法38213.11 序列的去重38713.12 序列的合并38813.13 序列的随机化39113.14 集合排序39213.15 mkString和addString方法397第14章 集合:映射40014.1 创建和使用映射40014.2选择合适的映射40314.3 不可变映射的添加、更新和删除操作40614.4 可变映射的添加、更新和删除操作40814.5 安全访问映射值41014.6 测试映射中键或值的存在41114.7 从映射中获取所有的键或值41214.8 寻找映射中最大和最小的键或值41314.9 映射的遍历41514.10 根据键或值对映射排序41814.11 映射的过滤421第15章 集合:元组、范围、集、栈和队列42415.1 元组与异构列表42415.2 创建范围42815.3 创建集并向其添加元素43215.4 集的删除操作43315.5 有序集43515.6 创建和使用栈43615.7 创建和使用队列438第16 章 文件和进程44116.1 文本文件的读取44216.2 文本文件的写入44616.3二进制文件的读写44816.4 将字符串伪装为文件45016.5 对象和文件间的序列化/反序列化45116.6 目录的遍历45216.7 执行外部命令45416.8 执行外部命令并读取标准输出45816.9 命令的标准输出和标准错误输出46016.10 构建外部命令的管道462第17章 sbt46417.1 新建sbt项目46717.2 用sbt命令构建项目47217.3 了解build.sbt语法风格47417.4 编译、运行和打包Scala项目47517.5其他sbt命令47817.6持续的编译和测试48017.7 依赖管理48117.8 托管依赖的版本控制48617.9 API文档的生成48817.10 指定sbt运行的mainClass48917.11 部署一个可执行的JAR文件49117.12发布类库493第18章 Scala Future和Akka actor的并发49618.1 创建Future50018.2 Future的回调和转换方法50218.3 返回Future的方法50618.4 多个Future的并行执行50818.5 创建面向对象风格的actor51218.6 创建函数式风格的actor51618.7 向actor发消息51918.8 创建有多种状态的actor524第19章 Play框架和Web服务52919.1 创建Play项目52919.2创建Play的Web API53519.3 返回JSON的GET请求53919.4 将Scala对象序列化成JSON54319.5 将JSON反序列化成Scala对象54719.6 在非Play项目中使用Play JSON库55219.7初识sttp555第20章 Apache Spark56020.1 初识Spark56120.2 将文件读入RDD56620.3 将CSV读入RDD57120.4 DataFrame57320.5 将数据文件读入DataFrame57920.6 针对多个文件的Spark SQL查询58220.7 Spark批处理程序586第21章 Scala.js、GraalVM和jpackage58921.1 初识Scala.js59021.2 使用Scala.js响应事件59521.3 使用Scala.js构建单页面应用60121.4使用GraalVM构建原生的可执行文件60721.5 使用jpackage构建应用610第22章 Scala与Java集成61622.1 在Scala中使用Java的集合61722.2 在Java中使用Scala的集合62022.3 在Scala中使用Java的Optional值62222.4 在Java中使用Scala的Option值62522.5 在Java中使用Scala的特质62722.6 在Scala中使用Java的接口62822.7 @throws注解62922.8 @varargs注解63122.9 @SerialVersionUID和其他注解632第23章 类型63623.1 泛型方法64523.2 泛型类64623.3 不可变泛型参数的协变65023.4 元素类型可变化的类65223.5 类的泛型类型边界65423.6 duck类型(结构化类型)65723.7 不透明类型与类型名称65923.8 given和using的术语推断66323.9 并集类型与动态类型66923.10 类型的组合67123.11 通过跨界相等性比较类67323.12 CanEqual类型族674第24 章 最佳实践67824.1 纯函数68024.2不可变量与集合68524.3表达式68824.4 match表达式与模式匹配69124.5消除null值69424.6 Option、Try和Either69824.7构建模块化系统70624.8 高阶函数与Option值709
内容摘要
本书是一本涉及Scala3基础知识与实际应用的实践指南。本书基于Scala3,不仅详细介绍了Scala有关的所有基础知识,包括入门基础、功能、语言本身、概念、工具、库、框架、类型、集合、类、方法、函数式编程技术等,还通过实际的代码示例展示了Scala3的语言优势和特点,并以问答形式提供了许多解决方案,包含250多个常见的Scala编程问题和1000多个基于真实场景的代码示例,覆盖了使用Scala3及其流行库时遇到的常见问题。本书适合所有的Scala开发人员以及初级类库设计师阅读。
— 没有更多了 —
以下为对购买帮助不大的评价