如果我们通过这种方式创建一个2D/3D列表:
List recipes = List.generate(
999,
(i) => List.generate(
999,
(i) => List<Ingredient>.filled(
0,
Ingredient(
name: '',
carbohydrates: 0,
proteins: 0,
lipids: 0,
fibers: 0),
growable: true)));
请假设Ingredient是一个简单的类。
当我们尝试访问它时:print(recipes[0][0][0].name);
到达这一点的:print(recipes[0][0][0].
我们需要查看(访问)类属性(如kcal、名称、碳水化合物等);与一维列表中完全相同。
但是,至少在VS代码中,代码编辑器只显示以下内容:hashCode、运行时类型、目标字符串()、无此类方法(...)
当我尝试通过这种方式创建列表时:
List<List<List<Ingredient>>> ingredient =
List.generate(999, (index) => [[]], growable: true);
这个bug不存在,但是我不知道如何填充(给出一个维度和类)第一个和第二个列表...
我的第一个目标是不要失去自动完成功能(由编辑器),因为记住每个www.example.com太难List.properties/funcions。
配料分类:
class Ingredient {
String? name;
int? kcal;
int? carbohydrates;
int? proteins;
int? lipids;
int? fibers;
Ingredient(
{this.name,
this.kcal,
this.carbohydrates,
this.proteins,
this.lipids,
this.fibers});
}
2条答案
按热度按时间s3fp2yjn1#
你可以使用
var
或final
,它会自动从赋值中知道列表的类型,但是只显式地写一个List是行不通的。nhhxz33t2#
找到了正确的方法(和测试)。我离开这里,因为其他人:
编辑器按预期工作,List是真正的多维和可迭代的。
此类型的列表为:
列表[整数][整数][成分(整数)].类属性