Struct trong Ruby
Có nhiều cấu trúc dữ liệu không nhất thiết tạo ra một lớp đầy đủ, trong các trường hợp đơn giản cấu trúc chỉ gồm vài thuộc tính thì có thể dùng Struct. Ví dụ định nghĩa một điểm có hai tọa độ (thuộc tính) là x và y thì có thể tạo nhanh chóng
# Tạo cấu trúc Point có hai thuộc tính x và y Point = Struct.new(:x, :y) # Tạo đối tượng từ cấu trúc diem1 = Point.new(1,2) diem2 = Point.new(3,4) # cấu trúc tự động có các setter/getter để truy cập thuộc tính puts diem2.y # 4
OStruct trong Ruby
OpenStruct còn gọi là OStruct là một thư viện của Ruby, nó giống Struct ngoại trừ không yêu cầu
định nghĩa trước các thuộc tính. OStruct cần nạp thư viện "ostruct"
bằng từ khóa
require
require 'ostruct' person = OpenStruct.new person.name = "John Smith" person.age = 70 person.pension = 300 puts person.name # -> "John Smith" puts person.age # -> 70 puts person.address # -> nil
Cũng có thể khởi tạo trước một số thuộc tính và truy cập các thuộc tính với []
khi tên thuộc tính là các Symbol
require 'ostruct' person = OpenStruct.new(name:'John Smith', 'age' => 70) person[:age] puts person.name
Lớp Math Ruby
Lớp này thuộc thư viện chuẩn của Ruby: Math, nó cung cấp các phương thức hăng số liên quan đến toán học như hằng số Pi, tính căn bậc 2 với sqrt, tính sin, cos ...
puts Math.sqrt(4)
Lớp Time Ruby
Lớp Time biểu thị về thời gian.
# Ngày - giờ hiện tại t = Time.now puts t # Lấy năm, tháng, ngày puts t.year puts t.month puts t.day # Tạo mới một đối tượng time t = Time.new(1988, 6, 10) # Lấy thứ puts t.wday # Lấy ngày trong năm puts t.yday