Struct
is a collection of attributes with accessor methods,
without having to write the class explicitly.
A Struct
class generates a new subclass that contains a set of members and their values.
For each member, a reader and writer method is created similar to #attr_accessor
.
> Vehicle = Struct.new(:make, :model)
> Vehicle.superclass
=> Struct
> Vehicle.ancestors
=> [Vehicle, Struct, Enumerable, Object, Kernel, BasicObject]
Since Struct
is bundled with Enumerable
module,
we can take advantage of methods like #filter
, #count
, #include?
, #uniq
, #tally
etc.
Example
> Vehicle = Struct.new(:make, :model)
> Vehicle["Dodge", "Hellcat"]
=> #<struct Vehicle make="Dodge", model="Hellcat">
> bike = Vehicle.new("Triumph", "Daytona")
> bike
=> #<struct Vehicle make="Triumph", model="Daytona">
> bike.make = "Yamaha"
> bike["model"] = "R1"
> bike
=> #<struct Vehicle make="Yamaha", model="R1">
Follow the link for complete article https://www.sandipmane.dev/struct-class-in-ruby
Top comments (0)