Sobes.tech
Назад к вопросам
Junior
5

Что такое summarizingLong и LongSummaryStatistics?

Компании, где спрашивали
ИП Ганус Александр Андреевич

Ответ от нейросети

sobes.tech AI

summarizingLong — это метод в Dart (часть пакета collection или стандартных библиотек), который позволяет собрать статистику по коллекции чисел типа long (в Dart это int).

LongSummaryStatistics — класс, который хранит агрегированные данные: количество элементов, сумму, минимальное и максимальное значения, а также среднее.

Пример использования в Dart:

import 'dart:math';

void main() {
  List<int> numbers = [10, 20, 30, 40, 50];

  var stats = numbers.fold(
    LongSummaryStatistics(),
    (LongSummaryStatistics acc, int value) => acc.accept(value),
  );

  print('Count: ${stats.count}');
  print('Sum: ${stats.sum}');
  print('Min: ${stats.min}');
  print('Max: ${stats.max}');
  print('Average: ${stats.average}');
}

class LongSummaryStatistics {
  int count = 0;
  int sum = 0;
  int? min;
  int? max;

  LongSummaryStatistics accept(int value) {
    count++;
    sum += value;
    min = (min == null || value < min!) ? value : min;
    max = (max == null || value > max!) ? value : max;
    return this;
  }

  double get average => count == 0 ? 0 : sum / count;
}

Таким образом, summarizingLong помогает быстро получить основные статистические показатели по набору чисел.