Durchstarten mit Scala

von: Heiko Seeberger, Roman Roelofsen

entwickler.press, 2011

ISBN: 9783868022513 , 204 Seiten

Format: PDF, OL

Kopierschutz: frei

Windows PC,Mac OSX geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 16,00 EUR

Mehr zum Inhalt

Durchstarten mit Scala


 

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