Flutter/Dart 类实例和类变量

问题描述 投票:0回答:1

我是 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 flutter variables dart class-variables
1个回答
0
投票

文档“类变量和方法”适合于此。

静态变量
静态变量(类变量)对于类范围的状态和 常数:

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);
}

您可以使用静态方法作为编译时常量。例如,你 可以将静态方法作为参数传递给常量构造函数。

作为额外参考,您还可以访问此博客

© www.soinside.com 2019 - 2024. All rights reserved.