相关疑难解决方法(0)

使用特征应用代理

我想为一个属性赋予特征,以为其提供代理,以便即使$!direct-access在一个类中也可以操纵所见内容的值。

这就是我现在所拥有的,但是正如您所看到的,从未调用过实际的get / set或store / fetch方法。我可能没有正确地应用它们,但是我发现的唯一示例似乎有大量额外的代码,它们的工作方式超出了我的需要,但我无法隔离重要的部分。

# The below shows on a Str more or less how I'd expect things to work
# although the %data wouldn't be hard coded of course

my Str $localized := do {
  my %data = hi => "hola", bye => "adiós";
  my $str  = "";
  Proxy.new:
    :STORE{ $str = @_[1] },
    :FETCH{ with %data{$str} { $_ } else { $str } }
}

$localized = "hi";
say $localized;
$localized = "bye";
say …
Run Code Online (Sandbox Code Playgroud)

perl6 raku

7
推荐指数
1
解决办法
59
查看次数

性状中的混合角色显然不起作用

这个例子是采取roast,虽然它已经有8年了:

role doc { has $.doc is rw }

multi trait_mod:<is>(Variable $a, :$docced!) {
    $a does doc.new(doc => $docced);
}

my $dog is docced('barks');
say $dog.VAR;
Run Code Online (Sandbox Code Playgroud)

这将返回Any,而不会混入任何角色。尽管特质不会出错,但显然没有办法进入“ doc”部分。任何的想法?

traits perl6

5
推荐指数
1
解决办法
115
查看次数

标签 统计

perl6 ×2

raku ×1

traits ×1