2012-02-25 55 views
9

Tôi đang xem tài liệu hướng dẫn Ruby, và tôi tự hỏi nếu mọi thứ là một đối tượng thì 'từ khoá' là các đối tượng, đúng không? Và nếu có, chúng được định nghĩa bằng ruby ​​ở đâu?Từ khóa được định nghĩa trong Ruby ở đâu?

Trang sau hoàn toàn nhầm lẫn với tôi khiến nó hiển thị đối tượng với tất cả các từ khóa trong đó, tuy nhiên đây không phải là đối tượng chính thức được sử dụng bởi tất cả các lớp, được trộn lẫn bằng cách nào đó từ một lớp khác không ??

http://ruby-doc.org/docs/keywords/1.9/Object.html

Tôi đoán có rất nhiều câu hỏi trên, một trong những chính là: làm thế nào để từ khóa ruby ​​ruby ​​nhận được vào?

+1

Nếu bạn chọn "mọi thứ là đối tượng" theo nghĩa đó, thì điều đó không đúng. Từ khóa không phải là đối tượng. Và một thứ khác không phải là một đối tượng mà tôi đã nhầm lẫn lúc đầu là một khối. Khối không phải là đối tượng. – sawa

Trả lời

20

Từ khóa không phải là đối tượng nhưng được xác định trong trình phân tích cú pháp có thể được tìm thấy trong parse.y trong nguồn Ruby. Dưới đây là phần có liên quan từ tập tin đó:

reswords : keyword__LINE__ | keyword__FILE__ | keyword__ENCODING__ 
     | keyword_BEGIN | keyword_END 
     | keyword_alias | keyword_and | keyword_begin 
     | keyword_break | keyword_case | keyword_class | keyword_def 
     | keyword_defined | keyword_do | keyword_else | keyword_elsif 
     | keyword_end | keyword_ensure | keyword_false 
     | keyword_for | keyword_in | keyword_module | keyword_next 
     | keyword_nil | keyword_not | keyword_or | keyword_redo 
     | keyword_rescue | keyword_retry | keyword_return | keyword_self 
     | keyword_super | keyword_then | keyword_true | keyword_undef 
     | keyword_when | keyword_yield | keyword_if | keyword_unless 
     | keyword_while | keyword_until 
     ; 

Nếu bạn muốn biết thêm về phân tích cú pháp Ruby, nhìn vào việc trình bày Hacking parse.y từ RubyConf 2009 hoặc Parse.y famtour từ Ruby Kaigi 2011.

Ngoài ra, rất nhiều các phương thức có sẵn ở mọi nơi (ví dụ: puts) được xác định trong mô-đun Kernel.

CHỈNH SỬA: Cũng có một số list of key words in the documentation, cảm ơn @antinome vì đã chỉ ra điều đó.

+0

Cảm ơn thông tin tuyệt vời ... lol ... bài thuyết trình hay từ Ruby Kaigi 2011, tôi cần phải viết lên tiếng Nhật của mình. :) – Kamilski81

+0

Đối với những gì nó có giá trị, đây là nơi tài liệu ruby ​​liệt kê các từ khóa: https://github.com/ruby/ruby/blob/trunk/doc/keywords.rdoc – antinome

+0

@antinome Cảm ơn, bao gồm trong câu trả lời. :) –

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