Как я могу присоединиться к списку строк в specman?

StackOverflow https://stackoverflow.com/questions/1026012

  •  06-07-2019
  •  | 
  •  

Вопрос

У меня есть список, который я хочу напечатать:

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", " ");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top