2012-02-25 16 views
9

私はRubyのドキュメントを見ていて、すべてがオブジェクトであれば「キーワード」もオブジェクトであると思っていますか?もしそうなら、それらはどこでルビーで定義されていますか?Rubyでキーワードはどこに定義されていますか?

次のページでは、すべてのキーワードを含むオブジェクトが表示されましたが、これはすべてのクラスで使用されている公式のオブジェクトではありませんでした。

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

私は上記の質問がたくさんあると思います、主なものは次のとおりです。ルビーキーワードはルビーに入手できますか?

+1

この意味で「すべてが対象」と考えると、それは真実ではありません。キーワードはオブジェクトではありません。そして私が最初に混乱させたものではない別のものはブロックです。ブロックはオブジェクトでもありません。 – sawa

答えて

20

キーワードはオブジェクトではなく、Rubyソースのparse.yにあるパーサーで定義されています。ここでは、そのファイルから該当部分です:あなたは、2011年

またルビーKaigiからRubyConf 2009またはParse.y famtourからプレゼンテーションHacking parse.yでの多くを見て、Rubyのパーサについての詳細をお知りになりたい場合は

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 
     ; 

どこでも利用可能な方法(例えば、puts)は、Kernelモジュールで定義されています。

EDIT:list of key words in the documentationもあります。ありがとうございました@antinomeを指摘してください。

+0

偉大な情報をありがとう...笑... Ruby Kaigi 2011からの素晴らしいプレゼンテーション、私は私の日本語を磨く必要があります。 :) – Kamilski81

+0

ここでは、Rubyのドキュメントにキーワードがリストされています:https://github.com/ruby/ruby/blob/trunk/doc/keywords.rdoc – antinome

+0

@antinomeありがとう、答えにそれを含めました。 :) –

関連する問題