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
Last revisionBoth sides next revision
programmiersprachen:scala [2015/10/10 17:23] phreazerprogrammiersprachen:scala [2017/02/19 15:36] 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 28: Line 30:
 <code scala> <code scala>
 for (i <- 1 to 10) println(i) for (i <- 1 to 10) println(i)
 +</code>
 +
 +
 +<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> </code>
 ==== match ==== ==== match ====
Line 40: Line 64:
 </code> </code>
  
-==== Singleton objects ====+===== Singleton objects =====
  
 There are no static methods/vars in scala and singleton objects can't be constructed using a constructor with new. There are no static methods/vars in scala and singleton objects can't be constructed using a constructor with new.
Line 54: Line 78:
 </code> </code>
  
-==== Companion object ====+===== Companion object =====
  
 Prerequisite: object and class have the same name and are defined in the same file. Companion objects can access their private variables. Singleton objects without companion clases are standalone objects. Prerequisite: object and class have the same name and are defined in the same file. Companion objects can access their private variables. Singleton objects without companion clases are standalone objects.
  
-==== Case classes ====+===== Case classes =====
  
   * Use a factory method for construction   * Use a factory method for construction
Line 71: Line 95:
 </code> </code>
  
-==== Inheritance ====+===== Inheritance ====
 + 
 +Scala doesn't support multiple inheritance.
  
 class B(arg:Int) extends A {} class B(arg:Int) extends A {}
Line 77: Line 103:
 Functions can be overridden with overide before func definition. 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