我是 dart 新手,在类中存储数据时遇到问题。我知道如何创建实例,但我想将每个实例存储到我可以轻松访问的地图中。下面是我的代码...
class myCar{
var myMapOfCars = new Map(); // I wanted this to be a class level variable that I can continuously add or remove from.
String carName; // Instance
myCar({this.carName});
addInfoToMap() {
// Some logic to increment the index or create the index the
myMapOfCars[theKey] = this.carName; // This should be the class variable.
}
}
每次我调用“addInfoToMap”时,“myMapOfCars”实例都会重新初始化并再次为空。我想添加/附加到地图中,这样我就可以在其中添加任意数量的汽车。我也对其他解决方案持开放态度,我来自 Swift,我知道你可以用 Swift 做到这一点。它只会让一切变得非常干净。
感谢您的帮助!!
文档“类变量和方法”适合于此。
静态变量
静态变量(类变量)对于类范围的状态和 常数:class Queue { static const initialCapacity = 16; // ··· } void main() { assert(Queue.initialCapacity == 16); }
静态变量在使用之前不会被初始化。
静态方法
静态方法(类方法)不对实例进行操作,因此 无权访问此内容。然而,他们确实可以访问静态 变量。如以下示例所示,您调用静态方法 直接上课:import 'dart:math'; class Point { double x, y; Point(this.x, this.y); static double distanceBetween(Point a, Point b) { var dx = a.x - b.x; var dy = a.y - b.y; return sqrt(dx * dx + dy * dy); } } void main() { var a = Point(2, 2); var b = Point(4, 4); var distance = Point.distanceBetween(a, b); assert(2.8 < distance && distance < 2.9); print(distance); }
您可以使用静态方法作为编译时常量。例如,你 可以将静态方法作为参数传递给常量构造函数。
作为额外参考,您还可以访问此博客。