Sigilless class属性

问题描述 投票:1回答:1

尽管您实际上可以itemize任何类型的数据结构以使其适合标量变量,但无信号变量可能具有某些内在值,因为它们实际上是shapeless,可用作类属性。但是,似乎没有办法这样做,has \.a不起作用,has .\a也不起作用。 has $!a可能涵盖了我们可以使用无sigil变量实现的大部分功能,但是是否存在将它们用作属性的实际方法?

object syntax raku
1个回答
0
投票
目前没有办法拥有无印记属性。据我所知,目前还没有积极考虑将其包含在将来的Raku版本中。要提出的最明显的设计考虑因素是:

    my \foo = ...的语义是单个静态分配。很明显,这在词汇范围内的符号上意味着什么。还不清楚在类声明中这意味着什么,以及它如何与实例化工作流交互。例如,在:$!foo / BUILD中没有等效的TWEAK签名语法。
  1. 使用扁桃腺意味着它跟随着印记。取决于上下文,没有它们的分支可能是歧义的。此外,仅出于声明我们希望无sigil属性获取访问器的目的而允许.情况是奇怪的。
  2. 这违反了您始终可以通过查找! twigil来找到对实例状态的访问的规则,这很遗憾。
© www.soinside.com 2019 - 2024. All rights reserved.