首页 文章
  • 0 votes
     answers
     views

    为什么我的redux状态没有更新

    状态不更新 . 当调度操作时,状态应更新为isAuthenticated为true ..但是状态不更新.redux返回初始状态而不是更新状态 . export function setCurrentUser(user) { console.log(user); return { type: "SET_CURRENT_USER", ...
  • 2 votes
     answers
     views

    更改子组件状态会更改父组件道具

    父组件是 Headers 子组件是一种形式,用于更改在触发redux操作的保存之后出现在 Headers 中的值 . 我设置了子状态 constructor(props) { super(props); this.state = { object: { ...props.object }, hidden: props.hidden, }; } 该表...
  • 0 votes
     answers
     views

    在react / redux状态中变换大型数据结构

    我正在构建一个应用程序样板,用于大规模部署连接产品 . 我需要在内存中保存一个大型列表,以生成将在组件上显示的树结构 . 数据让我感到平淡,我需要在浏览器中用JS创建层次结构 . 当我把这个可能庞大的数据结构放在redux状态时,它是不可变的,需要在会话过程中多次实例化/复制/更改,我想避免这种情况 . 是否有最佳实践可以放置在react / redux应用程序中频繁更改的大型数据结构?
  • 170 votes
     answers
     views

    为什么.NET String是不可变的? [重复]

    这个问题在这里已有答案: Why can't strings be mutable in Java and .NET? 17答案 众所周知,String是不可改变的 . String不可变的原因是什么,StringBuilder类的引入是可变的?
  • 0 votes
     answers
     views

    如何避免为我的不可变类编写赋值运算符

    我编写了一个不可变的类Coords,只有两个成员 - const int x和const int y . 但是,编译器希望我编写一个赋值运算符,根据我可以收集的内容,对于不可变类型没有任何意义 . 这是一个例子: //location is a Coords* and Coords::DOWN is a static const Coords&. Coords& next ...
  • 4 votes
     answers
     views

    具有(im)可变属性的Groovy @Immutable类

    我正在尝试使用Groovy @groovy.transform.Immutable 来实现具有不受支持的"immutable"类型属性的类 . 就我而言,它是 java.io.File 例如,有类似的 @groovy.transform.Immutable class TwoFiles { File file1,file2 } 给我以下编译错误 Groovyc:@...
  • 12 votes
     answers
     views

    字典是否被破坏或GetHashCode()仅基于不可变成员?

    将对象添加到.NET System.Collections.Generic.Dictionary类时,密钥的哈希码将在内部存储并用于以后的比较 . 当哈希码在其初始插入字典后发生变化时,它常常变为"inaccessible",并且当存在检查(即使使用相同的引用)返回false时,可能会使其用户感到惊讶(下面的示例代码) . GetHashCode文档说: 对象的GetHash...
  • 18 votes
     answers
     views

    为什么Scala的toSeq将不可变Set转换为可变ArrayBuffer?

    如果我在一个不可变的 Set 集合上调用 toSeq ,我得到 ArrayBuffer . scala> Set(1,2,3).toSeq // returns Seq[Int] = ArrayBuffer(1, 2, 3) 这让我感到惊讶 . 鉴于Scala强调使用不可变数据结构,我期望得到一个不可变的序列,如 Vector 或 List 而不是可变的 ArrayBuffer . ...
  • 6 votes
     answers
     views

    修改不可变的子结构

    假设我有一个不可变的包装器: template<class T> struct immut { T const& get() const {return *state;} immut modify( std::function<T(T)> f ) const { return immut{f(*state)}; } immut(T in):state(s...
  • 4 votes
     answers
     views

    Java中的不可变数据 - 静态或实例运算符?

    想象一下完全不可变的任何Java类 . 我将使用以下作为示例: public class Point2D { public final int x; public final int y; public Point2D(final int x, final int y) { this.x = x; this.y = y; } } 现在考虑在这个类上添加一个运算符...
  • 462 votes
     answers
     views

    为什么Ruby方法中使用感叹号?

    在Ruby中,一些方法有一个问号( ? ),它询问像 include? 这样的问题,询问是否包含有问题的对象,然后返回true / false . 但是为什么有些方法会有感叹号( ! )而其他方法却没有? 这是什么意思?
  • 0 votes
     answers
     views

    immutability-helper不更新状态

    这非常简单,但是当我完成setState时,react没有更新状态 . 我正在安慰我的值并且newState已更改,但是当我调用this.state时它会保留旧值 . let newState = update(this.state, {newItem: {$apply: function(x) {return x +1;}}, isEditing:{$set:false}, displayArr...
  • 5 votes
     answers
     views

    如何从scala案例类中装饰不可变对象图

    我正在阅读结构化JSON,使用Play Frameworks的JSON Reads来构建带有案例类的对象图 . 一个例子: case class Foo ( id: Int, bar_id: Int, baz_id: Int, ...
  • 2 votes
     answers
     views

    Guava Immutable *类是否满足它们实现的标准集合接口?

    例如,如果我有一个类似的界面 public interface Partition<E> { Set<E> getIncluded(); Set<E> getExcluded(); } 我这样实现它 public class ImmutablePartition<E> implements Partition<E> { ...
  • 1 votes
     answers
     views

    React,Redux:更新状态并重新渲染子项

    我面临的情况是我将一系列作业存储为Redux状态 . 我有一个容器,它使用Redux connect访问数据并使用this.props.params中的参数然后找到适当的Job,然后将其作为prop传递给它的子项 . 在子组件中,作业会触发更新作业的操作,然后合并并更新存储中的作业 . 这似乎工作正常,但当容器重新渲染时,孩子没有 . 我可以看到,这与我不把工作存放为道具或国家这一事实有关 . 我...
  • 4 votes
     answers
     views

    Kotlin实例化不可变列表

    我已经开始使用Kotlin作为java的替代品并且非常喜欢它 . 但是,如果没有跳回到java-land,我一直无法找到解决方案: 我有 Iterable<SomeObject> 并需要将其转换为列表,因此我可以多次迭代它 . 这是一个不可变列表的明显应用,因为我需要做的就是多次读取它 . 我如何在开始时将这些数据实际放入列表中? (我知道's an interface, but I'...
  • 0 votes
     answers
     views

    如何在Kotlin中使用不可变的持久集合?

    我想在Kotlin中使用不可变的持久集合,就像Clojure使用的那样 . 我可以使用哪些库(在JVM和Javascript中)?他们与Kotlin的整合程度如何?
  • 2 votes
     answers
     views

    没有不可变对象的推送时的角度变化检测策略

    我一直在阅读一些关于变化检测策略的文章,但我对在推送策略中使用哪些情况有一些疑问 . 基本上我的疑问是关于什么时候我们有嵌套组件绑定不是不可变的对象 . 我有两个嵌套组件,一个父组件和一个子组件,两者都在推送时具有更改检测策略 . 我作为formGroup的子组件的输入传递 . 当我在父组件上将表单设置为启用,然后我调用ChangeDetectorRef.detectChanges()(应检查更改...
  • 0 votes
     answers
     views

    F#不可变版本的List <T>?

    我现在正试图学习F#的乐趣 . 在C#中,我处理来自数据库的复杂数据,这些数据通常必须包含一个元素中的整数,双精度数,字符串 . System.Collections.Generic List&lt;T&gt; 非常适合这种情况 . 我正在尝试在F#中探索并行性,但需要一个不可变的 List&lt;T&gt; 来这样做 . 这可能吗?语法是否类似于C# var x = new List&lt;...
  • 0 votes
     answers
     views

    我可以使用固定密钥创建 Map 吗?

    我需要创建一个类型来表示一组命名的开关值 . 我希望这种类型在交换机名称固定的意义上是不可变的,但仍然允许更改开关值 . 我目前正在使用 Map&lt;string, boolean&gt; . 但是,这意味着我的类型的用户可以添加其他键值,或删除现有键值,我想阻止它 . 我想过使用 ReadonlyMap&lt;string, boolean&gt; 但是虽然这可以防止添加或删除密钥,但它也会...
  • 36 votes
     answers
     views

    为什么Microsoft建议使用具有可变值的只读字段?

    微软在Design Guidelines for Developing Class Libraries中说: 不要将可变类型的实例分配给只读字段 . 使用可变类型创建的对象可以在创建后进行修改 . 例如,数组和大多数集合是可变类型,而Int32,Uri和String是不可变类型 . 对于包含可变引用类型的字段,只读修饰符可防止覆盖字段值,但不保护可变类型不被修改 . 这简单地重述了readon...
  • 153 votes
     answers
     views

    如何避免API设计中的“参数太多”问题?

    我有这个API函数: public ResultEnum DoSomeAction(string a, string b, DateTime c, OtherEnum d, string e, string f, out Guid code) 我不喜欢它 . 因为参数顺序变得不必要的重要 . 添加新字段变得更加困难 . 很难看到传递的是什么 . 将方法重构为较小的部分更加困难,因为它...
  • 222 votes
     answers
     views

    在不可变集合上使用非变异“add”方法的最佳名称是什么?

    对于华丽的 Headers 感到抱歉 - 如果我能想出一个简洁的 Headers ,我就不用问这个问题了 . 假设我有一个不可变的列表类型 . 它有一个操作 Foo(x) ,它返回一个新的不可变列表,其中指定的参数作为最后的额外元素 . 因此,要 Build 一个包含值&quot;Hello&quot;,&quot;immutable&quot;,&quot;world&quot;的字符串列表,您...
  • 33 votes
     answers
     views

    值类型是否按定义不可变?

    我经常读到 struct 应该是不可变的 - 根据定义它们不是吗? 你认为 int 是不可变的吗? int i = 0; i = i + 123; 好像没问题 - 我们得到一个新的 int 并将其分配回 i . 那这个呢? i++; 好的,我们可以把它想象成一条捷径 . i = i + 1; struct Point 怎么样? Point p = new Point(1, 2); p....
  • 2 votes
     answers
     views

    F#如何处理BCL中数以千计的标准可变类型?

    像Point,Size等值类型 . 我也听说.NET中的字符串不是真正不可变的 . F#是否使用它们的这些或替代不可变版本? 如果它使用标准的可变BCL类型,那么这会不会影响F#在编译和运行时提供的整个不变性信任吗? 编辑:我的意思是,如果你有这些BCL类型的替代不可变版本,所以我不必从头开始编写所有这些不同的BCL类型 . 或者,当使用WinForms或诸如此类的东西时,这些类型(如Point...
  • 5 votes
     answers
     views

    不可改变的阶级结构设计

    所以我们都认识到不可变类型的好处,特别是在多线程场景中 . (或者至少我们都应该意识到这一点;参见例如System.String . ) 但是,我没有看到的是关于创建不可变实例的讨论,特别是设计指南 . 例如,假设我们想要具有以下不可变类: class ParagraphStyle { public TextAlignment Alignment {get;} public fl...
  • 5 votes
     answers
     views

    当声明为var时,Scala不可变集是可变的

    我正在阅读Scala编程,第2版(精彩的书,比斯卡拉的网站更好地以非摇滚科学的方式解释事物)并且我注意到这...在回到不可变和可变的时候很奇怪集 . 它将以下内容声明为不可变集 var jetSet=Set(&quot;Boeing&quot;, &quot;Airbus&quot;) jetSet+=&quot;Lear&quot; println(jetSet.contains(&quot;C...
  • 1 votes
     answers
     views

    Tuple vs String vs frozenset . 不可变对象和内存中的副本数

    a = &quot;haha&quot; b = &quot;haha&quot; print a is b # this is True 上面的代码打印为true . 我已经读过,其中一个原因是因为字符串是不可变的,所以内存中的一个副本就足够了 . 但是在元组的情况下: a = (1, 2, 3) b = (1, 2, 3) print a is b # this is False 尽管...
  • -2 votes
     answers
     views

    Python副对象混淆[重复]

    这个问题在这里已有答案: How do I pass a variable by reference? 23个答案 Duplicate edit : 还有一个被标记为类似的question,但它有所不同,因为它只讨论.append和完整列表实例 . 我的问题是关于偏移分配(data [j])和迭代器(在第一个函数中使用) . 我对Python的副对象信息传递有点困惑 . 从我的教科书中,当函...
  • 149 votes
     answers
     views

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

    虽然我从来没有需要这个,但让我感到震惊的是在Python中创建一个不可变对象可能会有些棘手 . 你不能只是覆盖setattr,因为那样你甚至不能在init中设置属性 . 对元组进行子类化是一个有效的技巧: class Immutable(tuple): def __new__(cls, a, b): return tuple.__new__(cls, (a, b)) ...

热门问题