我正在查看Ruby文档,我想知道如果一切都是对象,那么'关键字'也是对象,对吗?如果是这样,他们在红宝石中定义了什么?
下面的页面完全混淆了我导致它显示了包含所有关键字的对象,但是这不是所有类使用的官方Object,这是不是从不同的类中混合了?
http://ruby-doc.org/docs/keywords/1.9/Object.html
我猜上面有很多问题,主要的问题是:ruby关键字如何进入ruby?
Mic*_*ohl 23
关键字不是对象,而是在解析器中定义,可以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
;
Run Code Online (Sandbox Code Playgroud)
如果您想了解有关Ruby解析器的更多信息,请查看来自RubyConf 2009的Hacking parse.y或来自Ruby Kaigi 2011的Parse.y famtour的演示文稿.
此外,puts
在内核模块中定义了许多可用的方法(例如).
编辑:文档中还有一个关键词列表,感谢@antinome指出这一点.
归档时间: |
|
查看次数: |
3471 次 |
最近记录: |