Есть ли в Dart базовая истекающая карта?

#dart

#dart

Вопрос:

Есть ли истекающая карта в dart? Я ищу что-то похожее на PassiveExpiringMap в Apache common. Заранее спасибо.

Ответ №1:

Похоже, для этого нет пакета. Однако, на случай, если кто-то просто ищет быстрый фрагмент для ленивого копирования и вставки, как я, вот начало, которое вы можете использовать в соответствии с вашими потребностями:

 class ExpiringMap {
  final Map<dynamic, dynamic> _map = {};

  Object operator [](Object key) => _map[key];

  void operator []=(Object key, Object value) {
    _map[key] = value;
    Future.delayed(Duration(minutes: 1), () => _map.remove(key));
  }
}
 

Комментарии:

1. Некоторые люди могут захотеть сделать это общей истекающей картой<K, V> и вместо будущего. с задержкой, используйте карту таймеров и перенесите срок действия при доступе. Но это может быть излишним в зависимости от варианта использования. Этот код выполняет свою работу!