asBools method
解析成bool值
Implementation
bool asBools(List<String> keys, [bool? defValue]) {
var keyHasValues = <String>[];
//优先使用返回值就是bool的作为返回值
for (var key in keys) {
Object? value = this![key];
if (value == null) continue;
if (value is bool) return value;
keyHasValues.add(key);
}
//找不到bool值,兼容其1,或者0,或者字符串作为返回值
for (var key in keyHasValues) {
Object? value = this![key];
if (value == null) continue;
if (value is int && (value == 1 || value == 0)) {
return asBool(key, defValue);
}
if (value is String && (value == 'true' || value == 'false' || value == '1' || value == '0')) {
return asBool(key, defValue);
}
}
return defValue ?? false;
}