[英]Immutable.js Map set vs update
我想在我拥有的地图中的某个键上更改值。 除了使用update
这一事实,如果我要求更新的密钥不存在,将给我一个错误,使用update
over set
有什么好处(如果有的话)? 我发现set
更加简洁/清洁。 实际上,基于文档,人们可以(盲目地)认为set
实际上比update
更有效,因为set
不必执行updater
函数的get
。
当您的新值是当前值转换的结果时, update
功能更强大:
const inc = (x) => (x + 1)
const m = Immutable.Map({a: 1, b: 2, c: 3})
m.update('b', inc) #=> {a: 1, b: 3, c: 3})
与set
:
m.set('b', inc(m.get('b'))
这个例子非常简单,但是当您开始围绕数据构建算法(如在FP中 )而不是相反的方式时,以这种方式应用变换到数据的模式变得更加常见。 我之前在game.update('player', moveLeft)
这样的游戏中做过一些事情。
但是,如果您知道新值是什么,那么只需使用set
as update(key, x => val)
就相当愚蠢了。
@MatthewHerbst说:
(...)想知道使用更新是否仍然是好的做法,或者如果设置没问题
在评论@ andrew-marshall的回应时
我不认为这是一个好的或坏的做法的问题。
据我所知,有两种不同的用例:
set
update
所以你不认为你应该总是使用set
over update
(或者反过来),我认为你应该使用其中一个,具体取决于你的使用案例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.