2010-03-31 74 views

Trả lời

27

Bạn có thể làm điều này:

arrayObject = Object::const_get('Array').new 
+0

Tuyệt! Cảm ơn rất nhiều! – vooD

15

Bạn cũng có thể sử dụng sau đây nếu bạn đang sử dụng Ruby on Rails:

array_object = "Array".constantize.new 
+0

Trông giống như giải pháp từ RoR. Cảm ơn bạn! – vooD

+3

Thật đáng để chỉ ra rằng 'constantize' là một phần mở rộng cốt lõi được thêm vào Ruby bởi mô-đun ActiveSupport của Rails, tức là nó không phải là Ruby thuần túy. –

+0

Điểm tốt John, tôi đã cập nhật câu trả lời của tôi. –

4

Nếu bạn có một lớp học, ví dụ như chuỗi :

a = String 
a.new("Geo") 

sẽ cung cấp cho bạn một chuỗi. Điều tương tự cũng áp dụng cho các lớp khác (số & loại tham số sẽ khác nhau).

+1

Trong khi điều này không trực tiếp trả lời câu hỏi, đó là điểm tốt vì lớp là đối tượng, bạn có thể lưu trữ chúng giống như bất kỳ đối tượng nào khác và đây có thể là cách tiếp cận tốt hơn trong nhiều trường hợp bạn muốn sử dụng chuỗi bằng ngôn ngữ khác. – Chuck

Các vấn đề liên quan