这是第二次写的代码,在上一版的基础上简化了代码,重新设计了函数及接口!