DEV Community

chenge
chenge

Posted on

Immutable Object is Useful

From some talk videos I watched this style of code, Let's start with a simple example:

class Fish
  def initialize(age)
    @age = age
  end

  def say()
    "My age is #{@age}"
  end
end

fish = Fish.new(3)
fish.say() #=> My age is 3

This is called immutable or functional object. It's solid and cannot be broken after created.

Then how to change the age in sample?

class Fish
  #added
  def with_age(age)
    Fish.new(age)
  end
end

fish.with_age(5).say() #=>My age is 5

This code style is fun and useful. It'll reduce the change of object.

What's your idea?

Discussion (0)