A Struct is a convenient way to bundle a number of attributes together, using accessor methods, without having to write an explicit class.
The Struct class is a generator of specific classes, each one of which is defined to hold a set of variables and their accessors. In these examples, we’ll call the generated class “CustomerClass,” and we’ll show an example instance of that class as “CustomerInst.”
In the descriptions that follow, the parameter symbol refers to a symbol, which is either a quoted string or a Symbol (such as :name).
Struct serialization/deserialization
More Examples
Code
class User < Struct.new(:name, :age, :gender) end user = User.new("Matz", 43, "male")
Passing a block with methods
Code example
Google = Struct.new(:address) do def latitude -1 end def longitude -2 end def with_address "with #{address}" end end g = Google.new("Some Addres") puts g.address puts g.latitude puts g.longitude puts g.with_address
Result
# >> Some Addres # >> -1 # >> -2 # >> with Some Addres