fillSegment method
加载填充词典片段
@param charArray @param begin @param length @param enabled
Implementation
void fillSegment(List<String> charArray,
[int begin = 0, int? length, int enabled = 1]) {
length ??= charArray.length;
// 获取字典表中的汉字对象
String beginChar = charArray[begin];
String? keyChar = charMap[beginChar];
// 字典中没有该字,则将其添加入字典
if (keyChar == null) {
charMap[beginChar] = beginChar;
keyChar = beginChar;
}
// 搜索当前节点的存储,查询对应keyChar的keyChar,如果没有则创建
DictSegment? ds = lookforSegment(keyChar, enabled);
if (length > 1) {
// 词元还没有完全加入词典树
ds!.fillSegment(charArray, begin + 1, length - 1, enabled);
} else if (length == 1) {
// 已经是词元的最后一个char,设置当前节点状态为enabled,
// enabled=1表明一个完整的词,enabled=0表示从词典中屏蔽当前词
ds!.nodeState = enabled;
}
}