Scala 3: A Look at its Improved Syntax

person using silver macbook pro
Reading Time: 3 minutes

Scala 3 is a remodel/refit for the scala language. It attracts developers due to its improved features such as simpler syntax, better type inference, improved error messages, and enhanced support for functional programming. In this article, we will compare the syntactical enhancement of Scala 2 & Scala 3. How indentation will help developers to write code efficiently and effortlessly.

Control Structures

Scala 3 has a simplified syntax for language constructs such as if/else, match expressions, and for comprehensions, making it easier for developers to write code and understand the flow of the program.

if expressions

  • Single line if expression
    In scala 2 we had to use the parenthesis at the start and end of the if condition whereas in Scala 3 we can skip the parenthesis and use the then keyword after the if condition.
  • Multiple lines if expression
    In scala 2 we had to use the braces to let the compiler know the start and end of the if-else block if it is a multi-line block but it is not the case in scala 3 we can omit the braces and use white spaces/tab at the start of each line the if-else block.

for expressions

When we use for expressions we add the implementation within the braces after the for keyword and then yield in scala 2 but what we can do in scala 3 is we can remove the braces after the for keyword and add all the implementation in it with proper white space/tabs indentation at the start of each statement and then yield.

match expressions

match expressions in Scala which is similar to the Switch statement in Java. In scala 2 we have to add braces after the match keyword and then add all the cases for which we had to match the expression within the braces. In scala 3 the use of these braces has been removed, the only thing we have to keep in mind is the proper indentation using the white spaces/ tab.

_, + and – as type parameter

Earlier in scala 2, we were able to use _ as the type parameter but the scala 3 compiler does not permit this pattern anymore instead we have to replace the _ with a proper identifier which will not break the binary compatibility. Similarly, we can no more use the + and – as well as they have been reserved for variance annotation.


These improvements in Scala 3’s syntax are aimed at making the language more accessible to developers, reducing the time and effort required to write code, and making it easier to write maintainable and scalable applications. Overall, Scala 3 is a major step forward for the language and is sure to be a popular choice for developers in the future.

1 thought on “Scala 3: A Look at its Improved Syntax2 min read

Comments are closed.