specmanでto_stringに()とas_a(文字列)の違いは何ですか?
-
13-09-2019 - |
質問
Specmanでは、私はどちらか使用して文字列に変数を変換することができます:
x.to_string();
または
x.as_a(string);
2の間に違いはありますか?ない場合は、なぜSpecmanは両方を提供していますか?
解決
as_a()
を使用して、特定の種類だけでなく、文字列に式を変換することができます。
これらのいくつかの例は、ドキュメントの
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:
使用してas_a(string)
とto_string()
はない、常に同じ結果が得られます。
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();
これは、このようなものを出力します
lint =
104
101
108
108
111
lint.as_a(string) = "hello"
list.to_string() = "104 101 108 108 111"
to_string
は、リストの各要素に対して実行され、そのリストはスペースで連結されますので、これは、as_a
しかし文字に整数に変換し、それらを連結、あなたhello
ワードを与えますされます。
所属していません StackOverflow