好像是 __FILE__
和 __LINE__
使用正在执行的当前文件和行号动态更新常量,我想知道如何在Ruby中实现该行为?
我已经对源代码进行了比较,但是噪音太多了 __LINE__
和 __FILE__
外观,我很奇怪任何人都可以帮助我指出源代码并提供了解其行为的线索。
两种解释 Rubinis
要么 MRI
会没事的。
好像是 __FILE__
和 __LINE__
使用正在执行的当前文件和行号动态更新常量,我想知道如何在Ruby中实现该行为?
我已经对源代码进行了比较,但是噪音太多了 __LINE__
和 __FILE__
外观,我很奇怪任何人都可以帮助我指出源代码并提供了解其行为的线索。
两种解释 Rubinis
要么 MRI
会没事的。
都 __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));
换句话说,它们的行为就像您自己输入结果字符串或数字一样。
请注意 __LINE__
, 这个 并不总是表现出你的期望。