加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Ruby中如何实现__LINE__和__FILE__常量?

发布时间:2020-12-16 22:18:39 所属栏目:百科 来源:网络整理
导读:似乎__FILE__和__LINE__常量被动态更新,正在执行当前的文件和行号,我想知道 Ruby中的行为是如何实现的? 我已经对源代码进行了修改,但是__LINE__和__FILE__出现的噪音太大了,我想知道任何人都可以帮助我指出源代码,并提供一个线索去了解它的行为. 在Rubinis
似乎__FILE__和__LINE__常量被动态更新,正在执行当前的文件和行号,我想知道 Ruby中的行为是如何实现的?

我已经对源代码进行了修改,但是__LINE__和__FILE__出现的噪音太大了,我想知道任何人都可以帮助我指出源代码,并提供一个线索去了解它的行为.

在Rubinis或MRI中的解释将会很好.

解决方法

__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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读