当前位置:  开发笔记 > 小程序 > 正文

找出容器是类还是对象

如何解决《找出容器是类还是对象》经验,为你挑选了1个好方法。

我很好奇语法是班级或单身,所以我创建了这个小程序来找出:

grammar Mini {
    token TOP { \*  \* }
    token word { \w+ }
}

proto sub is-class( | ) { * };
multi sub is-class( Grammar:D $g ) { return "Object" };
multi sub is-class( Grammar:U $g ) { return "Class" };

say is-class( Mini );

这使用多个调度来找出它,事实证明它Mini实际上是一个类.总的来说,有没有更短的方法来找到它?或者一种不需要知道包可能是实例的实际类的方法?



1> Christoph..:

您可以通过DEFINITE消除'实例'和'类'的歧义,即

Mini.DEFINITE ?? 'Object' !! 'Class'

更确切地说

Mini.DEFINITE ?? 'concrete object' !! 'type object'

应该做的伎俩.


.oO(或者,与`:D`和`:U`,'Mini.DEFINITE ??'确定实例'!!'通用概念'一致)
推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有