Errata
The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".
The following errata were submitted by our customers and approved as valid errors by the author or editor.
Color key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update
Version | Location | Description | Submitted By | Date submitted | Date corrected |
---|---|---|---|---|---|
Safari Books Online | X Chapter 2, subsection "Methods with Multiple Parameter Lists", first sentence of third to last paragraph |
(Please ignore the "Page number of error" field above. I can't find the page number when using the Safari Books Online) Duplicate "can" in the sentence "By the way, we can can simplify our expressions even more: str => println(str)" Note from the Author or Editor: |
Jian Lan | Jun 15, 2021 | |
Page X The code example of the section "Case Objects and hashCode" in the chapter 11 |
`println(s"03.04 vs. 03: ${O3.O4.hashCode} == ${"O3".hashCode}")` should be `println(s"03.04 vs. 03: ${O3.O4.hashCode} != ${"O3".hashCode}")`, use `!=`. Also its output: `03.04 vs. 03: 2501 == 2500` should be `O3.O4 vs. O3: 2501 != 2500`. Note from the Author or Editor: |
Jian Lan | Jun 27, 2021 | ||
Printed, PDF, ePub | Page 491 |
The example "Invariant1.scala" and also the subsequent example "Invariant.scala" use "by-name" parameters where they are not needed, i.e., for the "predicate" and "block" parameters. Because the methods are inlined, there is no need to use by-name parameters to delay evaluation of them until inside the method bodies. There are no method bodies after inlining, just blocks of code. I have updated the two code files in the examples GitHub repo. |
![]() Dean Wampler |
May 22, 2022 |