【发布时间】:2016-10-21 11:31:38
【问题描述】:
在 vala 中,== 比较字符串类型的内容。我想比较两个对象(包括字符串)引用,如 java 的obj == obj2。我找不到有关它的文档。
怎么做?
【问题讨论】:
-
我的问题是关于 Vala,而不是 Java。
-
字符串不是 Vala 中的对象,那么您尝试进行比较的上下文是什么?
标签: vala
在 vala 中,== 比较字符串类型的内容。我想比较两个对象(包括字符串)引用,如 java 的obj == obj2。我找不到有关它的文档。
怎么做?
【问题讨论】:
标签: vala
您可以访问底层字节数组以通过引用进行比较。
string a = "a";
unowned string b = a;
assert (a.data == b.data);
更一般地说,比较引用是不相关的,因为字符串只能有一个所有者。如果您对 string 对象有两个强引用,则它们肯定是不同的。
这就是为什么b 被分配了来自a 的弱引用,否则会被复制。
【讨论】: