Как я могу присоединиться к списку строк в specman?
Вопрос
У меня есть список, который я хочу напечатать:
foo: list of string;
Я хочу создать строку bar
, которая является объединением элементов foo
. В Perl я бы сделал:
$bar = join " ", @foo;
Единственный способ сделать это в specman - это
var bar: string = "";
for each in foo {
bar = appendf("%s %s", bar, it);
};
Похоже, что производительность будет очень плохой, потому что он копирует bar
на себя для каждого элемента в foo
. Есть ли лучший способ сделать это?
Решение
Для этого также есть специальная функция:
str_join(list: list of string, separator: string) : string
Я уверен, что help str_join
предоставит вам подробную информацию. Есть также другие полезные функции, такие как str_match
, str_split
, которые вам могут понравиться.
В качестве дополнительной подсказки, возможно, вам следует напечатать краткий справочник по e Language , см. 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", " ");