2011-06-30 31 views

Trả lời

8

Trong trường hợp của bạn cả bar_privatebar_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 ;-)

+3

+1 cho * "Chỉ cần thử!" * =) –

+0

@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. –

+2

@mu '% s/Lập trình/Thiết kế' - Lập trình là * tất cả về * thử nghiệm. – Jeremy

4

Nếu bạn tìm thấy nó lạ mà private đang ảnh hưởng đến cả hai bar_privatebar_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