问题标签 [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.
.net - 是否有可能获得相当于 .net 对象的“内存地址”?
我们正在将自定义序列化工具滚动到我们的项目中,并且遇到了通过原始值类型唯一标识每个对象的需求,该原始值类型可用作其“身份”的同义词。该值不需要有任何意义或组织,只需至少在序列化例程期间它是唯一且持久的。理想情况下,.net 会在内部维护一个唯一且持久的对象 ID,我们可以将其存储为对象的 ID。我知道每个对象都有一个GetHashCode
方法,但我们对值的全局唯一性没有信心。访问此类 ID 的另一个标准是该方法必须非常有效。
我已经看过GetHashCode
,垃圾收集器和编组的想法,还没有得到任何可靠的东西。
ios - 用一种方法代替多种方法
我正在尝试为 iOS 学习 Objective-C。我已经尝试对此进行研究,但我一定没有使用正确的关键字。
我有几个简单命名的标签,Label1、Label2 等。除了 Label# 更改之外,我还有大量看起来基本相同的代码。我可以构建一种方法并将数字传递给它并显着缩小我的应用程序吗?
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
- 饲料 - http://domain.com/654156165164
- 事件 - http://domain.com/654156165163
- 评论 - http://domain.com/654156165110
假设我们在此页面http://domain.com/654156165165上,我们怎么知道这是照片、提要、事件或评论的 id?
解决方案1我正在考虑
- 使用前置/附加一些整数重现 id,以识别它属于哪个对象
- 使用新 ID http://domain.com/654646545412请求页面
- 用 php 检查这个 id 属于哪个对象以及该对象的实际 id 是什么(在删除前置/附加整数之后)
c# - 一个不会破坏对象标识的 C# 的鸭子类型库?
令我担心的是,我可以为 C# 找到的鸭子类型库都破坏了对象标识,即为Object.ReferenceEquals
鸭子类型对象及其原始对象返回 false。
在 C# 中实现无包装/无代理解决方案似乎是不可能的,尤其是。鉴于这是一个基本的 OO 概念,但希望我错了,任何人都知道是否有办法,尤其是在以后的语言版本中?
编辑,请求了一个代码示例:
python - 'is' 运算符在将字符串与空格进行比较时表现不同
我已经开始学习 Python(python 3.3)并且正在尝试is
操作符。我试过这个:
似乎空格和问号使is
行为有所不同。这是怎么回事?
编辑:我知道我应该使用==
,我只是想知道为什么is
会这样。
java - 是否有与 Java 的 IdentityHashMap 等效的 Python?
我正在走一个数据结构,并想构建一个字典映射 X-> Y,其中 X 是我正在走的数据结构中的一个字段,Y 是我正在动态构建的数据结构中的一个字段。X 是不可散列的类型。
ruby - Ruby 中的自我精神分裂症
我正在看一段患有自我精神分裂症的代码。一个对象正在包装另一个对象,对程序员来说这是隐藏的,代码将期望包装器和被包装器的身份相同。这仅与 object_id 相关,与包括比较在内的任何方法调用无关。我知道如果包装器会给出与被包装器相同的 object_id,但是否有任何依赖 object_id 正常运行的内核、类、模块方法(或其他常用方法),VM 会出现问题?
在示例中
我可能有类似的代码
如果我希望 add 调用返回 false 我会惊讶地发现我实际上可以添加两次相同的对象(我不知道包装器)。
重申这个问题:是否有任何依赖 object_id 来正确运行的内核、类、模块方法(或其他常用方法)?
c# - 如何在 C# 中的简单存储库中实现更新操作
我的 C# 应用程序使用存储库模式,我非常怀疑如何实现 CRUD 操作的“更新”部分。具体来说,我不知道如何“告诉”存储库我要替换哪个对象(以便以后可以执行持久性。
我在使用应用程序库的控制台应用程序(仅作为示例编写)中有以下代码:
问题是:我应该如何告诉存储库它必须更新哪个元素?我应该使用相等比较器遍历整个存储库来查找元素吗?
注意:此存储库使用 XML 序列化封装数据访问,每个实体一个文件,并且我的实体(Paciente
本示例中的类型)具有该[Serializable]
属性。也就是说,“更新”操作最终会通过Serialize
方法将给定实体的 XML 文件替换为另一个具有更新数据的 XML 文件。
不过,我对此并不担心。我无法弄清楚的是如何实现repo.Update(entity)
,以便 repo 知道被传回的这个实体与从中选择的实体相同listapacientes
,而不是存储库本身。
谢谢阅读!
python - 重载恒等运算符的目的
为什么在 Python 中不能重载恒等比较运算符?每个其他比较运算符都可以自定义,那么为什么不进行身份比较呢?
dart - Dart int 和 double 被实习?被相同()特别对待?
Dart 兼具:
- 一个相等运算符
==
和 - 一个名为 的顶级函数
identical()
。
通过语法的选择,想要==
更频繁地使用 Dart 的运算符感觉很自然identical()
,我喜欢这样。事实上,Idiomatic Dart的平等部分指出“在实践中,你很少需要使用” 。identical()
在最近对我的一个关于自定义过滤器的问题的回答中,似乎Angular Dart更倾向于使用,identical()
而不是==
在尝试确定模型的更改是否已达到稳定状态时。(我认为,出于效率的原因,这对于大型模型是有意义的。)
这让我开始思考int
's 的身份,所以我写了一些identical()
over int
s 的测试。虽然我预计 small int
s可能是“interned/cached”(例如类似于JavaInteger.valueOf()
所做的),但令我惊讶的是,我似乎无法生成两个int
相等但不相同的 s。我得到了类似的结果double
。
int
和值是否double
被保留/缓存?或者也许identical()
是特别对待他们?来自 Java 背景,我曾经等同于 Dart 的:
==
到Java的equal()
方法和identical()
到 Java 的相等性测试==
。
但现在这似乎是错误的。有谁知道发生了什么?