Suchen und Finden
Service
Durchstarten mit Scala
Heiko Seeberger, Roman Roelofsen
Verlag entwickler.press, 2011
ISBN 9783868022513 , 204 Seiten
Format PDF, OL
Kopierschutz frei
Geräte
Inhaltsverzeichnis
4
Vorwort
8
Kapitel 1 – Warum Scala?
10
1.1 Was ist Scala?
10
1.2 Warum Scala statt Java?
11
1.3 Warum Scala statt Groovy, JRuby & Co?
15
Kapitel 2 – Entwicklungsumgebung
16
2.1 Kommandozeilen-Werkzeuge
16
2.1.1 scalac und fsc
17
2.1.2 scala
19
2.1.3 scaladoc
20
2.2 Build-Werkzeuge
20
2.2.1 Ant
21
2.2.2 Maven
22
2.2.3 SBT
23
2.3 IDEs
26
2.3.1 Scala IDE for Eclipse
27
2.3.2 IntelliJ IDEA
28
Kapitel 3 – Das Fallbeispiel „ScalaTrain“
30
Kapitel 4 – Erste Gehversuche in der REPL
32
4.1 Variablen
32
4.1.1 Unveränderliche Variablen
32
4.1.2 Veränderliche Variablen
34
4.2 Methoden
34
4.2.1 Alles hat ein Ergebnis
34
4.2.2 Unit-Methoden
36
4.3 Funktionen
37
Kapitel 5 – OO-Grundlagen
40
5.1 Vorbereitung: Projekt initialisieren
40
5.2 Klassen
41
5.2.1 Klassenparameter und Konstruktoren
42
5.2.2 Felder
44
5.2.3 Methoden
46
5.2.4 Named and Default Arguments
49
5.3 Packages und Sichtbarkeit
50
5.3.1 Verschachtelte Packages
51
5.3.2 Imports
52
5.3.3 Sichtbarkeit
53
5.4 Singleton Objects
54
5.4.1 Companion Objects
55
5.4.2 Predef
55
5.5 Case Classes
56
5.6 Projekt-Code: aktueller Stand
59
Kapitel 6 – Testen von Scala-Programmen
60
6.1 Unit-Tests mit specs
60
6.1.1 Vorbereitung: Dependencies verwalten mit SBT
60
6.1.2 Testfälle einfach gemacht
63
6.1.3 Testdaten einfach gemacht
65
6.2 Test Coverage mit scct
67
6.3 Projekt-Code: aktueller Stand
70
Kapitel 7 – Erste Schritte mit FP
72
7.1 Scala-Collections
73
7.1.1 Klassenhierarchie
73
7.1.2 Collection-Instanzen erzeugen
74
7.1.3 Typ-Parameter
75
7.1.4 Tupel
76
7.1.5 Unveränderliche und veränderliche Collections
77
7.1.6 Collections in ScalaTrain
79
7.2 Funktionale Collections
80
7.2.1 Funktionsliterale
80
7.2.2 Funktions-Typen
82
7.2.3 Funktionale Collections in ScalaTrain
84
7.2.4 map, flatMap und filter im Detail
89
7.3 For Expressions und For Loops
92
7.3.1 For Expressions
94
7.3.2 For Loops und foreach
97
7.4 Projekt-Code: aktueller Stand
99
Kapitel 8 – Vererbung und Traits
100
8.1 Vererbung
100
8.1.1 Sub-Klassen mit extends definieren
100
8.1.2 Member überschreiben
103
8.1.3 Abstrakte Klassen und Member
106
8.1.4 Scala-Typhierarchie
109
8.2 Traits
111
8.2.1 Traits hinein mixen
113
8.2.2 Linearisierung
114
8.2.3 Beispiel: Ordered implementieren
117
8.2.4 Einschub: By-Name Parameters
118
8.2.5 Self Types
120
8.3 Abschluss – Aktueller Stand
122
Kapitel 9 – Pattern Matching
126
9.1 match-Ausdrücke
126
9.2 Welche Pattern gibt es?
127
9.2.1 Wildcard Pattern
127
9.2.2 Constant Pattern
127
9.2.3 Variable Pattern und Typed Pattern
127
9.2.4 Tuple Pattern
128
9.2.5 Constructor Pattern
128
9.2.6 Sequence Pattern
130
9.3 Pattern Guards und Variable Binding
131
9.4 Pattern Matching außerhalb von match-Ausdrücken
132
9.5 Projekt-Code: aktueller Stand
133
Kapitel 10 – Scala und XML
136
10.1 XML-Literale
136
10.2 XML-Verarbeitung
137
10.3 XML für ScalaTrain
139
10.4 Abschluss – Aktueller Stand
140
Kapitel 11 – Implicits
142
11.1 Implicit Conversions
142
11.1.1 Implicit Conversions zum Expected Type
143
11.1.2 Implicit Conversions des Receivers
145
11.2 Implicit Parameters
148
11.3 Type Classes
151
11.4 Projekt-Code: aktueller Stand
154
Kapitel 12 – Fortgeschrittene Konzepte
158
12.1 Rekursion
158
12.2 Upper Bounds und View Bounds
161
12.2.1 Einschub: Package Objects
161
12.2.2 Einschub: Varianz
162
12.2.3 Upper Bounds
163
12.2.4 View Bounds
164
12.3 Existential Types
165
12.4 Vertiefung objekt-funktionale Programmierung
167
12.4.1 Problemstellung
167
12.4.2 Lösungsansatz
168
12.4.3 Streckenabschnitte ermitteln
170
12.5 Verbindungen ermitteln
173
12.6 Abschluss – Aktueller Stand
175
Kapitel 13 – Scala Libraries
180
13.1 Validieren mit scalaz
180
13.2 Web-Applikationen mit Lift
185
13.2.1 Lift-Konfiguration
186
13.2.2 View First
187
13.2.3 Snippets
190
13.3 Abschluss – Endgültiger Stand
193
Stichwortverzeichnis
200
Service
Shop