Đó là lỗi hoặc lỗi của IRB. Nó được biết đến là do cách thức khá giả mạo IRb được thực hiện, nó không hoạt động đúng cho tất cả các trường hợp góc.
Các không tương thích có lẽ mọi người đều biết là trong Ruby, phương pháp quy định tại các cấp cao nhất trở thành private
phương pháp thể hiện của Object
, trong khi ở IRB, họ trở thành public
phương pháp thể hiện của Object
. Một khác biệt hành vi rõ ràng là trong IRb, require_relative
không hoạt động, bởi vì nó tìm kiếm liên quan đến tệp hiện tại, nhưng trong IRb, có là không có tệp hiện tại.
Ngoài ra còn có một số khác biệt về cú pháp được chấp nhận, tôi tin và điều gì đó cần làm với các biến cục bộ và khi nào chúng chính xác và không được xác định.
Vì vậy, không thể tưởng tượng rằng có thể có một số khác biệt về hành vi. Tinh lọc. Trong thực tế, bản thân tôi đã gặp phải thông báo lỗi đó, và chạy cùng một mã chính xác bên ngoài IRb, hoặc với ruby -e
, từ một tệp hoặc từ một REPL khác, luôn làm cho nó biến mất.
Nguồn
2016-01-06 06:43:08
Trông giống như một vấn đề về phiên bản, tôi nhận được '(irb): 2: cảnh báo: sàng lọc là thử nghiệm, và hành vi có thể thay đổi trong các phiên bản tương lai của Ruby! '. Tôi đang sử dụng 'irb 0.9.6 (09/06/30) 'và' ruby20' – hek2mgl
@ hek2mgl Tôi đang sử dụng phiên bản mới nhất của Ruby/IRB. Các sàng lọc không phải là thử nghiệm nữa; ngôn ngữ đó đã bị xóa khỏi tất cả các tài liệu. –
Nó trông giống như một lỗi trong irb với tôi. Nó hoạt động tốt với nâng lên. Ngoài ra thông báo lỗi không có ý nghĩa vì chúng tôi đang gọi bằng cách sử dụng chính xác ở cấp cao nhất. – Jesuspc