immutability相关内容

使用MongoDB存储不可变数据?

我们研究了存储和读取大量不可变数据(事件)的选项,我希望获得有关MongoDB是否合适的一些反馈意见. 要求: 我们需要每秒存储约10个事件(但速度会提高).每个事件很小,大约1 Kb.将所有这些事件存储在同一集合中会很好吗? 一个非常重要的要求是,我们需要能够按顺序重播所有事件.我已经阅读此处,说MongoDB的上限为32使用光标对文档进行排序时,Mb.对我们来说,按插入顺序读取所 ..
发布时间:2021-05-15 20:45:31 其他开发

从JavaScript对象递归删除无效值

我搜索了此内容,但找不到满意的答案,所以我在这里发布了自己的答案. 基本上,我想要一个功能: 以对象作为参数 递归地删除值为 null , undefined , [] , {} 或的属性'' 保留 0 和 false 值 返回删除了这些属性的新对象 最好是没有突变的功能样式 解决方案 您可以在其中将三种类型的数据分开 数组, 对象 原始值 并通过减少复 ..
发布时间:2021-05-15 20:45:27 前端开发

从React.js中的递归渲染组件更新状态

我需要从递归呈现的组件中更新处于React状态的深层嵌套对象.这些项目看起来像这样,可以动态嵌套: const项目= [{id:"1",名称:“第1项",isChecked:是的,孩子们: []},{id:"3",名称:“第3项",isChecked:否,孩子们: [{id:"3.1",名称:“孩子1",isChecked:否,孩子们: [{id:"3.1.1",名称:“孙子1",isChec ..
发布时间:2021-05-15 20:45:24 前端开发

如果未传递默认值,如何在构建器模式中使用默认值,并使线程安全?

我正在尝试为班级使用Builder模式. 下面是我按照约书亚·布洛赫(Joshua Bloch)在有效Java(第二版)中显示的版本构建的Builder类.我们的客户通常总是总是通过 userId , clientId ,但是其他字段是可选的,他们可能会也可能不会通过.这里的Preference是一个ENUM类,其中有四个字段. 公共最终类InputKeys {私人长用户ID;私人长客户I ..
发布时间:2021-05-15 20:45:20 Java开发

Python中的可变和不可变

我是Python的新手,它试图了解可变对象和不可变对象之间的区别.Python中的可变类型之一是列表.假设L = [1,2,3],则L具有指向对象[1,2,3]的ID.如果[1,2,3]的内容被修改,则L仍保留相同的id.换句话说,即使对象的大小和内容已更改,L仍与同一对象相关联. 对于不可变的对象,我的理解是不允许修改对象.因此,如果使用新值重新分配变量,则该变量将绑定到具有不同ID的新对 ..
发布时间:2021-05-15 20:45:15 Python

我可以更改传递给我的方法的String对象的值吗?

我发现了以下问题是Java的"pass-by-reference"吗?或“按值传递"?. 我几乎阅读了所有内容,但仍无法找出想要 foo(-)方法更改我的 String 方法应该怎么做.价值?(也许也没有参考,对我来说没关系). void foo(String errorText){errorText ="bla bla";}int main(){字符串错误=“初始";foo(错误);S ..
发布时间:2021-05-15 20:45:11 Java开发

Vector或MutableList/ListBuffer的性能

很抱歉,如果重复的话-我做了几次搜索,却没有找到我需要的东西. 我们的应用程序中有一个性能至关重要的部分,它将输入数据的Play 2.0 Enumerator (可以认为是 Stream )转换为 List(或类似名称).我们将在 Enumerator 上使用 fold 方法,问题是最有效的方法是什么.(我将在代码中使用 Stream 而不是 Enumerator ,但是思想应该是相同的.) ..
发布时间:2021-05-15 20:45:08 其他开发

PHP按值传递对象

我想用PHP实现一个纯函数 如何通过值而不是通过引用传递对象? 换句话说,这是预期的输出: 功能更改($ obj){$ obj-> set_value(2);}$ obj = new Object();$ obj-> set_value(1);change($ obj);echo $ obj-> get_value();//1 解决方案 在此处阅读: http://php ..
发布时间:2021-05-15 20:45:00 PHP

如何使JavaScript变量完全不变?

我听过类似的问题,但没有我想要的答案;我不计算const是因为:1).它实际上并没有使它不可变,而只是使引用不可变2).它与范围弄乱了,我也希望它在块外工作3).并非所有浏览器都支持 {const hello = [“" hello“," world“];hello.push("!!!");console.log(hello);//输出"hello","world","!!!"}//并且它不应 ..
发布时间:2021-05-15 20:44:57 前端开发

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

我一直在看打字稿中的只读类型.可悲的是,它没有我希望的那样工作.例如,请参见下面的代码: 界面用户{firstName:字符串;lastName:字符串;}const用户:Readonly= {firstName:“乔",lastName:“鲍勃",};const mutableUser:用户=用户;//是否有可能不允许这样做?user.firstName ="Foo"//按预期引 ..
发布时间:2021-05-15 20:44:54 其他开发

Java,使类不可变

我在网上遇到了这个练习,在那里我有两个课,我应该使 Tutor 类不可变.但是,我唯一想到的就是在 name 字段中添加 final .对于构造函数,我认为不需要更改 name 变量的初始化,因为 String 是不可变的.我不确定如何处理集合以及如何使构造函数的这一部分不可变.根据练习,我不应该更改Student类(我看到它是可变的) 公共班学生{私有字符串名称;私人弦乐课程;公共学生(字符串 ..
发布时间:2021-05-15 20:44:50 Java开发

将两个ImmutableEnumSet与Guava合并

我想从番石榴中合并两个 ImmutableEnumSets .这是我的尝试: 公共最终课程OurColors {公共枚举颜色{红色的,绿色,蓝色的,黄色的,粉色的,黑色的}公共最终静态ImmutableSetmyColorSet =Sets.immutableEnumSet(Colors.BLUE,Colors.GREEN);公共最终静态ImmutableSet ..
发布时间:2021-05-13 20:03:14 Java开发

如何实现不变性

我正在尝试了解 trie 等实现了不可变性,这与JS中的不可变性有关.我了解应该如何进行重要的结构共享. 我的问题是说你有一个像这样的图结构: a-b|C|d-h|e-我-l|f-j-m|克-克-n 因此,您将 x 添加到系统中.我将尝试两种不同的方式: a-b|C|d-h-x|e-我-l|f-j-m|克-克-n 那只是被添加为一个叶子节点. a-b|C|d-h|X|e- ..
发布时间:2021-05-13 19:04:56 前端开发

是否可以编写不可变的双向链表?

问这个问题我有点愚蠢,但是我现在正在学习函数编程,并完成了创建单链接列表的练习,这让我开始思考,甚至​​有可能创建一个不变的双链接列表吗?> 假设列表A :: B,在构造时,A需要了解B,但是B也需要了解A.我在Scala中一直在这样做,所以我不确定它是否特定到Scala,但我无法想象这将如何工作. 我不是在寻找替代品,因为我什么都不需要,我只是很好奇. 解决方案 是的,有可能.但 ..

为什么要改变不可变的东西,如果它是全球性的

有人可以向我解释为什么如果可变变量在Python中是全局变量,为什么我可以更改它?我不明白为什么在全球范围内不允许这样做,而在其他任何地方都不允许这样做.我最近开始学习编程,但我一无所获.下面的示例. class Ddata():def __init __(self,iw,ih,fw,fh):self.iw = iwself.ih = ihself.fw = fwself.fh = fhx = ..
发布时间:2021-05-09 19:59:54 Python

更新对象数组中的属性

我尝试使用React在对象数组中增加数量属性.但是我不知道如何才能更新该项目. 我尝试过的事情: const initialState = {项目: [{id:254,数量:1},{id:493,数量:1}],};const有效负载= {编号:254};函数updateProduct(state,action){return state.items.map((item,i)=> {如果( ..
发布时间:2021-05-03 20:02:13 前端开发

如何在TypeScript中使用ImmutableJS Map

我有一个看起来像这样的树结构: 接口TreeData {身份证号码;文字:字串;子级:TreeData [];} 我想将其包装成一个不可变的映射,但是由于我使用的是TypeScript,所以我希望在使用get和set时有一些类型安全性.我在网上找到2篇文章,以寻求有关如何做到这一点的建议,请参阅: https://github.com/facebook/immutable-js/iss ..

关于熊猫数据框索引的不变性

我在文档中读到,索引对象是不可变的,一旦创建就无法更改.但是我可以在创建后更改值. 我在这里想念东西吗? 这是我尝试过的: ser = pd.Series([5,0,3,8,4],index = ['红色','蓝色','黄色','白色','绿色'])丝氨酸红色5蓝色0黄色3白色8绿色4dtype:int64ser.index = ['红色','蓝色','黄色','白色','测试'] ..
发布时间:2021-04-28 20:54:54 Python

Python中的元组声明

在python中,可以这样显式地声明一个带有括号的元组: >>>x =(0.25、0.25、0.25、0.25)>>>X(0.25、0.25、0.25、0.25)>>>类型(x) 或者,不带括号,python自动将其打包成一个不可变的元组: >>>x = 0.25、0.25、0.25、0.25>>>X(0.25、0.25、0.25、0.25)>>>类型(x) ..
发布时间:2021-04-24 21:11:45 Python

为什么不能更改String.Empty的值?

虽然我知道更改 String.Empty 的值将是一个坏主意,但我不明白为什么我不能这样做. 要理解我的意思,请考虑以下课程: 公共类SomeContext{静态SomeContext(){}公共静态只读字符串Green ="Green";公共静态只读SomeContext实例= new SomeContext();私人SomeContext(){}公共只读字符串Blue ="Blue"; ..
发布时间:2021-04-24 19:13:37 C#/.NET