迭代器
function* walk(str){
let part = '';
let terminals = ['.','-','+']
for(var i = 0 ; i < str.length ; i++){
if(terminals.includes(str[i])){
yield part
part = '';
}else{
part += str[i];
}
}
if(part){
yield part
}
}
const iterator = walk('1.5.6-alpha.1')
n = iterator.next();