代码之家  ›  专栏  ›  技术社区  ›  jjmerelo

“需要”的定义在哪里?

  •  6
  • jjmerelo  · 技术社区  · 6 年前

    Rakudo source 实施 require

    我抬起头来 sub require 它回来了 this hit ,这实际上似乎是require的来源,但它被称为 sub REQUIRE_IMPORT . 它回来了 Nil 要求 ? 它真的是该功能的实现吗?还有其他一些函数是这样声明的吗?

    1 回复  |  直到 6 年前
        1
  •  7
  •   Jonathan Worthington    6 年前

    require 不是一个子控件,而是一个语句控件(所以,在同一类别的东西中,比如 use , if , for 是的 parsed by the Perl 6 grammar 还有一些不同的案例是可以接受的。它是 compiled in the Perl 6 actions

    大部分工作都委托给了各个部门 CompUnit 使用 / need . 它还必须处理 要求 REQUIRE_IMPORT 实用工具sub也与运行时符号导入有关。

    您的问题的答案,即它将评估为什么,将在方法的末尾给出:

        $past.push($<module_name>
                   ?? self.make_indirect_lookup($longname.components())
                   !! $<file>.ast);
    

    • 如果它是一个 require Some::Module Some::Module
    • 如果它是一个 require $file
    推荐文章