Specman hat die apply()
Methode void zurückzukehren die gleiche Aktion auf alle Elemente einer Liste auszuführen:„gelten()“ mit Methoden, die in Specman
var a: list of int;
a = somefunction.that.returns.list.of.int();
var b:= a.apply(it * 2);
Wo apply()
macht das gleiche wie:
for each in a {
b.add(it.*2);
};
Nun, wenn ich eine Methode auf die Elemente von a
nennen wollen, kann ich apply()
verwenden, solange die Methode einen Wert zurückgibt. Allerdings, wenn ich habe:
struct bar {
x: int;
foo() is {
message(LOW, "x is ", x);
};
};
Und ich versuche zu tun:
var a: list of bar;
a = somefunction.that.returns.list.of.bar();
a.apply(it.foo());
Es ist nicht kompilieren, weil foo()
kehrt void
. Stattdessen muss ich eine explizite Schleife verwenden:
for each in a {
it.foo();
};
Gibt es eine Methode in Specman ähnlich wie apply()
, die keinen Rückgabewert benötigt?