gpt4 book ai didi

raku - 为什么 Rakudo 的 src/core/Int.pm 中的所有类都用 my 声明?

转载 作者:行者123 更新时间:2023-12-04 11:47:55 25 4
gpt4 key购买 nike

看着source for Int ,我看到所有的类都是用 my 声明的,我原以为这会使它们成为私有(private)的,并且在该文件之外不可用。但是,他们显然是。为什么他们需要这样声明?

my class Rat { ... }
my class X::Numeric::DivideByZero { ... }
my class X::NYI::BigInt { ... }

my class Int { ... }
my subset UInt of Int where {not .defined or $_ >= 0};

my class Int does Real { # declared in BOOTSTRAP

我认为 BOOTSTRAP 评论与它有关。在 Perl6/Metamodel/BOOTSTRAP.nqp有这样的行:
my stub Int metaclass Perl6::Metamodel::ClassHOW { ... };

最佳答案

Rakudo 的 src/core/ 中的文件目录不会编译为具有自己私有(private)文件级范围的单独模块,而是连接到单个文件中,例如 gen/moar/CORE.setting在构建过程中。

从语义上讲,这个“设置”(在其他语言中称为“前奏曲”)形成了一个隐含地围绕您的程序的外部词汇范围。

S02: Pseudo-packages 中描述了该设计。 ,并且该部分的部分内容已进入 official documentation .

关于raku - 为什么 Rakudo 的 src/core/Int.pm 中的所有类都用 my 声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44509676/

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