$?CLASS 和 ::?CLASS 有什么区别

cod*_*ons 8 compile-time-constant rakudo compile-time raku

Raku 文档将其描述 ::?CLASS为一个编译时变量,用于回答“我属于哪个类?”。然后,在几段之后,它提到$?CLASS,并说它回答了“我在哪个班级?(作为变量)”。

\n

这两个变量有什么区别?它们通常似乎包含相同的值 \xe2\x80\x93 他们总是吗?还是有我没有观察到的差异?

\n

rai*_*iph 8

这两种形式的编译时变量在语法上是不同的。

语法形式::?foo可以用作,并将被评估为:

  • 一个术语(就像变量一样$?foo)。

  • 类型约束(与诸如 之类的变量不同$?foo)。