lastOrNull 属性
此可迭代对象的最后一个元素,如果可迭代对象为空,则返回 null
。
此计算可能不是高效的。最后一个值可能通过遍历整个可迭代对象并临时存储每个值来找到。这个过程只遍历可迭代对象一次。如果多次遍历不是问题,则对于某些可迭代对象来说,可能更高效的做法是
var lastOrNull = iterable.isEmpty ? null : iterable.last;
实现
T? get lastOrNull {
if (this is EfficientLengthIterable) {
if (isEmpty) return null;
return last;
}
var iterator = this.iterator;
if (!iterator.moveNext()) return null;
T result;
do {
result = iterator.current;
} while (iterator.moveNext());
return result;
}