2


0

Specmanでは、次のどちらかを使って変数を文字列に変換できます。

x.to_string();

または

x.as_a(文字列);

両者に違いはありますか? そうでない場合、なぜSpecmanは両方を提供しますか?

1 Answer


2


`as_a()`は式を文字列だけでなく特定の型に変換することを可能にします。

これらは docsからのいくつかの例です。

list_of_int.as_a(文字列)list_of_byte.as_a(文字列)string.as_a(intのリスト)string.as_a(バイトのリスト)bool = string.as_a(bool)(TRUEおよびFALSEのみブール値に変換でき、その他すべての文字列)エラーを返す)string = bool.as_a(string)enum = string.as_a(enum)string = enum.as_a(string)

更新:

as_a(string)とto_string()を使用しても、必ずしも同じ結果になるわけではありません。

var s:文字列。 s = "こんにちは"; var lint:intのリスト。 lint = s.as_a(intのリスト);糸くずを印刷します。 lint.as_a(文字列)を印刷します。 lint.to_string()を印刷してください。

これは次のように表示されます。

lint = 104 101 108 108 111 lint.as_a(文字列)= "こんにちは" list.to_string()= "104 101 108 108 111"

これは、リストの各要素に対してto_stringが実行され、その後リストがスペースで連結されるためです。しかし、as_aは整数を文字に変換して連結し、helloという単語を与えます。