KeyspaceInfo.fromMap constructor
Implementation
factory KeyspaceInfo.fromMap(Map<String, String> map) {
final dbMap = <int, DBInfo>{};
var defaultDBInfo = DBInfo(keys: 0, expires: 0, avgTtl: 0); // 假设的默认DBInfo值
// 初始化一个变量来存储最大索引值
int maxIndex = 0;
// 首先遍历map以确定最大索引
map.forEach((key, value) {
if (key.startsWith('db')) {
final index = int.parse(key.substring(2)); // 从 "db" 后提取索引
maxIndex = index > maxIndex ? index : maxIndex; // 更新maxIndex为最大值
dbMap[index] = DBInfo.fromString(value); // 此时暂时存儲到dbMap中
}
});
// 创建列表并使用默认DBInfo对象初始化
final List<DBInfo> databases =
List.generate(maxIndex + 1, (index) => defaultDBInfo);
// 填充真实的DBInfo对象到相应的索引位置
dbMap.forEach((index, dbInfo) {
databases[index] = dbInfo;
});
return KeyspaceInfo(databases: databases);
}