specmanで文字列のリストに参加するにはどうすればよいですか?
質問
印刷したいリストがあります:
foo: list of string;
foo
の要素を連結した文字列 bar
を作成します。 Perlでは:
$bar = join " ", @foo;
Specmanでこれを行う唯一の方法は、次のとおりです。
var bar: string = "";
for each in foo {
bar = appendf("%s %s", bar, it);
};
これは、 foo
の各要素の bar
を自分自身にコピーするため、パフォーマンスが非常に低いようです。これを行うより良い方法はありますか?
解決
これ専用の機能もあります:
str_join(list: list of string, separator: string) : string
help str_join
が詳細を提供すると確信しています。 str_match
、 str_split
などの便利な機能もあります。
追加のヒントとして、 e言語クイックリファレンスを自分で印刷する必要があるかもしれません。 http://www.cadence.com/Community/blogs /fv/archive/2009/06/19/send-us-suggestions-for-updating-the-e-specman-quick-reference-card.aspx 。
他のヒント
質問を書いているときに、 to_string()
メソッドに出くわしました。使用できます:
var bar: string = foo.to_string();
これはPerlと同等です:
$bar = join "\n", @foo;
スペースを使用する場合は、次を使用できます:
var bar: string = str_replace(foo.to_string(), "\n", " ");
所属していません StackOverflow