看起来__FILE__和__LINE__常量是用正在执行的当前文件和行号动态更新的,我想知道Ruby中的行为是如何实现的?
我已经对源代码进行了嘲笑,但是有太多的噪音__LINE__和__FILE__外观,我很奇怪任何人都可以帮助我指出源代码并提供了解其行为的线索.
在任何一个Rubinis或MRI将是好的解释.
ham*_*mar 12
双方__FILE__并__LINE__得到替换文字直接在解析器:
case keyword__FILE__:
return NEW_STR(rb_external_str_new_with_enc(ruby_sourcefile, strlen(ruby_sourcefile),
rb_filesystem_encoding()));
case keyword__LINE__:
return NEW_LIT(INT2FIX(tokline));
Run Code Online (Sandbox Code Playgroud)
换句话说,它们的行为就像您自己键入结果字符串或数字一样.
请注意,因为__LINE__这并不总是表现出您的期望.
| 归档时间: |
|
| 查看次数: |
700 次 |
| 最近记录: |