我是编程新手,不知道自己在做什么,但试图理解。
late CabsOfAcacia Sinan = CabsOfAcacia('Sinan', 'assets/taxi.png', cabsLocations.elementAt(0), cabsDistanceFromUser.elementAt(0));
late CabsOfAcacia Seyit = CabsOfAcacia('Seyit', 'assets/taxi.png', cabsLocations.elementAt(1), cabsDistanceFromUser.elementAt(1));
late CabsOfAcacia OsmanAga = CabsOfAcacia('Osman Aga', 'assets/taxi.png', cabsLocations.elementAt(2), cabsDistanceFromUser.elementAt(2));
late CabsOfAcacia AliKemal = CabsOfAcacia('Ali Kemal', 'assets/taxi.png', cabsLocations.elementAt(3), cabsDistanceFromUser.elementAt(3));
late CabsOfAcacia ArifKeser = CabsOfAcacia('Arif Keser', 'assets/taxi.png', cabsLocations.elementAt(4), cabsDistanceFromUser.elementAt(4));
late List<double?>cabsDistanceFromUser = [null,null,null,null,null];
///this is the class
class CabsOfAcacia{
late final String nameOfCab;
late final String assetPathOfCab;
late final LatLng locationOfCab;
late final double? distanceFromUserOfCab;
CabsOfAcacia(
this.nameOfCab,
this.assetPathOfCab,
this.locationOfCab,
this.distanceFromUserOfCab);
}
我想做的是; CabsOfAcacia 是我创建的一个类,它们有一个名为 distanceFromUserOfCab 的参数。该双精度值来自名为 cabsDistanceFromUser 的列表的第 i 个元素。在我的应用程序中执行一些步骤后,该列表中的值会更新。
但是 CabsOfAcacia 对象的 cabsDistanceFromUser 的值坚持其第一个值,即 null。我可以成功更新列表 - cabsDistanceFromUser 的值来自何处 - 但该值仍然是开头的值,再次为空。
我不知道我是否把问题表达清楚了,这是我第一次在网上问问题。我感觉自己像个穴居人。
谢谢你。
由于您的属性是
late final
,因此您不能期望它们的值以后会发生变化。如果你这样定义:
class CabsOfAcacia{
final String nameOfCab;
final String assetPathOfCab;
final LatLng locationOfCab;
double distanceFromUserOfCab;
CabsOfAcacia(
this.nameOfCab,
this.assetPathOfCab,
this.locationOfCab,
{
this.distanceFromUserOfCab = 0,
}
);
}
您可以调用此对象的实例(例如,示例中的
Sinan
var),并使用以下命令更改其 distanceFromUserOfCab
的值:
Sinan.distanceFromUserOfCab = cabsDistanceFromUser.elementAt(0);
但是那里不涉及绑定,因此更改
cabsDistanceFromUser
列表中的值不会自动更新各个 CabsOfAcacia
实例中的值。