2015-11-18 86 views

回答

4

与变量一样,my以词汇形式绑定名称,而our另外在周围的包中创建条目。

module M { 
    our class Foo {} 
    class Bar {} # same as above, really 
    my class Baz {} 
} 

say M::Foo; # ok 
say M::Bar; # still ok 
say M::Baz; # BOOM! 

对模块内部的类使用my。您当然可以通过标记is export来使这些本地符号可用于导入代码。

+1

那么角色Rational是公共的还是导出的呢? https://github.com/rakudo/rakudo/blob/ffc5dfdf6c53eaf15a543a88fd797f0a94da6339/src/core/Rational.pm – teodozjan

+3

@teodozjan:它不需要公开或导出,因为它是'设置'的一部分。你编写的所有代码隐含地被包含诸如“Rational”之类的核心构建的外部词法范围包围 – Christoph