Specman 具有对apply()
列表的所有元素执行相同操作的方法:
var a: list of int;
a = somefunction.that.returns.list.of.int();
var b:= a.apply(it * 2);
与哪里apply()
相同:
for each in a {
b.add(it.*2);
};
现在,如果我想在 的元素上调用方法,只要该方法返回一个值a
,我就可以使用。apply()
但是,如果我有:
struct bar {
x: int;
foo() is {
message(LOW, "x is ", x);
};
};
我试着做:
var a: list of bar;
a = somefunction.that.returns.list.of.bar();
a.apply(it.foo());
它不会编译,因为foo()
返回void
. 相反,我必须使用显式循环:
for each in a {
it.foo();
};
Specman 中是否有类似于apply()
不需要返回值的方法?