mixins - 为混合角色的属性赋值
问题描述
我正在尝试使用Enumeration
Perl 6 中的角色的示例(作为修复文档问题的一部分,未记录枚举角色)。我想出了这个简单的例子:
class DNA does Enumeration {
my $DNAindex = 0;
my %pairings = %( A => "T",
T => "A",
C => "G",
G => "T" );
method new( $base-pair where "A" | "C" | "G" | "T" ) {
self.bless( key => $base-pair,
value => %pairings{$base-pair},
index => 33);
}
multi method gist(::?CLASS:D:) {
return "$!key -> $!value with $!index";
}
}
for <A C G T>.roll( 16 ) -> $letter {
my DNA $base = DNA.new( $letter );
say "Pairs ", $base.pair, " with ", $base.gist;
}
从理论上讲,Enumeration
has
$!index
我index => 33
尝试为它分配一个值;但是,它返回的只是
Pairs T => A with T -> A with 0
直接为 $!index 分配值的任何其他方式,我得到“无法分配给我在另一个问题中得到的不可变值。根据其中一个答案,这可能是一个错误;在这种情况下,我会想知道是否有一些解决方法。
解决方案
这是一个错误无法从消费类更改本机角色属性(与您链接的答案中提到的无关)。
我不知道解决方法。
推荐阅读
- java - 基于 Java 中的标头写入 csv/excel
- html - 为什么
html 的标签不是分段内容,而是 - javascript - 如何在jquery上总计两个不同的下拉选择
- python - 应用于形状张量的 IShuffleLayer 必须具有 0 或 1 个重塑尺寸:尺寸为 [1,4]
- python - 向合并的数据框添加子索引
- ios - 只调用一次长按按钮动作而不是快速射击
- javascript - 由于路径为空,如何修改我的代码以防止应用程序崩溃
- caching - 指令是如何以及在哪里缓存的?
- c# - 如何压缩目录然后返回结果字节数组,而不在磁盘上物理创建 zip 文件?
- jquery - 如何使用 npm 从 svelte 使用 jquery 和数据表