DEV Community

loading...

Immutable Object is Useful

chenge
Ruby, and learn Rust, Go, Elixir, Erlang...
・1 min read

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)