Struct là shorthand tạo class đơn giản với accessor cho từng field đã khai báo — tự động có initialize, getter/setter, ==, to_s, members.
ruby
Point = Struct.new(:x, :y)
p = Point.new(3, 4)
p.x # => 3
p == Point.new(3, 4) # => true (value equality)
p.to_s # => "#<struct Point x=3, y=4>"Struct còn nhận block để thêm custom method. Khi dùng Struct: value object đơn giản (toạ độ, khoảng thời gian, kết quả query), data transfer object không cần behavior phức tạp. Khi dùng class: kế thừa, logic phức tạp, cần kiểm soát visibility.
Ruby 3.2+ có Data.define cho immutable value object.