当前位置:  开发笔记 > 编程语言 > 正文

如何判断某个东西是否是Perl 6容器?

如何解决《如何判断某个东西是否是Perl6容器?》经验,为你挑选了0个好方法。

我没有任何有用的理由知道这一点,但我想知道我是否有一个名称$x,如果这是一个标量变量(可变的东西)或仅仅是某个东西的名称(不可变的东西).我不想做任何事; 这是好奇心.

我正在玩这样的事情:

my @a  = 'a', ('b', 'c' );
my @b  = 'd', 'e', 'f', @a;

my @ab = @a, @b, ( 1, 2 );

for @ab {
    put "name: {.^name} VAR: { .VAR.^name }";
    when .VAR.can('FETCH') { put "Container: $_" }
    when .VAR.can('STORE') { put "Container: $_" }
    when Scalar            { put "Scalar container: $_" }
    when Array             { put "Array Container: $_" }
    default                { put "Object: $_"    }
    }

我明白了:

name: Array VAR: Scalar
Array Container: a b c
name: Array VAR: Scalar
Array Container: d e f a b c
name: List VAR: Scalar
Object: 1 2

我可以看到我可以匹配类型Array类型匹配,但我认为检查某些东西可以FETCHSTORE将是正确的匹配.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有