2009-04-02 14 views

Trả lời

31

Phương pháp có dấu chấm than ở cuối thường được gọi là phương pháp bang. Một phương pháp bang không nhất thiết phải sửa đổi người nhận của nó cũng như không có đảm bảo rằng các phương pháp mà không có dấu chấm than thì không.

Tất cả đều được giải thích rất rõ trong this blog post. Để báo giá bài đăng:

! trong các tên phương thức kết thúc bằng! có nghĩa là, "Phương pháp này nguy hiểm" —hoặc, chính xác hơn, phương pháp này là phiên bản "nguy hiểm" của phương pháp tương đương tương tự, có cùng tên trừ đi! “Nguy hiểm” là tương đối; số ! không có ý nghĩa gì trừ khi có tên là tên phương thức tương ứng với tên phương thức tương tự nhưng không có chữ cái.

Các! không có nghĩa là “Phương pháp này thay đổi bộ thu của nó.” Rất nhiều phương thức “nguy hiểm” thay đổi số của họ. Nhưng một số thì không. Tôi lặp lại: ! không có nghĩa là phương pháp thay đổi bộ thu của nó.

11

Phương thức downcase() không đơn giản trả về một đối tượng mới đại diện cho bạn chuỗi bị downcased.

Phiên bản bang sửa đổi chuỗi của bạn.

my_text = "MY TEXT" 
my_new_text = my_text.downcase 
puts my_new_text # will print out "my text" 
puts my_text  # will print out "MY TEXT" - the non-bang method doesn't touch it 

my_text.downcase! 

puts my_text # will print out "my text". The bang version has modified the object you're calling the method on 
Các vấn đề liên quan