Operators and Methods used in Scala
Scala provides a rich set of operators for its basic types.
Types of Operators in Scala:
There are mainly three types of Operators in Scala:
i. Arithmetic Operators: You can invoke arithmetic methods via infix operator notation for addition (+), subtraction (), multiplication (*), division (/), and the remainder (%), on any numeric type.
scala> 1.2 + 2.3 res6: Double = 3.5 scala> 3 1 res7: Int = 2 scala> 'b' 'a' res8: Int = 1 scala> 2L * 3L res9: Long = 6 scala> 11 / 4 res10: Int = 2 scala> 11 % 4 res11: Int = 3 scala> 11.0f / 4.0f res12: Float = 2.75 scala> 11.0 % 4.0 res13: Double = 3.0
ii. Relational and logical operators:
a. Relational operators: You can compare numeric types with relational methods greater than (>), less than (<), greater than or equal to (>=), and less than or equal to (<=), which yield a Boolean result. In addition, you can use the unary ‘!’ operator (the unary_! method) to invert a Boolean value. Example:
scala> 1 > 2 res16: Boolean = false scala> 1 < 2 res17: Boolean = true scala> 1.0 <= 1.0 res18: Boolean = true scala> 3.5f >= 3.6f res19: Boolean = false scala> 'a' >= 'A' res20: Boolean = true scala> val thisIsBoring = !true thisIsBoring: Boolean = false scala> !thisIsBoring res21: Boolean = true
b. Logical operators: The logical methods, logical-and (&&) and logical-or (||), take Boolean operands in infix notation and yield a Boolean result.
scala> val toBe = true toBe: Boolean = true scala> val question = toBe || !toBe question: Boolean = true scala> val paradox = toBe && !toBe paradox: Boolean = false
iii. Bitwise operators: Scala enables you to perform operations on individual bits of integer types with several bitwise methods. The bitwise methods are bitwise-and (&), bitwise-or (|), and bitwise-xor (ˆ).5 The unary bitwise complement operator (~, the method unary_~), inverts each bit in its operand.
scala> 1 & 2 res24: Int = 0 scala> 1 | 2 res25: Int = 3 scala> 1 ˆ 3 res26: Int = 2 scala> ~1 res27: Int = 2