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

perl6 – 我可以转发声明我将在后面定义的Perl 6类吗?

发布时间:2020-12-15 22:07:04 所属栏目:大数据 来源:网络整理
导读:我是否可以转发声明一个我想要加载的类,并在以后使用而不插入其名称?我正在尝试这样的事情: my class Digest::MD5 {};require ::('Digest::MD5');put Digest::MD.new.md5_hex("My awesome data to hash"); 我知道我可以用插值来做,但我希望跳过这一步: re
我是否可以转发声明一个我想要加载的类,并在以后使用而不插入其名称?我正在尝试这样的事情:
my class Digest::MD5 {};
require ::('Digest::MD5');
put Digest::MD.new.md5_hex("My awesome data to hash");

我知道我可以用插值来做,但我希望跳过这一步:

require ::('Digest::MD5');
put ::('Digest::MD5').new.md5_hex("My awesome data to hash");

我以为我在某些核心课程中看到过这样的东西,但也许他们还有额外的东西在继续.

解决方法

分裂问题:

>我可以转发申报课程吗?

是的但是实现必须在同一个源文件中.
(Rakudo源文件在编译之前加入到同一个文件中)
毕竟,它必须知道你声明的具有相同短名称的哪个类.

class Foo {...}
class Foo {
}

>一个类可以懒得加载,而不必使用::(‘Digest :: MD5’)来访问它?

是的,require的返回值是类

put (require Digest::MD5).new.md5_hex("My awesome data to hash");

或者你可以使用这个:

sub term:<Digest::MD5> () { once require Digest::MD5 }

put Digest::MD5.new.md5_hex("My awesome data to hash");

(编辑:李大同)

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

    推荐文章
      热点阅读