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:30] – [Inheritance] 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 don'supports multiple inheritance.+Scala doesn'support multiple inheritance.
  
 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.
  
  
  • programming_languages/scala.txt
  • Last modified: 2017/02/19 15:46
  • by phreazer