gpt4 book ai didi

function - Dart:函数的参数表示法

转载 作者:行者123 更新时间:2023-12-03 02:53:21 26 4
gpt4 key购买 nike

我有时会发现类似以下内容:

Future<List<Photo>> fetchPhotos(http.Client client) async {
final response = await client.get('https://jsonplaceholder.typicode.com/photos');
return compute(parsePhotos, response.body);
}

其中parsePhotos函数为:
List<Photo> parsePhotos(String responseBody) {
final parsed = json.decode(responseBody).cast<Map<String, dynamic>>();
return parsed.map<Photo>((json) => Photo.fromJson(json)).toList();
}

我听不懂 compute(parsePhotos, response.body): parePhotos函数接受了responseBody参数,但是随着 compute的编写,似乎没有收到它。那么,有人可以向我解释这个表示法吗?
P.s.希望它足够清楚。

最佳答案


return compute(parsePhotos, response.body);
parsePhotosresponse.body只是两个独立的参数。
第一个是对传递给 parsePhotoscompute参数的 callback函数的引用,第二个是来自 client.get(...)的响应数据,该响应数据已传递给 message函数的 compute参数。
compute的作用是创建一个以 parsePhotos作为入口点的新隔离株(例如主隔离株的 main()),然后将 message作为参数传递给它。

因此,不是这行 return compute(parsePhotos, response.body);response.body传递给 parsePhotos,而是
final Isolate isolate = await Isolate.spawn(
_spawn,
new _IsolateConfiguration<Q, R>(
callback,
message,

来自 compute实现 https://docs.flutter.io/flutter/foundation/compute.html

关于function - Dart:函数的参数表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51966232/

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