質問

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ワードを与えますされます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top