Course 497:
What’s New in Scala 3

(3 days)

 

Course Description

This course gives you an overview of the new features of Scala 3. It not only teaches you the new syntax, but also looks at the principles guiding the new version and its characteristics and gives you hands-on practical experience of most new constructs.

Learning Objectives

  • Gain a working knowledge of the new syntax of Scala 3
  • Understand the reasons for the changes that took place
  • Understand the new features that were introduced
  • Learn how to port old code to the new version
  • Be aware of incompatibilities and how to deal with them where possible

Who Should Attend

Although everyone is welcome to try this course, the intended audience consists mainly of professional Scala developers who are looking to learn about the new features and syntax of Scala 3.

Prerequisites

In order to make the most of this course, prospective students should have a good understanding and working knowledge of Scala 2.


Course Outline

  • Overview
    • Scala 3
      • Main Objectives
      • Categories of Change
    • Changes
      • Core
      • Simplifications
      • Restrictions
      • Dropped Constructs
      • Changed Constructs
      • New Constructs
      • Metaprogramming
  • Scala 3 Syntax Basics
    • New Control Syntax
      • if
      • while
      • for
    • Creator Applications
      • Optional New
    • Indentation-Sensitive Style
      • Optional Braces
    • Type-Level Wildcards
  • New Implicit Syntax
    • Context Abstractions
  • Functional Type System Improvements
    • Enumerations
    • Opaque Types
    • Intersection and Union Types
    • Dependent Function Types
    • Polymorphic Function Types
    • Type Lambdas
    • Match Types
  • OOP Type System Improvements
    • Trait Parameters
    • Open Classes
    • Transparent Traits
    • Export Clauses
    • Explicit Nulls
    • Metaprogramming
    • Inline Constants and Methods
    • Compile-Time Operations
    • Quoted Code Blocks
    • Reflection
  • Metaprogramming
    • Inline Constants and Methods
    • Compile-Time Operations
    • Quoted Code Blocks
    • Reflection

Please Contact Your ROI Representative to Discuss Course Tailoring!