2009-06-22 2 views
0

У меня есть список, который я хочу, чтобы напечатать:Как я могу присоединиться к списку строк в 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. Есть ли лучший способ сделать это?

ответ

2

Существует также специальная функция для этого :

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.

+0

Я просмотрел это, но я, должно быть, пропустил его. Благодаря! –

0

При написании вопроса я наткнулся на метод to_string(). Я могу использовать:

var bar: string = foo.to_string(); 

Это эквивалент в Perl:

$bar = join "\n", @foo; 

Если я хочу использовать пробелы, я могу использовать:

var bar: string = str_replace(foo.to_string(), "\n", " ");