Trong định nghĩa lớp Ruby, phạm vi của từ khóa tư nhân trong các tình huống sau là gì? hoặc trên bar_public_2?Phạm vi tư nhân, bảo vệ, và công chúng
5
A
Trả lời
8
Trong trường hợp của bạn cả bar_private
và bar_public_2
là riêng tư.
Đó là vì cả hai phương pháp đều "nằm trong phạm vi" của từ khóa private
.
> f = Foo.new
#<Foo:0xf1c770>
> Foo.new.bar_private
NoMethodError: private method 'bar_private' called for #<Foo:0xf1c770>
> Foo.new.bar_public_2
NoMethodError: private method 'bar_public_2' called for #<Foo:0xf1c770>
Dù bằng cách nào, cách tốt nhất để trả lời câu hỏi bạn là mở IRB và thử nó ra ;-)
4
Nếu bạn tìm thấy nó lạ mà private
đang ảnh hưởng đến cả hai bar_private
và bar_public_2
, sau đó thay vì sử dụng private
, sử dụng private :bar_private
sau khi xác định bar_private
.
Các vấn đề liên quan
- 1. Được bảo vệ và hủy riêng tư
- 2. biến riêng tư hoặc được bảo vệ?
- 3. Bảo vệ ứng dụng Android khỏi vi phạm bản quyền
- 4. chế độ hạt nhân và bảo vệ bộ nhớ
- 5. Lịch sử của các công cụ sửa đổi kiểm soát truy cập như công khai/riêng tư/được bảo vệ
- 6. Công khai, riêng tư và được bảo vệ trong lập trình hướng đối tượng là gì?
- 7. Các lớp C++ (công khai, riêng tư và được bảo vệ)
- 8. Khi nào chúng ta nên xem xét sử dụng riêng tư hoặc được bảo vệ?
- 9. Doxygen: ẩn phương pháp riêng tư/được bảo vệ ... và mẹo
- 10. Phạm vi các biến bên trong tuyên bố bảo vệ trường hợp của scala
- 11. Vi phạm Truy cập: Đã cố gắng đọc hoặc viết bộ nhớ được bảo vệ
- 12. respond_to? và phương pháp được bảo vệ
- 13. Khối Riêng tư/Được bảo vệ trong Ruby?
- 14. Làm thế nào để bảo vệ ứng dụng của tôi chống lại vi phạm bản quyền
- 15. C++ 11 phạm vi bảo vệ thoát, một ý tưởng tốt?
- 16. openssl RSA tư nhân và công cộng phím
- 17. Tạo tư nhân và khóa công khai OpenSSL
- 18. C++ - Constructor quá tải - tư nhân và công cộng
- 19. Tấn công DDOS: bảo vệ bằng Thread.Sleep()?
- 20. Trường hợp trong công tắc bảo vệ
- 21. Chấm dứt quy trình diệt vi-rút được bảo vệ
- 22. Đảm bảo đầu vào của các phương thức riêng tư/được bảo vệ?
- 23. Phạm vi phủ sóng/phạm vi bảo hiểm chi nhánh được đề xuất
- 24. #pragma có từng thêm nhân viên bảo vệ không?
- 25. Fluent NHibernate Bản đồ thuộc về trường tư nhân/được bảo vệ Không có tài sản lộ diện
- 26. Trong trường hợp nào chúng ta cần sự thừa kế được bảo vệ?
- 27. bảo vệ mã node.js
- 28. Đảm bảo phạm vi mã trong thử nghiệm đơn vị?
- 29. ghi đè nội bộ được bảo vệ bằng bảo vệ!
- 30. Bảo vệ nội dung công khai/trong ứng dụng Rails
+1 cho * "Chỉ cần thử!" * =) –
@Ed: "Chỉ cần thử nó" là một cách tuyệt vời để có được rối lên trong hành vi ngẫu nhiên và không xác định. Lập trình thông qua thử nghiệm thường là một ý tưởng tồi. –
@mu '% s/Lập trình/Thiết kế' - Lập trình là * tất cả về * thử nghiệm. – Jeremy