Can you explain the concept of immutability in Scala and provide a practical example?

1 Answers
Answered by suresh

Understanding Immutability in Scala

Immutability in Scala refers to the property of objects whose state cannot be modified once they are created. This means that once a value is assigned to a variable, it cannot be changed. This concept is important in functional programming because it helps in creating pure functions and avoiding side effects.

Practical Example of Immutability in Scala

Let's consider a simple example of immutability in Scala. Suppose we have a class Person with immutability in mind:

```scala
class Person(val name: String, val age: Int) {
// This class is immutable as the name and age parameters are declared as 'val'

def birthday(): Person = {
new Person(name, age + 1)
}
}

val john = new Person("John", 30)
val johnsNextYearAge = john.birthday().age

println(s"${john.name} will turn ${johnsNextYearAge} next year")
```

In this example, once an instance of the Person class is created, its state (name and age) cannot be changed directly. To modify the age, a new Person object is created representing the updated state while keeping the original object immutable.

By following the concept of immutability, we ensure that the code is more predictable, easier to reason about, and less prone to bugs related to mutable state manipulation.

Answer for Question: Can you explain the concept of immutability in Scala and provide a practical example?