Aufzeichnung
Zusammenfassung
Seit geraumer Zeit in Arbeit, erschien die finale Version von Scala 3.0 im Mai 2021.
Höchste Zeit, sich die verschiedenen Neuerungen anzuschauen.
Denn es wurden nicht nur alte Features gestrichen, sondern auch die existierenden aufpoliert und konsistenter gestaltet.
So gibt es beispielsweise vereinfachte Aufzählungstypen, die auch für Neulinge leichter verständlich sind.
Darüber hinaus wagt Scala 3 auch den Schritt in Richtung Whitespace-basierter Syntax.
Insgesamt hat das Team um Martin Odersky ein interessantes Paket geschnürt, so dass Programmieren in Scala noch mehr Spaß macht als früher.
Auch für Fans von Kotlin und Java 8+ ist etwas dabei.
Folien
Download (PDF)Events
- Developer Week, Nürnberg, Deutschland,
- Karlsruher Entwicklertag, Karlsruhe, Deutschland,
- JavaLand, Brühl, Deutschland,
- IT-Tage, Online,
- INNOQ Technology Lunch, Online,
Code-Beispiele
// Enumerations
enum Colour:
case Cyan, Magenta, Red
enum BrushType:
case Pencil(colour: Colour)
case Ink(colour: Colour, tilt: Float)
case Smudge(force: Int)
case Eraser
case class Brush(size: Int, brushType: BrushType)
// optionale Klammern
trait Semigroup[T]:
def combine(x: T, y: T): T
extension (xs: List[T])
def combineAll: T =
xs.reduceLeft(combine)
given Semigroup[String] with
def combine(x: String, y: String): String =
x + y
def fact(n: Int): Int =
if n <= 0 then
1
else
n * fact(n - 1)
// neue Implicits
case class Circle(x: Double, y: Double, radius: Double)
extension (c: Circle) def circumference: Double =
c.radius * math.Pi * 2
trait Semigroup[T] {
def combine(x: T, y: T): T
def combineAll(xs: List[T]): T =
xs.reduceLeft(combine)
extension (xs: List[T]) def combineAll: T =
xs.reduceLeft(combine)
}
given Semigroup[String] with {
def combine(x: String, y: String): String =
x + y
}
// opake Typen
object Time {
opaque type Milliseconds = Int
opaque type Seconds = Int
extension (num: Int) def seconds: Seconds =
num
extension (num: Seconds) def toMillis: Milliseconds =
num * 1000
}
Artikel
Zu diesem Thema habe ich zwei Artikel geschrieben, die jeweils frei online verfügbar sind: