Nếu tôi có lớp học này:Có cách nào để khởi tạo một đối tượng thông qua một băm?
class A
attr_accessor :b,:c,:d
end
và mã này:
a = A.new
h = {"b"=>10,"c"=>20,"d"=>30}
là nó có thể khởi tạo các đối tượng trực tiếp từ băm, mà không có tôi cần phải đi qua từng cặp và gọi instance_variable_set
? Một cái gì đó như:
a = A.new(h)
nên biến mỗi biến thể hiện thành biến có cùng tên trong mã băm.
+1. BTW, bạn có thể muốn xem xét sử dụng 'public_send' thay vì' send' để tránh gọi các nhà văn thuộc tính riêng :) – epidemian
+1 cho đá quý constructor –