# dict_dart_extension **Repository Path**: kitman/dict_dart_extension ## Basic Information - **Project Name**: dict_dart_extension - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-25 - **Last Updated**: 2026-10-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dict_dart_extension 为 `Iterable` / `List` 提供一组**空安全**的常用扩展方法,简化集合的取值与遍历操作,是内部项目通用的 Dart 语法糖工具库。 ## Features 在可空的 `Iterable?` 上提供以下扩展: - `isNullOrEmpty` — 判断集合是否为 `null` 或空。 - `firstOrNull` — 取第一个元素,空集合返回 `null`(不抛异常)。 - `lastOrNull` — 取最后一个元素,空集合返回 `null`。 - `getElementOrNull(int? index)` — 按下标取值,越界或 `index` 为 `null` 时返回 `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` 中添加依赖: ```yaml dependencies: dict_dart_extension: ^1.1.0 ``` > 环境要求:Flutter 3.35.0+ / Dart 3.0.0+(SDK 约束 `>=3.0.0 <4.0.0`) 然后执行 `flutter pub get`(或 `dart pub get`)。 ## Usage ```dart import 'package:dict_dart_extension/dict_dart_extension.dart'; void main() { final List? nums = [1, 2, 3]; final List? empty = []; final List? 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/`](example/example.dart)。 ## Additional information 该库为内部项目需求设计,API 可能随业务调整而变化,通用场景请自行评估兼容性。问题反馈请通过仓库主页提交。 > AI生成