Scala之父Martin Odersky作序推荐的Scala速学版(第3版)出版

news2024/9/23 23:24:12

Scala 是一个很有吸引力的选择。 Scala 的语法简洁, 跟 Java 的“陈词滥调”比起来让人耳目一 新。它运行在 Java 虚拟机(Java virtual machine ,JVM)上,提供对大量库和工具的访问。并 且,Scala 不仅仅瞄准 JVM。ScalaJS 项目可以生成 JavaScript 代码,使你能够使用非 JavaScript 语言同时编写 Web 应用程序的服务器端和客户端部分。 Scala 既拥抱了函数式编程风格, 又没 放弃面向对象编程,为你提供了一个通往新范式的渐进式学习路径。 Scala REPL 可以让你快 速地进行实验, 使得学习 Scala 变得非常愉快。最后但同样重要的是, Scala 是静态类型语言, 允许编译器发现错误,这样就不至于要等到程序运行起来之后才能发现这些错误, 造成时间 上的浪费。编译器还可以帮助你编写无错误的代码, 尽可能地推断类型, 这样就不必编写(或 读取)类型。

Scala之父Martin Odersky作序推荐的Scala速学版(第3版)

1.Scala之父Martin Odersky作序推荐,Scala入门好书,涵盖Scala 3,作者Java大神霍斯特曼;

2.开篇快速介绍Scala的基础功能。此外,它还涵盖了许多更“高级”的概念,并最终深入到非常高级的内容;

3.每章都标记了一个级别标签,告诉你本章的难易程度,以及它是面向应用程序员还是库设计者;

4.提供丰富的示例,还给出了大量注释、提示和警告,这些都是作者实际经验的总结,对编程实践大有裨益。

这是本书的第 3 版,作者针对 Scala 3 进行了全面的更新。Scala 3 为这门语言带来了重大变化。 通过移除尴尬的边界情况,经典特性变得更加规范,高级功能现在更容易学习,甚至还添加了 以前只能通过宏才能使用的更强大的功能。一种“安静语法”(类似于 Python 语法)看起来很 简单,现在已经成为编写 Scala 3 代码的首选方式。

作者写这本书是为那些迫不及待想马上开始用 Scala 编程的读者准备的。

Scala 语言因为难以阅读而出名, 当库的提供者不太关注可用性或者假定程序员对范畴论很 精通时,这当然是事实。我假定你熟悉面向对象编程, 本书涵盖了基本的函数式编程所需的内 容,在复杂性上与 Java 流类似,但事物总有两面性。我的目标是教你写出令人愉快的 Scala 代 码,而不是难以理解的代码。

Scala 是一门庞大的语言,但你可以在不了解所有细节的情况下有效地使用它。 Scala 之 父马丁 ·奥德斯基(Martin Odersky)为应用程序员和库设计者划分了不同的专业水平, 如下 表所示:

对于每一章(偶尔个别章节),我都会指出所需的经验级别,大致的递进顺序为 A1 、L1 、 A2 、L2 、A3 、L3。即使你不想设计自己的库,了解 Scala 为库设计者提供的工具也可以让你成 为更高效的库用户。

本书是一本系统地介绍Scala语言的入门图书,针对Scala 3进行了全面的更新,不仅覆盖了Scala语言的基础知识,而且涵盖了许多更复杂的概念,并最终深入到非常高级的内容。

本书共分20章,首先介绍了Scala语言的基础概念,以及控制结构和函数、数组操作、映射、Option、元组、类、对象和枚举、包、导入和导出、继承、文件和正则表达式等关键概念;其次介绍了特质、运算符、高阶函数、容器、模式匹配、注解、Future、类型参数、高级类型、上下文抽象和类型级编程等高级内容。每章都标记了一个级别标签,告诉你本章的难易程度,以及它是面向应用程序员还是库设计者。本书以紧凑的形式呈现内容,提供了许多实用的示例代码,还给出了基于作者实际经验的提示、注意和警告。

本书适合有一定编程经验、对Scala感兴趣,并希望尽快掌握Scala核心概念和用法的开发者阅读。

关于作者

凯·S. 霍斯特曼(Cay S. Horstmann)是《Java核心技术速学版(第3版)》(Core Java for the Impatient, Third Edition)的作者,也是 Core Java, Volumes I and II, Twelfth Edition 的主要作者,他还为专业编程人员和计算机科学专业的学生撰写了十多本书。他是美国圣何塞州立大学计算机科学专业的荣誉退休教授,也是一名Java Champion。

本书目录

内容抢先读

编辑于 2024-08-27 07:57・IP 属地河北

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2093808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

设计模式之适配器模式:软件世界的桥梁建筑师

一、什么是适配器模式 适配器模式(Adapter Pattern)是一种结构型设计模式(Structural Pattern),通过将类的接口转换为客户期望的另一个接口,适配器可以让不兼容的两个类一起协同工作。其核心思想是通过一个…

嵌入式全栈开发学习笔记---Linux系统编程(概述)

目录 入门级问题 为什么要学习Linux系统? 为什么Linux系统被嵌入式设备广泛应用? 系统调用 应用层是什么? 系统调用和库函数有什么区别? 为什么在应用层不能直接调用内核中的函数? 为什么有了系统调用就安全了…

Linux系统安装MySQL8.0

1.查看Linux发行版 2.安装前准备 2.1.检查是否安装 rpm -qa | grep mysql 2.2.如已安装mysql,则删除 rpm -e --nodeps 包名 2.3.再次检查安装包是否全部删除 rpm -qa | grep mysql 2.4.搜索mysql文件夹 find / -name mysql 2>/dev/null 2.5.若有mysql文件夹&a…

Golang | Leetcode Golang题解之第388题文件的最长绝对路径

题目&#xff1a; 题解&#xff1a; func lengthLongestPath(input string) (ans int) {n : len(input)level : make([]int, n1)for i : 0; i < n; {// 检测当前文件的深度depth : 1for ; i < n && input[i] \t; i {depth}// 统计当前文件名的长度length, isFi…

Cookie对象的缺陷与应对策略

Cookie对象的缺陷与应对策略 1. 安全性问题&#xff1a;Cookie是明文的2. 存储限制&#xff1a;浏览器对Cookie数量和大小有限制3. 性能影响&#xff1a;Cookie携带过多增加网络流量4. 数据类型限制&#xff1a;Cookie的value值只能是字符串 &#x1f496;The Begin&#x1f4…

82.给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。实现返回已排序的链表

删除排序链表中的重复元素 II 一、题目描述 82. 删除排序链表中的重复元素 II 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head = [1,2,3,3,4,4,5] 输出:[1,2,5] 示例 2: 输入:hea…

华为云征文|部署电影收藏管理器 Radarr

华为云征文&#xff5c;部署电影收藏管理器 Radarr 一、Flexus云服务器X实例介绍1.1 云服务器介绍1.2 应用场景1.3 核心竞争力 二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 Radarr3.1 Radarr 介绍3.2 Docker 环境搭建3.3 Radarr 部署3.4 Ra…

ubuntu24安装cuda和cudnn

一、安装cuda 确保显卡驱动正确安装 终端输入&#xff1a; nvidia-smi显示下面结果&#xff0c;说明显卡驱动安装正常&#xff0c;可以进行下一步 1.去官网下载CUDA&#xff0c;需要注册账号下载 https://developer.nvidia.com/cuda-toolkit-archive由于我们显卡支持12.2&…

[免越狱]FLEXTool/FLEX 炫酷功能怎么添加到目标App

原因&#xff1a; 这么炫酷的功能&#xff0c;手机又不想越狱&#xff0c;又想体验一波&#xff0c;于是研究了他源码&#xff0c;实现了功能。 1. 下载源码 https://github.com/FLEXTool/FLEX?tabreadme-ov-filehttps://github.com/FLEXTool/FLEX?tabreadme-ov-file 2. 修…

TeamTalk消息服务器(未读计数)

信令和协议设计 enum MessageCmdID {// ...... 省略无关逻辑 CID_MSG_UNREAD_CNT_REQUEST 775,CID_MSG_UNREAD_CNT_RESPONSE 776,// ...... 省略无关逻辑 };message IMUnreadMsgCntReq{//cmd id: 0x0307required uint32 user_id 1;optional bytes attach_data 20; }mes…

[Labview]图片叠加下的表格视图拖拽功能:挖坑粗糙版

没错&#xff0c;又是Labview表格T - T 由于项目中用到的表格上有一张用于画框的二维图片&#xff0c;感兴趣可看这篇 [Labview] 表格单元格外边框 二维图片叠加绘图 因此在滚动条与鼠标滚轮的基础上&#xff0c;想再增加一个拖拽移动的功能。 但 [二维图片] 并没有 拖拽开始…

windows C++ 并行编程-矩阵乘法

下面我们尝试分步演练演示如何使用 C AMP 加速矩阵乘法的执行。 提供了两种算法&#xff0c;一种不使用平铺&#xff0c;一种使用平铺&#xff0c;看看两者的差别。 在 Visual Studio 中创建项目 在菜单栏上&#xff0c;选择“文件”>“新建”>“项目”&#xff0c;打开…

[Algorithm][综合训练][过桥][最大差值][兑换零钱]详细讲解

目录 1.过桥1.题目链接2.算法原理详解 && 代码实现 2.最大差值1.题目链接2.算法原理详解 && 代码实现 3.兑换零钱1.题目链接2.算法原理详解 && 代码实现 1.过桥 1.题目链接 过桥 2.算法原理详解 && 代码实现 解法&#xff1a;贪心 BFS #in…

【Slurm集群在centos7上的搭建】

Slurm集群在centos7上的部署 集群基本情况1. 前期准备工作2.网络配置3.NTP时间同步配置4.NFS共享目录配置5.NIS用户管理配置6.Munge通信部署7.安装Mariadb数据库以及Slurm安装配置7.1安装配置Mariadb及SlurmID配置7.2Slurm安装配置 附录配置文件slurm.conf&#xff1a;slurmdbd…

Redis从入门再再到入门(下)

文章目录 1.Redis远程连接1.1 Redis远程连接配置1.2 通过桌面版图形化界面连接Redis1.3 通过IDEA中的插件连接Redis 2.Jedis的基本使用2.1 jedis概述2.2 jedis的基本操作2.3 jedis连接池 3.Spring整合Redis3.1 新建maven工程,引入相关依赖3.2 redis.properties3.3 spring-redis…

Python | Leetcode Python题解之第387题字符串中的第一个唯一字符

题目&#xff1a; 题解&#xff1a; class Solution:def firstUniqChar(self, s: str) -> int:position dict()q collections.deque()n len(s)for i, ch in enumerate(s):if ch not in position:position[ch] iq.append((s[i], i))else:position[ch] -1while q and po…

如何开发针对不平衡分类的成本敏感神经网络 python

如何开发针对不平衡分类的成本敏感神经网络 深度学习神经网络是一类灵活的机器学习算法&#xff0c;可以在各种问题上表现良好。 神经网络使用误差反向传播算法进行训练&#xff0c;该算法涉及计算模型在训练数据集上产生的误差&#xff0c;并根据这些误差的比例更新模型权重…

鸿蒙开发入门day16-拖拽事件和手势事件

(创作不易&#xff0c;感谢有你&#xff0c;你的支持&#xff0c;就是我前行的最大动力&#xff0c;如果看完对你有帮助&#xff0c;还请三连支持一波哇ヾ(&#xff20;^∇^&#xff20;)ノ&#xff09; 目录 拖拽事件 概述 拖拽流程 ​手势拖拽 ​鼠标拖拽 拖拽背板图 …

如何有效防止表单重复提交

如何有效防止表单重复提交 1. 使用重定向&#xff08;Redirect&#xff09;2. 点击后按钮失效3. Loading 遮罩4. 自定义重复提交过滤器 &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Web开发中&#xff0c;表单重复提交是一个常见问题&…

计算物理精解【3】

文章目录 力学单位矢量基础定义 矢量加法矢量加法的几何方法矢量加法的代数方法示例注意事项 矢量间的关系矢量&#xff08;或向量&#xff09;的标量积&#xff08;也称为点积、内积或数量积&#xff09;性质计算两矢量之间的夹角例子步骤数值结果 计算两三维矢量之间夹角的例…