Qual é a diferença entre to_string () e as_a (string) em Specman?
-
13-09-2019 - |
Pergunta
Em Specman posso converter uma variável para uma string usando:
x.to_string();
ou
x.as_a(string);
Existe alguma diferença entre os dois? Se não, por que Specman fornecer tanto?
Solução
as_a()
permite converter a expressão para um tipo específico, não só string.
Estes são alguns exemplos do 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:
usando as_a(string)
e to_string()
nem sempre dá os mesmos resultados.
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();
Isto irá imprimir algo como isto:
lint =
104
101
108
108
111
lint.as_a(string) = "hello"
list.to_string() = "104 101 108 108 111"
Isto porque to_string
será executado em cada elemento da lista e, em seguida, a lista será concatenado com espaços, as_a
vai, porém, converter inteiros de caracteres e concatenar-los, dando-lhe a palavra hello
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow