immutability 相关问题

不可变性是指在创建数据后无法修改数据。而是通过复制数据进行修改。不可变数据的属性是*引用透明*。

kotlinx.collections.immutable 持久与不可变集合

有人可以举例说明持久集合与 kotlinx.collections.immutable 中的不可变集合有何不同吗? 我找到了这个解释,但我不完全理解......

回答 1 投票 0

不变性和 XML 序列化

我有几个类,一旦设置了初始值,它们就是不可变的。 Eric Lippert 将这种现象称为一次写入不变性。 在 C# 中实现一次写入不变性通常意味着设置 i...

回答 6 投票 0

禁用允许将只读类型分配给非只读类型

我一直在研究打字稿中的只读类型。可悲的是,它并没有像我希望的那样工作。例如,请参阅下面的代码: 界面用户{ 名字:字符串; 姓氏:字符串; } ...

回答 3 投票 0

当 Spark 中的数据帧转换为新的数据帧时,会发生什么?

我是 Apache Spark 的初学者。我在学习 Spark 时遇到了困难。据我所知,Spark基于惰性求值工作,并且Spark中的数据帧是不可变的。 我有一个数据框 df 为 3

回答 1 投票 0

我可以在 Python 3 中创建不可变的类属性吗?

我正在编写一个带有自定义 __eq__ 和 __hash__ 方法的类,并且 __hash__ 基本上返回类的属性之一(这是一个整数)。因此,我需要使这个属性像

回答 1 投票 0

“证明”字符串在c#中是不可变的

我已经知道在 C# 中,字符串是引用类型,主要像值类型一样处理,但我最近发现了这一点: http://net-informations.com/faq/general/immutable.htm 我正在尝试“p...

回答 4 投票 0

我可以声明一个接受名称-值参数来定义不可变属性的构造函数吗?

自 MATLAB R2019b 以来,可以从类属性中声明名称-值参数,这创建了一种优雅的方式来定义可以通过声明其

回答 2 投票 0

在什么情况下相等的字符串共享相同的引用?

我已经搜索了网络和堆栈溢出问题,但无法找到这个问题的答案。我的观察是,在 Python 2.7.3 中,如果你为两个变量分配相同的值

回答 3 投票 0

Python 冻结嵌套数据类,带有 __call__ = 替换

我正在尝试编写具有以下特征的不可变数据结构。 不可变的 轻松生成具有更改字段的不可变副本 可组合,因此更新嵌套数据就像...

回答 1 投票 0

如何复制结构体并同时修改其属性之一?

如果我想将视图控制器的状态表示为单个结构,然后实现撤消机制,我将如何更改结构上的一个属性,同时获取该结构的副本...

回答 7 投票 0

将不可变映射转换为可变映射java

我有一个不可变的映射,是从另一部分的方法中获得的。当处理时我想从中删除一个密钥然后进一步使用它,该密钥始终在地图上。 不可变映射 我有一个不可变的映射,是从另一部分的方法中获得的。当处理时我想从中删除一个密钥然后进一步使用它,该密钥始终在地图上。 ImmutableMap<String, Object> immutableMap = doSomethingAndGetImmutableMap(); // convert to mutable Map<String, Object> newMutableMap = ?? newMutableMap.remove("pin"); 是否有任何内置方法可以将不可变映射转换为可变映射java?我看到有几种方法可以做相反的事情,但不是从不可变映射到可变映射。 我使用了Maps.newHashMap,但它是最好、最有效的方法吗? 您可以使用复制构造函数从现有的 HashMap 创建一个新的 Map。 HashMap<String, Object> = new HashMap<>(immutableMap); 请注意,这是一个全新的对象。没有办法使不可变的映射变得可变。那将打破抽象。我想从概念上讲,您可以为不可变映射设计可变包装器,该映射将 changes 存储在第二个(私有)映射结构中。但 Guava 似乎并不支持这一点。 这个还是Maps.newHashMap性能更高? Guava Maps.newHashMap(map) 只是返回 new HashMap<>(map)。该调用将由 JIT 编译内联,因此一旦代码经过 JIT 编译,现代 JVM 上的性能差异应该为零。 您几乎肯定是在浪费时间对此类内容进行微优化: 您应该首先设计和编写应用程序代码并使其运行。 然后你对其进行基准测试。 然后您根据基准测试结果决定应用程序是否需要优化。 然后对其进行分析以确定性能热点在哪里。 然后优化性能热点。 除非有什么非常奇怪的事情,否则按照上述步骤就不会浪费时间问这个问题。套用1 唐纳德·高德纳 (Donald Knuth): “过早优化是万恶之源”. 1 ...并且过度简化/断章取义...

回答 1 投票 0

.NET 中可以使用不可变数组吗?

是否可以以某种方式将 System.Array 标记为不可变。当放在 public-get/private-set 后面时,它们无法添加到其中,因为它需要重新分配和重新分配,但消费者可以...

回答 10 投票 0

为什么java中字符串的不变性会导致这个问题额外的运行时间:https://leetcode.com/problems/search-suggestions-system/solution/

对于这个问题:https://leetcode.com/problems/search-suggestions-system/solution/,解决方案1指出,对于Java,_“由于字符串,存在O(m^2)的额外复杂性是不可变的...

回答 1 投票 0

Kotlin 从不可变映射和附加键值创建新映射的标准方法

Kotlin 中是否有标准方法将新的键值对与不可变映射关联起来? // => {A=1, B=2, C=3} 关联(mapOf(“A”到1,“B”到2),“C”,3); 薄...

回答 1 投票 0

如何使列表(或任何其他值)不可变:Python 中的真正常量?

在一次旧的讨论中,我发现了输入 Final 的参考。我尝试了文档中的示例: y: 最终[序列[str]] = ['a', 'b'] y.append('x') # 错误:“Sequence[str]”没有属性 &

回答 1 投票 0

JavaScript 中 Object.freeze() 和 Object.seal() 的用例是什么?

我做了一些搜索,发现 JavaScript 对象可以被冻结或密封,这意味着它们不能被修改或添加新属性。 我明白这些是什么

回答 4 投票 0

使用冻结异常时,单元测试中出现意外的“FrozenInstanceError”

我有一个单元测试,我想将其失败显示为错误报告的一部分。重要的是,不仅测试因错误而失败,而且错误消息非常清楚地证明了潜在的问题...

回答 1 投票 0

如何在 Kotlin 中创建不可变对象?

Kotlin 有一个 const 关键字。但我不认为 kotlin 中的常量是我认为的那样。它似乎与 C++ 中的 const 有很大不同。在我看来,它仅适用于静态成员......

回答 2 投票 0

Pandas:修改Multiindex的特定级别

我有一个带有多重索引的数据框,想要修改多重索引的一个特定级别。例如,第一级可能是字符串,我可能想从中删除空格

回答 3 投票 0

字符串的后缀列表以及它们之前在 Scala 中重复的次数

如果我们有一个字符串列表,请创建一个新列表,其中每个重复元素都有一个重复次数的后缀,并保留顺序。 例子: 列表(“a”,“a”,&quo...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.