增加了 hansonyu 贡献的一份代码