如何强制Dart / Flutter重用具有相同属性的相同类

我的问题很简单,我有一个像这样的Dart课

import 'package:equatable/equatable.dart';
import 'package:meta/meta.dart';

class Weather extends Equatable {
  final String cityName;
  final double tempCelsius;
  final double tempFahrneit;

  const Weather({
    @required this.cityName,@required this.tempCelsius,this.tempFahrneit,});

  @override
  List<Object> get props => [
        cityName,tempCelsius,tempFahrneit,];
  @override
  String toString() {
    return [
      cityName,].toString();
  }
}

我正在使用Equatable来简化对象比较,我还在类构造函数上使用了const关键字(不确定我在类构造函数上使用时是否听说过,它会使Dart看起来首先实例化之前具有相同属性的相同类。

当我在DevTools上查找时,尽管它始终是相同的参数,但在调用函数时总是会得到多个类实例,并且尽管我弹出/销毁了视图(Flutter上下文中的脚手架),垃圾收集器仍保留了该事件。 / p>

现在我只用一个小类对其进行测试,但是如果它是一个大类的话,那将是一团糟,即使我认为在这种情况下,垃圾收集器肯定会处置未使用的类,但是我想知道我是否可以用某种Dart / Flutter方式解决此“问题”。

hanpangzi09 回答:如何强制Dart / Flutter重用具有相同属性的相同类

如果使用const Weather(...)创建对象,那么您将不再看到多个实例。

观看垃圾收集器通常不是一个好主意,您可以相信,当GC算法到达垃圾收集器时,它将破坏您的对象。

Dart的垃圾收集器经过优化,可以创建许多小对象并将它们扔在一起。因此,您可能根本不必担心这一点。

本文链接:https://www.f2er.com/3147499.html

大家都在问