dict_dart_extension 1.0.0 copy "dict_dart_extension: ^1.0.0" to clipboard
dict_dart_extension: ^1.0.0 copied to clipboard

为 Iterable/List 提供空安全的常用扩展方法,包括 firstOrNull、safeGet 等,内部项目通用的 Dart 语法糖工具库。

dict_dart_extension #

Iterable / List 提供一组空安全的常用扩展方法,简化集合的取值与遍历操作,是内部项目通用的 Dart 语法糖工具库。

Features #

在可空的 Iterable<T>? 上提供以下扩展:

  • isNullOrEmpty — 判断集合是否为 null 或空。
  • firstOrNull — 取第一个元素,空集合返回 null(不抛异常)。
  • lastOrNull — 取最后一个元素,空集合返回 null
  • getElementOrNull(int? index) — 按下标取值,越界或 indexnull 时返回 null
  • firstWhereOrNull(bool Function(T) test) — 取满足条件的第一个元素,找不到返回 null
  • foreachIndex(Function(T element, int index) func) — 带下标的安全遍历,集合为 null 时直接跳过。
  • isFirst(T element) / isLast(T element) — 判断元素是否为首/末元素。

Getting started #

pubspec.yaml 中添加依赖:

dependencies:
  dict_dart_extension: ^1.0.0

然后执行 flutter pub get(或 dart pub get)。

Usage #

import 'package:dict_dart_extension/dict_dart_extension.dart';

void main() {
  final List<int>? nums = [1, 2, 3];
  final List<int>? empty = [];
  final List<int>? nothing = null;

  print(nums.isNullOrEmpty);      // false
  print(empty.isNullOrEmpty);     // true
  print(nothing.isNullOrEmpty);   // true

  print(nums.firstOrNull);        // 1
  print(empty.firstOrNull);       // null
  print(nums.lastOrNull);         // 3

  print(nums.getElementOrNull(1));   // 2
  print(nums.getElementOrNull(10));  // null(越界安全)

  print(nums.firstWhereOrNull((e) => e > 1)); // 2
  print(nums.firstWhereOrNull((e) => e > 9)); // null

  nums.foreachIndex((element, index) {
    print('$index -> $element');
  });

  print(nums.isFirst(1)); // true
  print(nums.isLast(3));  // true
}

更多示例见 example/

Additional information #

该库为内部项目需求设计,API 可能随业务调整而变化,通用场景请自行评估兼容性。问题反馈请通过仓库主页提交。

0
likes
140
points
36
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

为 Iterable/List 提供空安全的常用扩展方法,包括 firstOrNull、safeGet 等,内部项目通用的 Dart 语法糖工具库。

Homepage

License

MIT (license)

Dependencies

flutter

More

Packages that depend on dict_dart_extension