草庐IT

Immutable

全部标签

javascript - 如何将 Immutable.js 与 redux 一起使用?

Redux框架正在使用reducers更改应用程序状态以响应操作。关键要求是reducer不能修改现有的状态对象;它必须产生一个新对象。坏例子:import{ACTIVATE_LOCATION}from'./actions';exportletui=(state=[],action)=>{switch(action.type){caseACTIVATE_LOCATION:state.activeLocationId=action.id;break;}returnstate;};很好的例子:import{ACTIVATE_LOCATION}from'./actions';exportle

javascript - 如何获得几个 immutable.js 列表的联合

所以,我有一个列表:leta=Immutable.List([1])和列表b:letb=Immutable.List([2,3])我想从他们那里得到Listunion===List([1,2,3])。我尝试merge他们的拳头:letunion=a.merge(b);//List([2,3])似乎merge方法使用索引而不是值操作,因此用Listb的第一项覆盖Lista的第一项。所以,我的问题是获得多个列表联合的最简单方法是什么(最好不要迭代它们和其他额外操作)。 最佳答案 你对合并是正确的。Merge将使用合并列表的当前值更新索引

python - 如何在 Python 中复制像元组这样的不可变对象(immutable对象)?

copy.copy()和copy.deepcopy()只是复制不可变对象(immutable对象)(如元组)的引用。如何在不同的内存位置创建第一个不可变对象(immutable对象)的副本? 最佳答案 您正在寻找deepcopy。fromcopyimportdeepcopytup=(1,2,3,4,5)put=deepcopy(tup)诚然,这两个元组的ID将指向同一个地址。因为元组是不可变的,所以真的没有理由创建另一个完全相同的副本。但是,请注意,元组可以包含可变元素,并且deepcopy/id的行为与您预期的一样:fromcop

java - 不可变对象(immutable对象)和有效不可变对象(immutable对象)之间的区别?

这是Java并发实践中的一句话Sharedread-onlyobjectsincludeimmutableandeffectivelyimmutableobjects.不可变对象(immutable对象)和有效不可变对象(immutable对象)之间有什么区别? 最佳答案 一个不可扩展的类的实例,其字段都是final并且本身是不可变的。类的实例由于其方法的细节而不能改变其字段,实际上是不可变的。例如:finalclassC{finalbooleancanChange;privateintx;C(booleancanChange){t

java - 不可变对象(immutable对象)如何帮助减少垃圾收集带来的开销?

我是新手,我从前两个答案here中阅读了有关垃圾收集的信息.现在证明使用不可变对象(immutable对象)是合理的,即使程序员必须创建新对象,与使用现有对象(在多线程应用程序中)相比,thistutorial说创建对象的成本是由由于垃圾收集而减少的内存开销,以及保护可变对象免受线程干扰和内存一致性错误的代码的消除:Theimpactofobjectcreationisoftenoverestimated,andcanbeoffsetbysomeoftheefficienciesassociatedwithimmutableobjects.Theseincludedecreasedov

java - 在java中将java.util.HashMap转换为scala.collection.immutable.Map

我正在使用我的Java代码中的一些Scala库。我对Collection有疑问。我需要将scala.collection.immutable.Map作为方法的参数传递。我可以从我的Java代码转换或构建immutable.Map但我不知道该怎么做。有什么建议吗? 最佳答案 在Java代码中使用JavaConverters是完全可能的——只需跳过几个额外的环节:importjava.util.HashMap;importscala.Predef;importscala.Tuple2;importscala.collection.Jav

java - 不可变对象(immutable对象)的所有属性都必须是最终的吗?

不可变对象(immutable对象)的所有属性都必须是final吗?我会说他们没有。但我不知道我说的对不对。 最佳答案 不可变对象(immutable对象)(所有属性都是最终的)和有效的不可变对象(immutable对象)(属性不是最终的但不能更改)之间的主要区别在于安全发布。感谢guaranteesprovidedbytheJavaMemoryModelforfinalfields,您可以在多线程上下文中安全地发布不可变对象(immutable对象),而不必担心添加同步。:finalfieldsalsoallowprogramme

java - 可以公开不可变对象(immutable对象)的状态吗?

最近遇到了不可变对象(immutable对象)的概念,我想知道控制对状态的访问的最佳实践。尽管我大脑中面向对象的部分让我想在看到公众成员时畏缩不前,但我认为这样的事情没有技术问题:publicclassFoo{publicfinalintx;publicfinalinty;publicFoo(intx,inty){this.x=x;this.y=y;}}我会觉得将字段声明为private并为每个字段提供getter方法会更舒服,但是当状态显式只读时,这似乎过于复杂。提供对不可变对象(immutable对象)状态的访问的最佳做法是什么? 最佳答案

java - 不可变对象(immutable对象)和 Spring/Spring MVC : the right choice?

我通常尝试将我的类设计为不可变类,因此在编码压力方面我有很多优势。但是在使用Spring时,我有时会注意到框架在大多数情况下“不鼓励”这种设计,而是支持经典的JavaBeans设计:默认构造函数+getters/setters.我真的不喜欢JavaBean设计的对象,因为它们的疯狂可变性。所以我想知道我是否遗漏了什么......我试图让我的类设计尽可能优雅和可重用,但框架需要更改此设计或以困难的方式允许它...这是怎么回事? 最佳答案 对于web表单数据绑定(bind)(即表单POST),问题是Java反射在构造函数上很弱,因此很难

android - 是 var str : String mutable or immutable?

我已经在Kotlin中声明了一个字符串变量。varstr:StringKotlin文档与可变性概念相矛盾。根据文件...var是可变的。但是对于String它定义为不可变的。所以请澄清矛盾... 最佳答案 其实Stringvariable是可变的,而StringValue是不可变的。Appreciatewith@cricket_007让我深入描述一下当你声明变量时发生的事情。valstring1="abcd"valstring2="abcd"如上图和声明所示。-字符串池是堆内存中的一个特殊存储区域。-当一个字符串被创建时,如果字符串