最新版，更改了部分语法错误以及逻辑错误，数据类型略有变化