Specman 中的 to_string() 和 as_a(string) 有什么区别?

发布于 2024-08-05 17:54:45 字数 176 浏览 7 评论 0原文

在 Specman 中,我可以使用以下任一方法将变量转换为字符串:

x.to_string();

x.as_a(string);

两者之间有什么区别吗?如果没有,为什么 Specman 两者都提供?

In Specman I can convert a variable to a string using either:

x.to_string();

or

x.as_a(string);

Is there any difference between the two? If not, why does Specman provide both?

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

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

发布评论

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

评论(1

忱杏 2024-08-12 17:54:45

as_a() 允许您将表达式转换为特定类型,而不仅仅是字符串。

这些是 docs

list_of_int.as_a(string)
list_of_byte.as_a(string)
string.as_a(list of int)
string.as_a(list of byte)
bool = string.as_a(bool) (Only TRUE and FALSE can be converted to Boolean; all other strings return an error)
string = bool.as_a(string)
enum = string.as_a(enum)
string = enum.as_a(string) 

更新中的几个示例:

使用 as_a(string )to_string() 并不总是给出相同的结果。

var s: string;
s = "hello";
var lint: list of int;
lint = s.as_a(list of int);
print lint;
print lint.as_a(string);
print lint.to_string();

这将打印如下内容:

lint =
  104
  101
  108
  108
  111
lint.as_a(string) = "hello"
list.to_string() = "104 101 108 108 111"

这是因为 to_string 将在列表的每个元素上运行,然后列表将用空格连接,但是 as_a 会将整数转换为字符并将它们连接起来,为您提供 hello 单词。

as_a() allows you to convert the expression to a specific type, not only string.

These are few examples from the docs

list_of_int.as_a(string)
list_of_byte.as_a(string)
string.as_a(list of int)
string.as_a(list of byte)
bool = string.as_a(bool) (Only TRUE and FALSE can be converted to Boolean; all other strings return an error)
string = bool.as_a(string)
enum = string.as_a(enum)
string = enum.as_a(string) 

UPDATE:

using as_a(string) and to_string() not always gives the same results.

var s: string;
s = "hello";
var lint: list of int;
lint = s.as_a(list of int);
print lint;
print lint.as_a(string);
print lint.to_string();

This will print something like this:

lint =
  104
  101
  108
  108
  111
lint.as_a(string) = "hello"
list.to_string() = "104 101 108 108 111"

This is because to_string will run on each element of the list and then the list will be concatenated with spaces, as_a will however convert integers to characters and concatenate them, giving you the hello word.

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