Qual è la differenza tra to_string () e as_a (stringa) in Specman?
-
13-09-2019 - |
Domanda
In Specman posso convertire una variabile in una stringa utilizzando:
x.to_string();
o
x.as_a(string);
C'è qualche differenza tra i due? Se no, perché non Specman fornisce sia?
Soluzione
as_a()
consente di convertire l'espressione di un tipo specifico, non solo stringa.
Questi sono alcuni esempi della 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:
utilizzando as_a(string)
e to_string()
non dà sempre gli stessi risultati.
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();
Questo stamperà qualcosa di simile:
lint =
104
101
108
108
111
lint.as_a(string) = "hello"
list.to_string() = "104 101 108 108 111"
Questo perché to_string
verrà eseguito su ogni elemento della lista e poi la lista sarà concatenato con gli spazi, as_a
sarà comunque convertire interi a personaggi e concatenare, dando la parola hello
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow