2009-04-05 16 views
7

Có cách nào tôi có thể tìm thấy tất cả các biến trong Ruby bắt đầu bằng một chuỗi cụ thể không? Ví dụ, tôi đã biến sau trong chương trình ruby ​​của tôi:Có cách nào để lấy tất cả các biến trong Ruby không?

ret_d = 1 
ret_d2 = 23 

Có một chức năng mà sẽ trở lại ["ret_d","ret_d2"]? Vấn đề là tôi không có tập hợp tất cả các biến.

Trả lời

15

Kernel#local_variables nên thực hiện thủ thuật.

>> ret_d = 1 
=> 1 
>> ret_d2 = 23 
=> 23 
>> local_variables 
=> ["_", "ret_d", "ret_d2"] 
>> local_variables.select{|v|v=~/^ret_/} 
=> ["ret_d", "ret_d2"] 
5

Nếu là các biến cục bộ, bạn có thể sử dụng local_variables. Tuy nhiên, điều này nghe giống như một mảng của người nghèo. Bạn có thể xem xét sử dụng một mảng thực tế.

+0

Tuyệt vời. Cảm ơn. –

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