Operators & Expressions

== calls equals (value equality, null-safe).

6.1 Operators are methods

1 + 2        // same as 1.+(2)
"abc".contains("b")
"abc" contains "b"      // infix notation (Scala 3 prefers `infix` modifier for alphanumeric methods)

6.2 Operator table

= += -= *= /= (for vars and mutable collections) == calls equals (value equality, null-safe). eq checks reference identity.

6.3 Precedence (by first character, low → high)

all other special characters Operators ending in : are right-associative: 1:: 2:: Nil is Nil.::(2).::(1).

6.4 Everything is an expression

val max = if a > b then a else b
val result = {
  val x = 10
  val y = 20
  x + y            // last expression is the block's value
}