Quelle est la différence entre to_string () et as_a (string) dans specman?
-
13-09-2019 - |
Question
En Specman je peux convertir une variable en une chaîne en utilisant soit:
x.to_string();
ou
x.as_a(string);
Y at-il la différence entre les deux? Sinon, pourquoi ne Specman fournir à la fois?
La solution
as_a()
vous permet de convertir l'expression d'un type spécifique, non seulement la chaîne.
Ce sont quelques exemples de la 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)
MISE À JOUR:
à l'aide as_a(string)
et to_string()
ne donne toujours les mêmes résultats.
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();
Cela affichera quelque chose comme ceci:
lint =
104
101
108
108
111
lint.as_a(string) = "hello"
list.to_string() = "104 101 108 108 111"
En effet, to_string
se déroulera sur chaque élément de la liste et la liste sera concaténé avec des espaces, as_a
va cependant convertir les entiers en caractères et de les concaténer, vous donnant le mot de hello
.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow