2009-01-06 41 views
19

"Mọi thứ là một đối tượng" là một trong những điều đầu tiên tôi học về Ruby, nhưng trong số Bắt đầu từ Ruby: Từ Novice đến Professional, nó được nhắc đến là " gần như mọi thứ trong Ruby là một đối tượng ".Ví dụ về 'Những thứ' không phải là Đối tượng trong Ruby

Bạn có thể cho tôi một số ví dụ về điều không phải là đối tượng trong Ruby không?

Trả lời

13

Điều rõ ràng nhất nhảy vào đầu tôi sẽ là khối. Các khối có thể dễ dàng được sửa đổi thành đối tượng Proc, bằng cách sử dụng biểu mẫu tham số &block trong danh sách tham số hoặc bằng cách sử dụng cú pháp "01abanna lambda" lambda, proc, Proc.new hoặc (trong Ruby 1.9). Nhưng một mình, chúng không phải là đồ vật.

Ví dụ khác là toán tử.

+0

gì về các thông số được sử dụng trong một hàm ?? .. Ex trong Hash [1,2,3,4] là 1,2,3,4 đối tượng? – vireshas

+1

Vâng, họ là người Fixnums theo nghĩa đen. – hdgarrood

+0

Nhà điều hành cũng là đối tượng. Chúng là các phương thức đối tượng (cũng là các đối tượng). Hãy thử '5.method (: +). Is_a? (Object)' –

4
  1. nếu
  2. khác
  3. {
  4. }

cấu trúc ngôn ngữ tổng quát, vv ...

Tôi nghĩ khác (bao gồm cả phương pháp) khá nhiều tất cả mọi thứ là những đối tượng .

+0

lưu ý rằng đặt và in đang thực sự phản đối phương pháp – Kunok

1

Sau khi chia tập lệnh thành các mã thông báo có ý nghĩa bởi từ vựng, mọi thứ đều là một đối tượng. Bao gồm cả các lớp học. Ngay cả các hằng số theo nghĩa đen như 1 là các đối tượng. Một số đối tượng có thể có cú pháp không hoàn toàn là OO (nghĩa là đường cú pháp) nhưng chủ yếu là để thao tác dễ dàng hơn bất kỳ thứ gì. Khối không phải là đối tượng nghiêm ngặt mặc dù (nhưng có thể như ai đó nói được chuyển đổi thành một).

0

Trong trường hợp chuyển nhượng biến, tức là product = 5 * 5 biến không phải là một đối tượng ... để thêm rằng vào danh sách

Các vấn đề liên quan