我正在构建一个html / xml切片器(将文本切割成有意义的块列表,例如elementStart,plainText等......然后我可以使用它以OO方式构造元素)。
我发现创建一个逻辑子以处理各种模式很方便,主循环信息保存在类变量中,而子进行一些工作,然后根据什么将火炬传递给另一个他们遇到的数据。但是我想到,这可能会导致一些问题(例如溢出堆栈?idk),因为从技术上讲,它不会退出单个子站点,直到整个过程完成。这是我的意思:(伪代码)
void plainLogic() {
// look for '<' with something other than space after it
// add the gathered data to the slice list
switch (data[it]) // <- the something other
{
case '!':
commentLogic();
break;
case '/':
elEndLogic();
break;
default:
elStartLogic();
break;
}
}
和其他*逻辑潜艇几乎相同:找到数据的范围,包装货物,去其他地方。不久之前我意识到,它实际上并没有去任何地方,它只是更深入,实际上必须回来。
这不好吗?如果没有任何潜艇有任何子范围变量会没关系吗?首选替代品?也许有一个特殊的return关键字在退出sub?
后执行另一个函数