programming_languages:scala

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
programmiersprachen:scala [2015/10/10 17:00] – [Case classes] phreazerprogrammiersprachen:scala [2017/02/19 15:35] phreazer
Line 1: Line 1:
-Scala+====== 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 21: Line 23:
 </code> </code>
  
-===== Control structures =====+==== Control structures ====
  
 if/else-Constructs have a return value if/else-Constructs have a return value
  
-==== for loop ====+=== for loop ===
 <code scala> <code scala>
 for (i <- 1 to 10) println(i) for (i <- 1 to 10) println(i)
 </code> </code>
-==== match ====+ 
 + 
 +<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+" "+j) 
 + 
 +// filter 
 +    for {i <- 1 to 6          
 +         j <- 1 to 6 
 +         if (i % 2 == 0) 
 +         if (j % 2 !0)} println(i+" "+j) 
 +// yield 
 +    val list: List[Int] List(1,2,3,4) 
 +    val result for (i <- list) yield i * 2 
 +    println(result) 
 +</code> 
 +=== match ===
 Implizites break Implizites break
  
Line 71: Line 95:
 </code> </code>
  
 +==== Inheritance ====
 +
 +Scala doesn't support multiple inheritance.
 +
 +class B(arg:Int) extends A {}
 +
 +Functions can be overridden with overide before func definition.
 +
 +Overridding classes, functions or variables can be forbidden with prefix final.
 +
 +
 +=== Abstract classes ===
 +
 +Difference to Traits: Abstract classes can have constructors. A class which inherits from an abstract class can't inherit from another.
 +
 +The usage of override is optional.
 +
 +=== Packages object ===
 +
 +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.
  
  
  • programming_languages/scala.txt
  • Last modified: 2017/02/19 15:46
  • by phreazer