mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2025-04-27 07:33:57 +00:00
Extend review.
This commit is contained in:
parent
5a1816bca9
commit
a392fec734
@ -40,22 +40,22 @@ Als nächstes beschäftigen wir uns mit ein paar Scala-Grundlagen.
|
|||||||
// 1. Grundlagen
|
// 1. Grundlagen
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
|
|
||||||
// Einzeilige Kommentare beginnen mit zwei Slashes.
|
// Einzeilige Kommentare beginnen mit zwei Schrägstrichen.
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Mehrzeilige Kommentare starten mit einem Slash-Stern
|
Mehrzeilige Kommentare starten mit Schrägstrich und Stern
|
||||||
und enden mit einem Stern-Slash.
|
und enden mit Stern und Schrägstrich.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Einen Wert und eine zusätzliche neue Zeile ausgeben:
|
// Einen Wert und eine zusätzliche neue Zeile ausgeben:
|
||||||
|
|
||||||
println("Hello world!")
|
println("Hallo Welt!")
|
||||||
println(10)
|
println(10)
|
||||||
|
|
||||||
|
|
||||||
// Einen Wert ohne eine zusätzliche neue Zeile ausgeben:
|
// Einen Wert ohne eine zusätzliche neue Zeile ausgeben:
|
||||||
|
|
||||||
print("Hello world")
|
print("Hallo Welt")
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Variablen werden entweder mit var oder val deklariert.
|
Variablen werden entweder mit var oder val deklariert.
|
||||||
@ -128,16 +128,16 @@ Ausdrucks zu speichern. Dieser Wert kann bei Dir anders sein...
|
|||||||
|
|
||||||
// Für Strings gibt es die üblichen Java-Methoden:
|
// Für Strings gibt es die üblichen Java-Methoden:
|
||||||
|
|
||||||
"hello world".length
|
"Hallo Welt".length
|
||||||
"hello world".substring(2, 6)
|
"Hallo Welt".substring(2, 6)
|
||||||
"hello world".replace("C", "3")
|
"Hallo Welt".replace("C", "3")
|
||||||
|
|
||||||
|
|
||||||
// Zusätzlich gibt es noch extra Scala-Methoden
|
// Zusätzlich gibt es noch extra Scala-Methoden
|
||||||
// siehe: scala.collection.immutable.StringOps
|
// siehe: scala.collection.immutable.StringOps
|
||||||
|
|
||||||
"hello world".take(5)
|
"Hallo Welt".take(5)
|
||||||
"hello world".drop(5)
|
"Hallo Welt".drop(5)
|
||||||
|
|
||||||
|
|
||||||
// String-Interpolation: prefix "s":
|
// String-Interpolation: prefix "s":
|
||||||
@ -296,7 +296,7 @@ i // i ausgeben, res3: Int = 10
|
|||||||
// Sie läuft sequentiell ab und verändert die loop-Variable.
|
// Sie läuft sequentiell ab und verändert die loop-Variable.
|
||||||
// "while" in Scala läuft schneller ab als in Java und die o.g.
|
// "while" in Scala läuft schneller ab als in Java und die o.g.
|
||||||
// Kombinatoren und Zusammenlegungen sind einfacher zu verstehen
|
// Kombinatoren und Zusammenlegungen sind einfacher zu verstehen
|
||||||
// und zu parellelisieren.
|
// und zu parallelisieren.
|
||||||
|
|
||||||
// Ein do while Schleife
|
// Ein do while Schleife
|
||||||
|
|
||||||
@ -331,7 +331,7 @@ val text = if (x == 10) "yeah" else "nope"
|
|||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
// 4. Datenstrukturen (Array, Map, Set, Tuples)
|
// 4. Datenstrukturen (Array, Map, Set, Tupel)
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
|
|
||||||
// Array
|
// Array
|
||||||
@ -359,8 +359,8 @@ s(1) //true
|
|||||||
val s = Set(1,1,3,3,7)
|
val s = Set(1,1,3,3,7)
|
||||||
s: scala.collection.immutable.Set[Int] = Set(1, 3, 7)
|
s: scala.collection.immutable.Set[Int] = Set(1, 3, 7)
|
||||||
|
|
||||||
// Tuple - Speichert beliebige Daten und "verbindet" sie miteinander
|
// Tupel - Speichert beliebige Daten und "verbindet" sie miteinander
|
||||||
// Ein Tuple ist keine Collection.
|
// Ein Tupel ist keine Collection.
|
||||||
|
|
||||||
(1, 2)
|
(1, 2)
|
||||||
(4, 3, 2)
|
(4, 3, 2)
|
||||||
@ -368,14 +368,14 @@ s: scala.collection.immutable.Set[Int] = Set(1, 3, 7)
|
|||||||
(a, 2, "three")
|
(a, 2, "three")
|
||||||
|
|
||||||
|
|
||||||
// Hier ist der Rückgabewert der Funktion ein Tuple
|
// Hier ist der Rückgabewert der Funktion ein Tupel
|
||||||
// Die Funktion gibt das Ergebnis sowie den Rest zurück.
|
// Die Funktion gibt das Ergebnis sowie den Rest zurück.
|
||||||
|
|
||||||
val divideInts = (x: Int, y: Int) => (x / y, x % y)
|
val divideInts = (x: Int, y: Int) => (x / y, x % y)
|
||||||
divideInts(10, 3)
|
divideInts(10, 3)
|
||||||
|
|
||||||
|
|
||||||
// Um die Elemente eines Tuples anzusprechen, benutzt man diese
|
// Um die Elemente eines Tupels anzusprechen, benutzt man diese
|
||||||
// Notation: _._n wobei n der index des Elements ist (Index startet bei 1)
|
// Notation: _._n wobei n der index des Elements ist (Index startet bei 1)
|
||||||
|
|
||||||
val d = divideInts(10, 3)
|
val d = divideInts(10, 3)
|
||||||
@ -603,21 +603,21 @@ def matchPerson(person: Person): String = person match {
|
|||||||
val email = "(.*)@(.*)".r // regex
|
val email = "(.*)@(.*)".r // regex
|
||||||
def matchEverything(obj: Any): String = obj match {
|
def matchEverything(obj: Any): String = obj match {
|
||||||
// Werte:
|
// Werte:
|
||||||
case "Hello world" => "Got the string Hello world"
|
case "Hallo Welt" => "string Hallo Welt gefunden"
|
||||||
// Typen:
|
// Typen:
|
||||||
case x: Double => "Got a Double: " + x
|
case x: Double => "Double gefunden: " + x
|
||||||
// Conditions:
|
// Bedingungen:
|
||||||
case x: Int if x > 10000 => "Got a pretty big number!"
|
case x: Int if x > 10000 => "Ziemlich große Zahl gefunden!"
|
||||||
// Case Classes:
|
// Case-Klassen:
|
||||||
case Person(name, number) => s"Got contact info for $name!"
|
case Person(name, number) => s"Kontaktinformationen für $name gefunden!"
|
||||||
// RegEx:
|
// RegEx:
|
||||||
case email(name, domain) => s"Got email address $name@$domain"
|
case email(name, domain) => s"E-Mail-Adresse $name@$domain gefunden"
|
||||||
// Tuples:
|
// Tupel:
|
||||||
case (a: Int, b: Double, c: String) => s"Got a tuple: $a, $b, $c"
|
case (a: Int, b: Double, c: String) => s"Tupel gefunden: $a, $b, $c"
|
||||||
// Strukturen:
|
// Strukturen:
|
||||||
case List(1, b, c) => s"Got a list with three elements and starts with 1: 1, $b, $c"
|
case List(1, b, c) => s"Liste aus drei Elementen gefunden, startend mit 1: 1, $b, $c"
|
||||||
// Patterns kann man ineinander schachteln:
|
// Pattern kann man ineinander schachteln:
|
||||||
case List(List((1, 2, "YAY"))) => "Got a list of list of tuple"
|
case List(List((1, 2, "YAY"))) => "Liste von Tupeln gefunden"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -747,12 +747,12 @@ myImplicitFunction("Pitbull").sorte // => "Golden Pitbull"
|
|||||||
// Diese Funktion hat zwei Parameter: einen normalen und einen implicit
|
// Diese Funktion hat zwei Parameter: einen normalen und einen implicit
|
||||||
|
|
||||||
def sendGreetings(toWhom: String)(implicit howMany: Int) =
|
def sendGreetings(toWhom: String)(implicit howMany: Int) =
|
||||||
s"Hello $toWhom, $howMany blessings to you and yours!"
|
s"Hallo $toWhom, $howMany Segenswünsche für Sie und Ihre Angehörigen!"
|
||||||
|
|
||||||
|
|
||||||
// Werden beide Parameter gefüllt, verhält sich die Funktion wie erwartet
|
// Werden beide Parameter gefüllt, verhält sich die Funktion wie erwartet
|
||||||
|
|
||||||
sendGreetings("John")(1000) // => "Hello John, 1000 blessings to you and yours!"
|
sendGreetings("John")(1000) // => "Hallo John, 1000 Segenswünsche für Sie und Ihre Angehörigen!"
|
||||||
|
|
||||||
|
|
||||||
// Wird der implicit-Parameter jedoch weggelassen, wird ein anderer
|
// Wird der implicit-Parameter jedoch weggelassen, wird ein anderer
|
||||||
@ -763,7 +763,7 @@ sendGreetings("John")(1000) // => "Hello John, 1000 blessings to you and yours!
|
|||||||
|
|
||||||
// Hier also: "myImplicitInt", da ein Int gesucht wird
|
// Hier also: "myImplicitInt", da ein Int gesucht wird
|
||||||
|
|
||||||
sendGreetings("Jane") // => "Hello Jane, 100 blessings to you and yours!"
|
sendGreetings("Jane") // => "Hallo Jane, 100 Segenswünsche für Sie und Ihre Angehörigen!"
|
||||||
|
|
||||||
|
|
||||||
// bzw. "myImplicitFunction"
|
// bzw. "myImplicitFunction"
|
||||||
@ -774,7 +774,7 @@ sendGreetings("Jane") // => "Hello Jane, 100 blessings to you and yours!"
|
|||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
// 9. Misc
|
// 9. Sonstiges
|
||||||
/////////////////////////////////////////////////
|
/////////////////////////////////////////////////
|
||||||
// Importe
|
// Importe
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user