Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
programmiersprachen:scala [2015/10/10 17:30] – [Inheritance] phreazer | programming_languages:scala [2017/02/19 15:46] (current) – ↷ Seite von programmiersprachen:scala nach programming_languages:scala verschoben phreazer | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | Scala | + | ====== |
- | **Sca**lable **la**nga | ||
- | ====== Start ====== | + | **Sca**lable **la**nguage |
+ | |||
+ | ===== Start ===== | ||
* No primitive types, everything is an object | * No primitive types, everything is an object | ||
Line 12: | Line 14: | ||
- | ===== Hello World ===== | + | ==== Hello World ==== |
<code scala> | <code scala> | ||
object HelloWorld { | object HelloWorld { | ||
Line 28: | Line 30: | ||
<code scala> | <code scala> | ||
for (i <- 1 to 10) println(i) | for (i <- 1 to 10) println(i) | ||
+ | </ | ||
+ | |||
+ | |||
+ | <code scala> | ||
+ | |||
+ | // different steps | ||
+ | for (i <- 4 to (17,3)) println(i) | ||
+ | // other data types than int | ||
+ | for (s <- myList) println(s) | ||
+ | |||
+ | // multiple generators | ||
+ | for (i <- 0 to 2; j <- 3 to 4) println(i+" | ||
+ | |||
+ | // filter | ||
+ | for {i <- 1 to 6 | ||
+ | j <- 1 to 6 | ||
+ | if (i % 2 == 0) | ||
+ | if (j % 2 != 0)} println(i+" | ||
+ | // yield | ||
+ | val list: List[Int] = List(1, | ||
+ | val result = for (i <- list) yield i * 2 | ||
+ | println(result) | ||
</ | </ | ||
==== match ==== | ==== match ==== | ||
Line 40: | Line 64: | ||
</ | </ | ||
- | ==== Singleton objects ==== | + | ===== Singleton objects |
There are no static methods/ | There are no static methods/ | ||
Line 54: | Line 78: | ||
</ | </ | ||
- | ==== Companion object ==== | + | ===== Companion object |
Prerequisite: | Prerequisite: | ||
- | ==== Case classes ==== | + | ===== Case classes |
* Use a factory method for construction | * Use a factory method for construction | ||
Line 71: | Line 95: | ||
</ | </ | ||
- | ==== Inheritance ==== | + | ===== Inheritance |
- | Scala don' | + | Scala doesn' |
class B(arg:Int) extends A {} | class B(arg:Int) extends A {} | ||
Line 82: | Line 106: | ||
- | === Abstract classes === | + | ==== Abstract classes |
Difference to Traits: Abstract classes can have constructors. A class which inherits from an abstract class can't inherit from another. | Difference to Traits: Abstract classes can have constructors. A class which inherits from an abstract class can't inherit from another. | ||
Line 88: | Line 112: | ||
The usage of override is optional. | The usage of override is optional. | ||
- | === Packages object === | + | ==== Packages object |
Objects which are visible in a whole package. | Objects which are visible in a whole package. | ||
+ | |||
+ | |||
+ | |||
+ | ===== Identity and equality ===== | ||
+ | |||
+ | ==-Operator checks equality (identity in Java) | ||
+ | eq-Operator checks identity | ||
+ | |||
+ | eq and ne are only defined for clases of type scala.AnyRef. | ||