You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart中如何用一行代码获取List首个元素,为空则返回null?

实现一行代码获取首个元素或null

你可以通过以下几种方式实现一行代码的需求:

方式1:使用Dart内置的elementAtOrNull(Dart 2.17+)

Dart 2.17及以上版本的Iterable新增了elementAtOrNull方法,传入索引0即可获取首个元素,空迭代器时会返回null:

final paragraphNode = findNodes(node, (p) => p.type == 'p').elementAtOrNull(0);

方式2:借助collection包的firstWhereOrNull

如果你的项目引入了官方的collection包,可以用firstWhereOrNull配合始终返回true的条件,直接匹配首个元素:

final paragraphNode = findNodes(node, (p) => p.type == 'p').firstWhereOrNull((_) => true);

方式3:自定义扩展方法

如果不想依赖额外包,也可以给Iterable写一个扩展,添加firstOrNull属性:

extension FirstOrNullExtension<T> on Iterable<T> {
  T? get firstOrNull => isNotEmpty ? first : null;
}

之后就能像调用原生方法一样使用:

final paragraphNode = findNodes(node, (p) => p.type == 'p').firstOrNull;

内容的提问来源于stack exchange,提问作者Andre Pena

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 18:45:39