如何在specman中加入字符串列表?

发布于 2024-07-25 07:46:17 字数 431 浏览 6 评论 0原文

我有一个要打印的列表:

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. 有没有更好的方法来做到这一点?

I have a list that I want to print:

foo: list of string;

I want to create a string bar that is the concatenation of the elements of foo. In Perl I would do:

$bar = join " ", @foo;

The only way I can think of to do this in specman is:

var bar: string = "";
for each in foo {
    bar = appendf("%s %s", bar, it);
};

This seems like it would have very poor performance, because it copies bar onto itself for each element in foo. Is there any better way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

晚风撩人 2024-08-01 07:46:17

还有一个专用函数:

str_join(list: list of string, separator: string) : string

我确信 help str_join 会给您详细信息。 还有其他有用的函数,例如您可能会喜欢的 str_matchstr_split

作为附加提示,也许您应该自己打印电子语言快速参考,请参阅http://www.cadence.com/Community/blogs/fv/存档/2009/06/19/send-us-suggestions-for-updating-the-e-specman-quick-reference-card.aspx

There is also a dedicated function for this:

str_join(list: list of string, separator: string) : string

I'm sure help str_join will give you the details. There are also other useful functions like str_match, str_split which you may like.

As an additional hint, maybe you should print yourself the e Language Quick Reference, see http://www.cadence.com/Community/blogs/fv/archive/2009/06/19/send-us-suggestions-for-updating-the-e-specman-quick-reference-card.aspx.

幽蝶幻影 2024-08-01 07:46:17

在写问题时,我偶然发现了 to_string() 方法。 我可以使用:

var bar: string = foo.to_string();

这相当于 Perl 的:

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

如果我想使用空格,我可以使用:

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

While writing the question I stumbled across the to_string() method. I can use:

var bar: string = foo.to_string();

This is the equivalent of Perl's:

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

If I want to use spaces I can use:

var bar: string = str_replace(foo.to_string(), "\n", " ");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文