gpt4 book ai didi

dart - Dart Map语法: putIfAbsent ('FirstKey' ,()=> 1);什么是: ()?

转载 作者:行者123 更新时间:2023-12-01 23:23:29 24 4
gpt4 key购买 nike

在编辑器提示中,您将获得:

scores.putIfAbsent(key, () => numValue);

我正在使用以下命令向我的 map 添加单个“行”:

myMap.putIfAbsent(9, () => 'Planned');
yourMap.putIfAbsent('foo', () => true);

如此:()是什么意思?

最佳答案

putIfAbsent函数带有两个参数,即key和一个函数,如果需要,该函数将返回新值。

参见https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart-core.Map#id_putIfAbsent

第二个参数是返回新值的函数,而不是返回值本身的原因是,如果映射已经包含键,则创建值有时是不可取的。

考虑以下示例:

var map = ...;
var key = ...;
map.putIfAbsent(key, new Value());

如果 map已经包含 key,则根本不使用新值对象。如果Value对象分配对象比较繁琐或昂贵,则这是不希望有的副作用。

通过采取功能
var map = ...;
var key = ...;
map.putIfAbsent(key, () => new Value());

仅当 key中不存在 map且需要该值时,它才会执行该功能。

因此,要回答语法问题。形式 () => ...的表达式是函数表达式的简写形式,返回第一个表达式的结果。一个小例子:
var function = () => "some string";
var str = function();
print(str);

将打印“一些字符串”。

关于dart - Dart Map语法: putIfAbsent ('FirstKey' ,()=> 1);什么是: ()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25227426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com