for managing attributes
for managing values
to create a simple data class
to create a simple DTO (Data Transfer Object)
defines a set of attributes to hold values, and defines their accessor methods (getters and setters; readers and writers)

Person = Struct.new( :firstname, :lastname, :age )

person = Person.new( 'Tom', 'Sawyer', 11 )

person.firstname   # => Tom
person.lastname    # => Sawyer
person.age         # => 11

person.age = 12

person.age         # => 12
                   
person.class       # => Person
Person.superclass  # => Struct
person.inspect     # => #<struct firstname="Tom", lastname="Sawyer", age=12>

person.members     # => [:firstname, :lastname, :age]     # returns it's members (attributes) as an array
person.values      # => ["Tom", "Sawyer", 12]             # returns the values of it's attributes as an array