Tôi khá mới với Ruby, và cho đến nay, tìm cách sử dụng "binding" objects là một trong những điểm đau lớn nhất đối với tôi. Nếu tôi đọc tài liệu chính xác, chúng gần như hoàn toàn mờ đục. Để truy cập phạm vi bên trong đối tượng liên kết, bạn phải có một chuỗi mã Ruby và eval nó bằng cách sử dụng ràng buộc.Is 'eval' là cách duy nhất để tương tác với các đối tượng liên kết trong Ruby?
Có lẽ tôi chỉ là một người thuần túy từ một trường khác, nhưng tôi bị dị ứng với các cấu trúc 'eval' dựa trên chuỗi, nói chung. Có cách nào để thực hiện bất kỳ điều nào sau đây, an toàn và trong trường hợp chung, được đưa ra một đối tượng ràng buộc:
- Liệt kê các định danh trong phạm vi liên kết thể hiện hoặc truy lục hàm băm.
- Đặt giá trị của biến cục bộ trong liên kết bằng với biến số cục bộ trong ngữ cảnh bên ngoài. Lý tưởng nhất, điều này sẽ làm việc nói chung, ngay cả khi giá trị là một tham chiếu đối tượng, xử lý tệp hoặc một số thực thể phức tạp khác.
- (phần mở rộng 2 :) Cho một băm, đặt người dân địa phương trong ràng buộc cho mỗi mục nhập.
- Tốt hơn, với một băm xây dựng một ràng buộc với chỉ cấu trúc ngôn ngữ cơ bản và tên trong băm trong phạm vi.
Về cơ bản, tôi muốn biết cái nào trong số đó là có thể và cách thực hiện cái nào. Tôi tưởng tượng rằng các giải pháp cho mỗi giải pháp sẽ liên quan chặt chẽ, đó là lý do tại sao tôi đưa tất cả điều này vào một câu hỏi duy nhất.
Ngoài ra, có cách nào để đánh giá mã đã được phân tích cú pháp trong ngữ cảnh ràng buộc, tương tự cú pháp eval BLOCK của Perl không?
câu hỏi này cần thêm @ Jörg W Mittag: P –