问题标签 [object-identity]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1083 浏览

c++ - [[no_unique_address]] 和两个相同类型的成员值

我在[[no_unique_address]]c++20

cppreference的示例中,我们有一个空类型Empty和类型Z

显然, 的大小Z必须至少2是因为类型e1e2是相同的。

但是,我真的很想拥有Zsize 1。这让我想到,Empty用额外的模板参数包装一些包装类怎么样,这些模板参数强制不同类型的e1and e2

不幸的是,sizeof(Z1)==2. 有没有一个技巧可以使 sizeZ1成为一个?

我正在测试这个gcc version 9.2.1clang version 9.0.0


在我的应用程序中,我有很多空类型的表单

ifT并且S也是空类型并且不同,这是一个空类型!我希望这种类型为空,即使TS是相同的类型。

0 投票
1 回答
711 浏览

json - 杰克逊结合 @JsonIdentityInfo 和 @JsonTypeInfo 抛出 InvalidTypeIdException

目前,当我结合@JsonIdentityInfo@JsonTypeInfo. 下面的 Kotlin 代码在最后一行抛出异常。它dog1AndDog1Json按预期将实例序列化为 Json,但随后在将其反序列化回实例时抛出异常。

然后我运行 main 函数,得到以下输出:

其次是这个例外:

似乎杰克逊希望animal2属性中的对象具有 @class 属性来找到要反序列化的正确类类型。但它已被@JsonIdentityInfo注释替换为 id。为什么 Jackson 不通过该 id 查找对象,然后检查该实例的 @class 属性?

我不确定杰克逊是否不支持这个用例,或者我做错了什么(我所希望的)。或者它可能是一个错误?

0 投票
2 回答
289 浏览

python - 在 Python 中,这个表达式“(a is b) == ( id(a) == id(b) )” 总是返回 True 吗?

在 Python 中,表达式(a is b) == ( id(a) == id(b) )似乎总是返回 True,其中ab是引用某个对象的变量,因为该id函数返回存储它们的内存并is用于对象标识。

有什么例外吗?

0 投票
1 回答
31 浏览

ios - 如何在我的工厂解析器中注册 2 个具有相同抽象接口的依赖项?

我有一个依赖容器,看起来像这样 -

我有一些服务注册如下:

但是,我想注册 2 个符合抽象类型的服务RemoteImageDataLoader

这显然不会起作用,因为第二个条目将替换services字典中的第一个条目。

我试图创建一个typealias来代替使用,但这不起作用。

在这种情况下如何注册第二个依赖项?

我想避免创建 2 个版本,RemoteImageDataLoader因为唯一的区别是注入的HTTPClient实例。

0 投票
1 回答
87 浏览

python - 尽管元组是不可变的,但它们以交互模式存储在不同的地址中。为什么?

上面的代码行在 Python 中的脚本模式下给出了相同的地址,但在交互模式下它输出不同的地址。任何人都可以解释这个原因吗?

0 投票
0 回答
138 浏览

c++ - has_unique_object_representations 和空子对象不一致

我玩弄了 C++20 的[[no_unique_address]]属性,并在将其与has_unique_object_representations类型特征一起使用时发现了一些有趣的行为:

只有最后一个断言在 GCC (trunk) 和 Clang (trunk) 中都失败了。据我所知,这里没有理由AB表现不同。

这是编译器错误还是有这种差异的原因?

0 投票
2 回答
284 浏览

rust - Rust 引用不实现 Eq/Hash?如何将它们用作哈希映射键?

我想构建一个哈希图,它们的键是引用。我希望这些引用的相等意味着引用相等,即两个引用借用同一个对象。

不幸的是,这失败了,编译器告诉我&SomeKey没有实现Hash/ Eq

(操场)

我注意到,如果我实现Eq+Hashfor SomeKey,那么它可以工作,但这可能会使用底层对象相等,这不是我想要的。

有没有一种方法可以基于指针相等性将引用用作哈希映射键?

0 投票
2 回答
252 浏览

ruby - RSpec:如何按对象身份比较 have_received 参数?

我曾经用来expect(subject/double).to haved_received(:a_method).with(args).exactly(n).times测试使用某些特定参数调用方法并准确调用 {n} 次。但是今天它被参数打破了Comparable,看看下面的代码:

设置

现在下面的测试通过了普通对象 A

但是Comparable对象 B失败了

我调试并看到 rspec 匹配器调用 spaceship 运算符<=>来验证参数,所以它认为 b1 和 b2 是相同的

我该怎么做才能通过考试?

0 投票
0 回答
55 浏览

java - 方法引用是否保证评估为同一个对象?

c每次初始化时都会是同一个对象吗?