gpt4 book ai didi

ruby - __LINE__ 和 __FILE__ 常量在 Ruby 中是如何实现的?

转载 作者:数据小太阳 更新时间:2023-10-29 06:41:39 25 4
gpt4 key购买 nike

似乎 __FILE____LINE__ 常量会随着当前文件和正在执行的行号动态更新,我想知道 Ruby 中的行为是如何实现的?

源码我已经grep过了,但是__LINE____FILE__出现的杂音太多了,不知道有没有人能帮我指出源码并提供了解其行为的线索。

RubinisMRI 解释都可以。

最佳答案

__FILE____LINE__ 都被文字替换了 directly in the parser :

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__,此 doesn't always behave how you'd expect .

关于ruby - __LINE__ 和 __FILE__ 常量在 Ruby 中是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16626980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com