颤振为空或空列表

  • 本文关键字:列表 flutter dart
  • 更新时间 :
  • 英文 :


这只是一个关于dart/flutter代码的小问题。我今天看到了这段代码:

Future<List<String>?> getAtSignListFromKeychain() async {
var atsignMap = await _getAtSignMap();
if (atsignMap.isEmpty) {
// no atsigns found in biometric storage
// read entries from flutter keychain
// for mobile platforms only
if (Platform.isAndroid || Platform.isIOS) {
atsignMap = await checkForValuesInFlutterKeychain();
if (atsignMap.isEmpty) {
return null;
}
} else {
return null;
}
}
var atsigns = atsignMap.keys.toList();
_logger.info('Retrieved atsigns $atsigns from Keychain');
return atsigns;
}

我不明白返回null与列表的兴趣?。这样写不是更好吗?

Future<List<String>> getAtSignListFromKeychain() async {
var atsignMap = await _getAtSignMap();
if (atsignMap.isEmpty) {
// no atsigns found in biometric storage
// read entries from flutter keychain
// for mobile platforms only
if (Platform.isAndroid || Platform.isIOS) {
atsignMap = await checkForValuesInFlutterKeychain();
if (atsignMap.isEmpty) {
return atsignMap;
}
} else {
return List.empty();
}
}
var atsigns = atsignMap.keys.toList();
_logger.info('Retrieved atsigns $atsigns from Keychain');
return atsigns;
}

还是我错过了什么?谢谢!

首先,不同的问题总是有不同的解决方案。我认为在某些情况下,最好返回null value,而不是在内存中创建empty list并返回它。无论哪种方式,您都必须检查returning value,处理错误等。因此,您可以只使用??操作符,而不是检查列表是否为空。

在某些情况下,您期望的包含其中的项的列表可能是空的。如果在这种情况下默认返回空列表,则无法知道所期望的列表是真的为空还是存在问题。

最新更新