草庐IT

Immutable

全部标签

visual-studio - 此类继承自标记为@immutable 的类,因此应该是不可变的(所有实例字段必须是最终的)

遇到以下问题,但无法解决,谁能帮我解决这个问题。Thisclassinheritsfromaclassmarkedas@immutable,andthereforeshouldbeimmutable(allinstancefieldsmustbefinal).dart(must_be_immutable)谢谢。 最佳答案 当所有类变量都未声明为final时,会出现此问题。您可以将它们设为最终版本,也可以忽略此警告,您可以在类声明上方添加以下注释://ignore:must_be_immutable

swift - 错误 : Immutable value passed on reduce function

我正在尝试执行以下代码,将元组数组转换为字典,但我收到编译错误:Immutablevalueoftype'[String:String]'onlyhasmutatingmembersnamed'updateValue'vararray=[("key0","value0"),("key1","value1")]varinitial=[String:String]()varfinal=array.reduce(initial){(dictionary,tuple)indictionary.updateValue(tuple.0,forKey:tuple.1)returndictionary

xcode - 无法分配给属性 : 'self' is immutable

我正在创建一个页面View应用程序。我已经为ViewController编写了代码:importUIKitclassViewController:UIViewController{varpageViewController:UIPageViewController!varpageTitles:NSArray!varpageImages:NSArray!@IBActionfuncrestartAction(sender:AnyObject){}overridefuncviewDidLoad(){super.viewDidLoad()self.pageTitles=NSArray(obje

c# - 不可变对象(immutable对象)是好的做法吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我应该尽可能让我的类不可变吗?我曾经读过JoshuaBloch的《EffectiveJava》一书,他出于各种原因建议使所有业务对象不可变。(例如线程安全)这也适用于C#吗?您是否尝试使您的对象不可变,以便在使用它们时减少问题?还是不值得您创建它们所带来的不便?

c# - 在不可变对象(immutable对象)和值对象的结构之间进行选择

如何选择将值对象(典型示例是地址)实现为不可变对象(immutable对象)还是结构?选择一个而不是另一个有性能、语义或任何其他好处吗? 最佳答案 有几点需要考虑:一个结构被分配在栈上(通常)。它是一种值类型,因此如果数据太大,则跨方法传递数据的成本可能很高。在堆上分配了一个类。它是一种引用类型,因此通过方法传递对象的成本并不高。通常,我将结构体用于不太大的不可变对象(immutable对象)。我只在它们中保存的数据量有限或者我想要不变性时才使用它们。一个例子是DateTime结构。我喜欢认为,如果我的对象不像DateTime那样轻

c# - 我是否必须包含所有 System.Collections.Immutable 依赖项?

我刚从(旧的)Microsoft.Bcl.ImmutableNuGet包切换到System.Collections.Immutable并惊讶地发现我的项目中有所有这些新的包依赖项:System.CollectionsSystem.Diagnostics.DebugSystem.GlobalizationSystem.LinqSystem.Resources.ResourceManagerSystem.RuntimeSystem.Runtime.ExtensionsSystem.Threading它们被列为NuGet包的依赖项,因此它们有权存在,但它们显然也已经安装在我的PC和我的目标环

c# - C# 中的不可变对象(immutable对象)模式 - 你怎么看?

关闭。这个问题需要更多focused.它目前不接受答案。想改善这个问题吗?更新问题,使其仅关注一个问题editingthispost.6年前关闭。Improvethisquestion我在几个项目的过程中开发了一种模式来创建不可变(只读)对象和不可变对象(immutable对象)图。不可变对象(immutable对象)具有100%线程安全的优点,因此可以跨线程重用。在我的工作中,我经常在Web应用程序中使用这种模式来进行配置设置和其他加载并缓存在内存中的对象。缓存对象应该始终是不可变的,因为您希望保证它们不会被意外更改。现在,您当然可以轻松设计不可变对象(immutable对象),如下

c# - 相互引用的不可变对象(immutable对象)?

今天,我试图围绕相互引用的不可变对象(immutable对象)进行思考。我得出的结论是,如果不使用惰性求值,你不可能做到这一点,但在这个过程中我写了这个(在我看来)有趣的代码。publicclassA{publicstringName{get;privateset;}publicBB{get;privateset;}publicA(){B=newB(this);Name="test";}}publicclassB{publicAA{get;privateset;}publicB(Aa){//a.NameisnullA=a;}}我觉得有趣的是,我想不出另一种方法来观察处于尚未完全构造且包

javascript - 在 Immutable.js 中获取嵌套值

根据此处的文档:https://facebook.github.io/immutable-js/docs/#/Map/getIn我应该能够通过为keyPath参数提供一个数组来获得深度嵌套的值。这就是我所做的,但是我得到的是undefined作为返回值。http://jsfiddle.net/srxv4mwu/varobj=Immutable.Map({categories:{1:'a',2:'b'}});varoutput=obj.getIn(['categories',1]);alert(output);我做错了什么? 最佳答案

javascript - Immutable.js或Lazy.js是否执行捷径融合?

首先,让我为不认识的人定义short-cutfusion。考虑以下JavaScript中的数组转换:vara=[1,2,3,4,5].map(square).map(increment);console.log(a);functionsquare(x){returnx*x;}functionincrement(x){returnx+1;}在这里,我们有一个数组[1,2,3,4,5],其元素首先平方[1,4,9,16,25],然后递增[2,5,10,17,26]。因此,尽管我们不需要中间数组[1,4,9,16,25],我们仍然可以创建它。捷径融合是一种优化技术,可以通过将一些函数调用合并