I was working on a project and wanted to check if a list element was null. Example
List<int> i = [1, 2, 3];
print(i[1]); // this prints 2
But what if I want to print out a list element and if it does not exist print out a default number using dart null-aware. Example
List<int> i = [1, 2, 3];
print(i[10] ?? 15);
// Also tried
print(i?.elementAt(10) ?? 15);
I want it to print out 15 since the element at index 10 does not exist. Unfortunately, the above code gives me an error.
How can I check if a list element does not exist and return a default value
3条答案
按热度按时间jv2fixgn1#
您必须首先检查列表长度,因为在程序计算
i.elementAt(10)
时,它会立即抛出RangeError异常。示例解决方案1:
示例解决方案2(更优雅的方式):
kt06eoxx2#
拥有这种功能的一个解决方案是用一个自定义类 Package 您的列表,该类捕获内部异常并返回null。
我在下面编写了这个 Package 器,并将其命名为XList:
现在,您的代码的工作方式如下:
csga3l583#
您可以在
Iterable
上创建一个扩展,以便在提供的索引超出范围时轻松地拥有一个返回null
的方法:您可以将它放在代码库中一个通用文件(如
lib/extensions/iterable_extensions.dart
)中,然后在需要时将其导入。