问题标签 [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 投票
1 回答
430 浏览

.net - 是否有可能获得相当于 .net 对象的“内存地址”?

我们正在将自定义序列化工具滚动到我们的项目中,并且遇到了通过原始值类型唯一标识每个对象的需求,该原始值类型可用作其“身份”的同义词。该值不需要有任何意义或组织,只需至少在序列化例程期间它是唯一且持久的。理想情况下,.net 会在内部维护一个唯一且持久的对象 ID,我们可以将其存储为对象的 ID。我知道每个对象都有一个GetHashCode方法,但我们对值的全局唯一性没有信心。访问此类 ID 的另一个标准是该方法必须非常有效。

我已经看过GetHashCode,垃圾收集器和编组的想法,还没有得到任何可靠的东西。

0 投票
2 回答
51 浏览

ios - 用一种方法代替多种方法

我正在尝试为 iOS 学习 Objective-C。我已经尝试对此进行研究,但我一定没有使用正确的关键字。

我有几个简单命名的标签,Label1、Label2 等。除了 Label# 更改之外,我还有大量看起来基本相同的代码。我可以构建一种方法并将数字传递给它并显着缩小我的应用程序吗?

0 投票
2 回答
136 浏览

php - php区分不同的表ID?

我有不同的对象,有 id,所有的 id 都是唯一的。

对象

  • 照片
  • 喂养
  • 事件
  • 评论

所有的id都是独一无二的,再也不会重复了。

我想像这样在 url 中传递该 id:http: //domain.com/ {object_id} 和对象 id 应该告诉我它属于哪个对象以及它的 id 是什么。也许通过php来做。

我在某处读到它可以通过带有前置文本或不同 ID 的 base_convert 来完成。没有把握。

编辑:

当前 id 和 url

假设我们在此页面http://domain.com/654156165165上,我们怎么知道这是照片、提要、事件或评论的 id?

解决方案1我正在考虑

  • 使用前置/附加一些整数重现 id,以识别它属于哪个对象
  • 使用新 ID http://domain.com/654646545412请求页面
  • 用 php 检查这个 id 属于哪个对象以及该对象的实际 id 是什么(在删除前置/附加整数之后)
0 投票
2 回答
717 浏览

c# - 一个不会破坏对象标识的 C# 的鸭子类型库?

令我担心的是,我可以为 C# 找到的鸭子类型库都破坏了对象标识,即为Object.ReferenceEquals鸭子类型对象及其原始对象返回 false。

在 C# 中实现无包装/无代理解决方案似乎是不可能的,尤其是。鉴于这是一个基本的 OO 概念,但希望我错了,任何人都知道是否有办法,尤其是在以后的语言版本中?

编辑,请求了一个代码示例:

0 投票
5 回答
2749 浏览

python - 'is' 运算符在将字符串与空格进行比较时表现不同

我已经开始学习 Python(python 3.3)并且正在尝试is操作符。我试过这个:

似乎空格和问号使is行为有所不同。这是怎么回事?

编辑:我知道我应该使用==,我只是想知道为什么is会这样。

0 投票
4 回答
462 浏览

java - 是否有与 Java 的 IdentityHashMap 等效的 Python?

我正在走一个数据结构,并想构建一个字典映射 X-> Y,其中 X 是我正在走的数据结构中的一个字段,Y 是我正在动态构建的数据结构中的一个字段。X 是不可散列的类型。

0 投票
1 回答
84 浏览

ruby - Ruby 中的自我精神分裂症

我正在看一段患有自我精神分裂症的代码。一个对象正在包装另一个对象,对程序员来说这是隐藏的,代码将期望包装器和被包装器的身份相同。这仅与 object_id 相关,与包括比较在内的任何方法调用无关。我知道如果包装器会给出与被包装器相同的 object_id,但是否有任何依赖 object_id 正常运行的内核、类、模块方法(或其他常用方法),VM 会出现问题?

在示例中

我可能有类似的代码

如果我希望 add 调用返回 false 我会惊讶地发现我实际上可以添加两次相同的对象(我不知道包装器)。

重申这个问题:是否有任何依赖 object_id 来正确运行的内核、类、模块方法(或其他常用方法)?

0 投票
3 回答
1006 浏览

c# - 如何在 C# 中的简单存储库中实现更新操作

我的 C# 应用程序使用存储库模式,我非常怀疑如何实现 CRUD 操作的“更新”部分。具体来说,我不知道如何“告诉”存储库我要替换哪个对象(以便以后可以执行持久性。

我在使用应用程序库的控制台应用程序(仅作为示例编写)中有以下代码:

问题是:我应该如何告诉存储库它必须更新哪个元素?我应该使用相等比较器遍历整个存储库来查找元素吗?

注意:此存储库使用 XML 序列化封装数据访问,每个实体一个文件,并且我的实体(Paciente本示例中的类型)具有该[Serializable]属性。也就是说,“更新”操作最终会通过Serialize方法将给定实体的 XML 文件替换为另一个具有更新数据的 XML 文件。

不过,我对此并不担心。我无法弄清楚的是如何实现repo.Update(entity),以便 repo 知道被传回的这个实体与从中选择的实体相同listapacientes,而不是存储库本身。

谢谢阅读!

0 投票
3 回答
571 浏览

python - 重载恒等运算符的目的

为什么在 Python 中不能重载恒等比较运算符?每个其他比较运算符都可以自定义,那么为什么不进行身份比较呢?

0 投票
3 回答
228 浏览

dart - Dart int 和 double 被实习?被相同()特别对待?

Dart 兼具:

  • 一个相等运算符==
  • 一个名为 的顶级函数identical()

通过语法的选择,想要==更频繁地使用 Dart 的运算符感觉很自然identical(),我喜欢这样。事实上,Idiomatic Dart的平等部分指出“在实践中,你很少需要使用” 。identical()

在最近对我的一个关于自定义过滤器的问题的回答中,似乎Angular Dart更倾向于使用,identical()而不是==在尝试确定模型的更改是否已达到稳定状态时。(我认为,出于效率的原因,这对于大型模型是有意义的。)

这让我开始思考int's 的身份,所以我写了一些identical()over ints 的测试。虽然我预计 small ints可能是“interned/cached”(例如类似于JavaInteger.valueOf()所做的),但令我惊讶的是,我似乎无法生成两个int相等但不相同的 s。我得到了类似的结果double

int和值是否double被保留/缓存?或者也许identical()是特别对待他们?来自 Java 背景,我曾经等同于 Dart 的:

  • ==到Java的equal()方法和
  • identical()到 Java 的相等性测试==

但现在这似乎是错误的。有谁知道发生了什么?