简短的问题。
我正在尝试学习如何使用对象来指定列表等并访问对象属性。我只是无法使其正常工作。
因此,这就是我要实现的目标:
创建列表objList;
将对象添加到列表
从列表中获取特定对象
在控制台中打印!
我的代码:
对象类别
class SearchObject {
final String barName;
final String latitudeDbRef;
SearchObject({this.barName, this.latitudeDbRef});
}
列表声明和对象
List<SearchObject> searchObject = new List();
SearchObject sbo = new SearchObject();
将对象添加到列表
searchObject.add(SearchObject(barName: value, latitudeDbRef: "test"));
访问和打印特定对象
print(searchObject.getRange(index, index + 1).map((sbo) {
String bar = sbo.barName.toString();
String lat = sbo.latitudeDbRef.toString();
print("Barname: $bar");
print("latName: $lat");
}));
输出量
flutter: Barname: barname
flutter: latName: test
flutter: (null) <- Get rid of this?
注意:
我已经尝试过删除searchObject.getRange()代码周围的print()语句,并且这样做根本不会打印任何内容。
有什么建议?
最好的祝福!
最佳答案
class SearchObject {
final String barName;
final String latitudeDbRef;
const SearchObject({this.barName, this.latitudeDbRef});
}
void main() {
final newSearchObject = new SearchObject(barName: "foo", latitudeDbRef: "bar");
// How to populate a list:
// Method 0: inline
final searchObjects = <SearchObject>[newSearchObject];
// Method 1: Using .add
final searchObjects2 = <SearchObject>[];
searchObjects2.add(newSearchObject);
// Method 2: Using the + operator
final searchObjects3 = searchObjects + [newSearchObject];
// Method 3: Using the spread operator:
final searchObjects4 = [...searchObjects, newSearchObject];
// Accessing a specific object using the [] operator
final specificObject = searchObjects4[0]; // Be careful, It will throw if there's no item for that index in the list.
print("barName: ${specificObject.barName}"); // prints: barName: foo
print("latitudeDbRef: ${specificObject.latitudeDbRef}"); // prints: latitudeDbRef: bar
// Iterate over a list to print the details:
searchObjects4.forEach((object) {
print("barName: ${object.barName}"); // prints: barName: foo
print("latitudeDbRef: ${object.latitudeDbRef}"); // prints: latitudeDbRef: bar
});
// Collect the details themselves inside an iterable:
final detailsIterable = searchObjects4.map((object) {
return "barName: ${object.barName}, latitudeDbRef: ${object.latitudeDbRef}";
});
final detailsList = detailsIterable.toList();
print(detailsList); // prints: [barName: foo, latitudeDbRef: bar, barName: foo, latitudeDbRef: bar]
}
我希望这有帮助。