【发布时间】:2020-08-10 11:43:01
【问题描述】:
这与我的另一个问题相似但不完全相同:Content checking some, not all, class attributes
我正在编写一个测试来验证处理对对象的影响。但是我不知道如何获取一组已知对象属性的值,而是使用相同的代码进行测试。类似于以下内容(不起作用):
class A { has $.a, has $.b, has $.c };
my A $v .=new(:1a, :2b);
for <a b> { ok $v.{$_} > 0 }; # this does not work, but illustrates the intent.
如果我使用哈希而不是对象,那么很容易从知道键的哈希中获取值。
目前我能想到的就是测试每个属性:
ok $v.a > 0;
ok $v.b > 0;
此外,我不想查看对象的所有属性,这是 .^attributes 给我的,只查看其中的一些。
【问题讨论】:
-
你可以让你的不工作的例子很简单地工作:
for <a b> { ok $v."$_"() > 0 };。那能解决你的问题吗?您还可以实现Associative角色以使您的示例按原样工作。
标签: class attributes raku