两个Map Assignments []和putifabsent之间有区别吗?

Ete*_*ode 3 dart

在定义[]之间是否存在任何性能或任何其他差异,如果不存在则放置

map["x"] = 123;
map.putifabsent("z", ()=> 123);
Run Code Online (Sandbox Code Playgroud)

Arg*_*tus 5

如果它已经在地图中,map['x'] = 123它将覆盖密钥的值'x'而map.putifAbsent('x', ()=> 123)不会?

请注意,putifAbsent 返回与提供的键对应的值.如果键中缺少键(这就是为什么它的第二个参数是函数,而不是直值),您可以使用它来获取键的值,生成并"动态"插入值.

我觉得这是该方法的用例,但这个名称getValuePutIfAbsent被认为太长了.