Was ist der Unterschied zwischen to_string () und as_a (string) in Specman?
-
13-09-2019 - |
Frage
In Specman ich eine Variable in einen String konvertieren kann entweder:
x.to_string();
oder
x.as_a(string);
Gibt es einen Unterschied zwischen den beiden? Wenn nicht, warum nicht bieten Specman beides?
Lösung
as_a()
können Sie den Ausdruck auf einen bestimmten Typ konvertieren, nicht nur Strings.
Dies sind einige Beispiele aus der docs
list_of_int.as_a(string)
list_of_byte.as_a(string)
string.as_a(list of int)
string.as_a(list of byte)
bool = string.as_a(bool) (Only TRUE and FALSE can be converted to Boolean; all other strings return an error)
string = bool.as_a(string)
enum = string.as_a(enum)
string = enum.as_a(string)
UPDATE:
mit as_a(string)
und to_string()
nicht immer geben die gleichen Ergebnisse.
var s: string;
s = "hello";
var lint: list of int;
lint = s.as_a(list of int);
print lint;
print lint.as_a(string);
print lint.to_string();
Dies wird in etwa so drucken:
lint =
104
101
108
108
111
lint.as_a(string) = "hello"
list.to_string() = "104 101 108 108 111"
Das ist, weil to_string
auf jedes Element der Liste ausgeführt wird, und dann wird die Liste mit Leerzeichen verkettet werden, as_a
wird jedoch ganze Zahlen Zeichen konvertieren und verketten sie, können Sie das hello
Wort zu geben.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow