新手求教:Flutter中List.from()方法的具体作用是什么
关于Flutter中List.from()方法的解释
List.from()是Dart里用来将可迭代对象(Iterable)转换为List的构造方法,它会遍历传入的可迭代对象,逐个取出元素,生成一个全新的List实例。
结合你给出的代码例子拆解:
Iterable l = json.decode(response.body); List<Post> posts = List<Post>.from(l.map((model)=> Post.fromJson(model)))
json.decode()返回的是Iterable类型的对象,它不具备List的全部操作能力(比如按索引直接访问、添加/删除元素等)l.map((model)=> Post.fromJson(model))会把Iterable里的每个JSON对象转换成Post实例,但这一步返回的依然是Iterable<Post>,不是ListList<Post>.from()的作用就是把这个Iterable<Post>里的所有Post实例提取出来,生成一个标准的List<Post>对象,这样你就能用List的所有方法来操作posts了
额外补充几个关键点:
- 它生成的是全新的List,和原可迭代对象没有引用关联,修改新List不会影响原对象
- 可以通过泛型(比如
List<Post>)明确新List的元素类型,避免类型转换错误 - 如果传入的可迭代对象是空的,生成的List也会是空的
内容的提问来源于stack exchange,提问作者Suman Sen
相关产品推荐
相关产品推荐

