Introduction |
|
xv | |
|
Chapter 1 Language Features |
|
|
1 | (18) |
|
Static Types and Type Inference |
|
|
2 | (6) |
|
Implicit Parameters, Conversions, and Their Resolution |
|
|
3 | (2) |
|
Case Class, Tuples, and Case Object |
|
|
5 | (1) |
|
Abstract Class, Traits, and Sealed |
|
|
6 | (2) |
|
|
8 | (5) |
|
Statements Are Expressions |
|
|
9 | (1) |
|
|
9 | (1) |
|
Scala Collections, immutable and mutable |
|
|
10 | (2) |
|
|
12 | (1) |
|
Packages, Companion Objects, Package Objects, and Scoping |
|
|
13 | (4) |
|
AnyVal, AnyRef, Any, and the Type Hierarchy |
|
|
16 | (1) |
|
|
17 | (2) |
|
Chapter 2 FUNCTIONAL PROGRAMMING |
|
|
19 | (18) |
|
|
20 | (2) |
|
|
22 | (1) |
|
|
23 | (3) |
|
|
26 | (1) |
|
|
27 | (5) |
|
Methods Returning a Collection |
|
|
29 | (2) |
|
Methods Returning a Value |
|
|
31 | (1) |
|
Currying and Partially Applied Functions |
|
|
32 | (2) |
|
|
34 | (1) |
|
Strict versus Non-Strict Initialization |
|
|
35 | (1) |
|
|
36 | (1) |
|
Chapter 3 JAVA COMPATIBILITY |
|
|
37 | (8) |
|
Scala and Java Collections |
|
|
37 | (3) |
|
|
40 | (2) |
|
|
42 | (1) |
|
|
43 | (2) |
|
Chapter 4 SIMPLE BUILD TOOL |
|
|
45 | (18) |
|
|
46 | (6) |
|
|
47 | (1) |
|
|
47 | (2) |
|
|
49 | (1) |
|
|
50 | (1) |
|
|
50 | (1) |
|
|
51 | (1) |
|
|
52 | (4) |
|
|
53 | (2) |
|
|
55 | (1) |
|
|
56 | (6) |
|
|
56 | (2) |
|
Packaging with SBT-Native-Packager |
|
|
58 | (1) |
|
|
59 | (1) |
|
|
60 | (1) |
|
|
61 | (1) |
|
|
62 | (1) |
|
|
63 | (16) |
|
Getting Started with Maven and Scala |
|
|
64 | (3) |
|
Introducing scala-maven-plugin |
|
|
67 | (3) |
|
Adding Library Dependencies |
|
|
70 | (1) |
|
|
71 | (1) |
|
|
72 | (1) |
|
|
72 | (2) |
|
Joint Compilation with Java |
|
|
74 | (2) |
|
Accelerating Compilation with Zinc |
|
|
76 | (1) |
|
|
77 | (2) |
|
Chapter 6 SCALA STYLE/LINT |
|
|
79 | (6) |
|
|
79 | (2) |
|
|
81 | (1) |
|
|
82 | (1) |
|
|
82 | (2) |
|
|
84 | (1) |
|
|
84 | (1) |
|
|
85 | (10) |
|
|
86 | (1) |
|
|
87 | (1) |
|
|
87 | (6) |
|
|
88 | (1) |
|
|
89 | (1) |
|
|
90 | (2) |
|
|
92 | (1) |
|
|
93 | (1) |
|
|
94 | (1) |
|
Chapter 8 DOCUMENTING YOUR CODE WITH SCALADOC |
|
|
95 | (44) |
|
|
96 | (1) |
|
|
96 | (1) |
|
|
96 | (1) |
|
Choosing What to Document |
|
|
96 | (1) |
|
|
97 | (9) |
|
|
97 | (1) |
|
|
98 | (2) |
|
|
100 | (6) |
|
Invoking the Scaladoc Tool |
|
|
106 | (2) |
|
|
108 | (9) |
|
Formatting with Inline Wiki Syntax |
|
|
108 | (2) |
|
Structuring with Block Elements |
|
|
110 | (3) |
|
|
113 | (4) |
|
|
117 | (1) |
|
|
117 | (15) |
|
|
117 | (6) |
|
|
123 | (2) |
|
|
125 | (7) |
|
Invoking scaladoc: Additional Options |
|
|
132 | (1) |
|
Integrating Scaladoc Creation with Your Project |
|
|
133 | (1) |
|
|
133 | (1) |
|
|
134 | (1) |
|
|
134 | (2) |
|
|
136 | (2) |
|
|
138 | (1) |
|
|
139 | (26) |
|
|
140 | (1) |
|
Static versus Dynamic Typing |
|
|
140 | (1) |
|
What Static Type Systems Are Good For |
|
|
141 | (1) |
|
What Dynamic Type Systems Are Good For |
|
|
141 | (1) |
|
Scala's Unified Type System |
|
|
141 | (4) |
|
|
143 | (2) |
|
|
145 | (4) |
|
|
145 | (1) |
|
|
146 | (1) |
|
|
146 | (3) |
|
|
149 | (6) |
|
|
149 | (1) |
|
|
150 | (1) |
|
|
151 | (4) |
|
|
155 | (9) |
|
|
155 | (3) |
|
|
158 | (1) |
|
|
159 | (2) |
|
|
161 | (1) |
|
|
161 | (1) |
|
|
162 | (2) |
|
|
164 | (1) |
|
Chapter 10 ADVANCED FUNCTIONAL PROGRAMMING |
|
|
165 | (14) |
|
|
165 | (2) |
|
Functional Design Patterns |
|
|
167 | (9) |
|
|
167 | (3) |
|
|
170 | (2) |
|
|
172 | (1) |
|
|
173 | (1) |
|
|
174 | (2) |
|
|
176 | (3) |
|
|
179 | (26) |
|
Synchronize/Atomic Variables |
|
|
181 | (3) |
|
|
184 | (3) |
|
|
187 | (5) |
|
|
192 | (3) |
|
|
195 | (3) |
|
|
198 | (2) |
|
|
200 | (2) |
|
|
202 | (3) |
|
|
205 | (10) |
|
|
205 | (1) |
|
Getting Started: Scala.js with SBT |
|
|
206 | (4) |
|
|
210 | (1) |
|
Webjars and Dealing with the Frontend Ecosytem |
|
|
211 | (2) |
|
|
213 | (2) |
Index |
|
215 | |